-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Vikram Goyal wrote:
Hi,
I am running dansguardian ( content filter ) and squid. Versions:
dansguardian-2.8.0.6-1.2.fc8.rf
squid-2.6.STABLE17-1.fc8
selinux-policy-targeted-3.0.8-87.fc8
Well, I want to run dansguardian under selinux enforcing mode but due
some avcs I have to go to permissive mode or allow the blocked accesses,
neither of which I want.
Bug reporting is also not an option since it is not in the fedora repos.
The avcs are:
type=AVC msg=audit(1205054238.538:28): avc: denied { write } for pid=5640
comm="dansguardian" name="run" dev=dm-1 ino=5186 57
scontext=system_u:system_r:logrotate_t:s0 tcontext=system_u:object_r:var_run_t:s0
tclass=dir
type=AVC msg=audit(1205054238.538:29): avc: denied { write } for pid=5640
comm="dansguardian" name="dansguardian.pid" dev=dm-1 ino=518711
scontext=system_u:system_r:logrotate_t:s0 tcontext=system_u:object_r:initrc_var_run_t:s0
tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/dansguardian/access.log-20080309" dev=dm-1
ino=1102242 scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0
tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/dbmail.log-20080309" dev=dm-1 ino=1102187
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/dovecot.log-20080309" dev=dm-1 ino=1102273
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:dovecot_var_log_t:s0
tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/rpmpkgs-20080309" dev=dm-1 ino=1102254
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:cron_log_t:s0
tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/messages-20080309" dev=dm-1 ino=1102211
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/secure-20080309" dev=dm-1 ino=1102245
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/maillog-20080309" dev=dm-1 ino=1102246
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/spooler-20080309" dev=dm-1 ino=1102272
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/boot.log-20080309" dev=dm-1 ino=1102291
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid" path="/var/log/cron-20080309" dev=dm-1 ino=1102292
scontext=system_u:system_r:squid_t:s0 tcontext=system_u:object_r:var_log_t:s0 tclass=file
type=AVC msg=audit(1205054238.870:30): avc: denied { read write } for pid=5652
comm="squid"
path="/var/log/setroubleshoot/setroubleshootd.log-20080309" dev=dm-1 ino=1102249
scontext=system_u:system_r:squid_t:s0
tcontext=system_u:object_r:setroubleshoot_var_log_t:s0 tclass=file
As you may see, except for the first three, the rest of the avcs show it
running wild and messing with a number of unrelated logs, which I don't
want to allow.
I am confused as to how it should be handeled.
Thanks!
I have attached a policy te file to handle these avc;s
These look like leaked file descriptors and I think dansguardian must be
starting up squid.
dansguardian should close open file descriptors on exec
fcntl(fd, F_SETFD, FD_CLOEXEC)
To use and install this policy extract the mysquid.te file into a
directory and execute
# yum -y install selinux-policy-devel
# make -f /usr/share/selinux/devel/Makefile
# semodule -i mysquid.pp
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (GNU/Linux)
Comment: Using GnuPG with Fedora -
http://enigmail.mozdev.org
iEYEARECAAYFAkff1ioACgkQrlYvE4MpobOyiwCeIBamj58IGKJ7bc70tMcgS4w6
JesAoIaM7xO+yiER2GTsWellnLbCrIRw
=ORuY
-----END PGP SIGNATURE-----
module mysquid 1.0;
require {
type var_log_t;
type cron_log_t;
type dovecot_var_log_t;
type logrotate_t;
type var_run_t;
type initrc_var_run_t;
type squid_t;
type setroubleshoot_var_log_t;
class dir write;
class file { read write };
}
#============= logrotate_t ==============
dontaudit logrotate_t initrc_var_run_t:file write;
allow logrotate_t var_run_t:dir write;
#============= squid_t ==============
dontaudit squid_t cron_log_t:file { read write };
dontaudit squid_t dovecot_var_log_t:file { read write };
dontaudit squid_t setroubleshoot_var_log_t:file { read write };
dontaudit squid_t var_log_t:file { read write };