commit:     cd2913c0447477ade591f93034f1c01c15136117
Author:     Sven Vermeulen <sven.vermeulen <AT> siphos <DOT> be>
AuthorDate: Mon Apr 21 15:08:22 2014 +0000
Commit:     Sven Vermeulen <swift <AT> gentoo <DOT> org>
CommitDate: Sun Apr 27 15:28:22 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=cd2913c0

Snort policy updates

When snort starts up, its init script creates the /var/run/snort directory.
However, the policy did not have a file transition for this, which results
in the /var/run/snort directory to be initrc_var_run_t.

By supporting a file transition to snort_var_run_t the PID file can be
hosted inside its own directory as intended.

Error logs from Snort:
Apr  9 14:42:45 server snort[1916]: WARNING: /var/run/snort is invalid,
trying /var/run...
Apr  9 14:42:45 server snort[1916]: Previous Error, errno=13,
(Permission denied)
Apr  9 14:42:45 server snort[1916]: PID path stat checked out ok, PID
path set to /var/run/

Second, snort is not able to write to its own log file. It needs the
write privilege for this (append no longer cuts it) as found through the
AVC denial.

Error logs from Snort:
Apr  9 14:42:45 server snort[1916]: FATAL ERROR: spo_unified2.c(320)
Could not open /var/log/snort//merged.log: Permission denied

Signed-off-by: Sven Vermeulen <sven.vermeulen <AT> siphos.be>

---
 policy/modules/contrib/snort.fc | 3 ---
 policy/modules/contrib/snort.te | 3 ++-
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/policy/modules/contrib/snort.fc b/policy/modules/contrib/snort.fc
index ad73ece..2b1ea6b 100644
--- a/policy/modules/contrib/snort.fc
+++ b/policy/modules/contrib/snort.fc
@@ -10,7 +10,4 @@
 /var/log/snort(/.*)?   gen_context(system_u:object_r:snort_log_t,s0)
 
 /var/run/snort.*       --      
gen_context(system_u:object_r:snort_var_run_t,s0)
-
-ifdef(`distro_gentoo',`
 /var/run/snort(/.*)?   gen_context(system_u:object_r:snort_var_run_t,s0)
-')

diff --git a/policy/modules/contrib/snort.te b/policy/modules/contrib/snort.te
index 44fcaf9..4568977 100644
--- a/policy/modules/contrib/snort.te
+++ b/policy/modules/contrib/snort.te
@@ -23,6 +23,7 @@ files_tmp_file(snort_tmp_t)
 
 type snort_var_run_t;
 files_pid_file(snort_var_run_t)
+init_daemon_run_dir(snort_var_run_t, "snort")
 
 ########################################
 #
@@ -43,9 +44,9 @@ allow snort_t snort_etc_t:file read_file_perms;
 allow snort_t snort_etc_t:lnk_file read_lnk_file_perms;
 
 manage_dirs_pattern(snort_t, snort_log_t, snort_log_t)
-append_files_pattern(snort_t, snort_log_t, snort_log_t)
 create_files_pattern(snort_t, snort_log_t, snort_log_t)
 setattr_files_pattern(snort_t, snort_log_t, snort_log_t)
+write_files_pattern(snort_t, snort_log_t, snort_log_t)
 logging_log_filetrans(snort_t, snort_log_t, { file dir })
 
 manage_dirs_pattern(snort_t, snort_tmp_t, snort_tmp_t)

Reply via email to