Selinux and denyhosts

Paul Howarth paul at city-fan.org
Thu Nov 2 16:45:24 UTC 2006


Jason L Tibbitts III wrote:
> I maintain the denyhosts package in Fedora Extras.  Recently a user
> reported that denyhosts resets the security context on /etc/hosts.deny
> which breaks other services.  (The ticket is
> https://bugzilla.redhat.com/212771 .)
> 
> It isn't completely clear what is happening from the report.
> Denyhosts performs two operations on hosts.deny:
> 
> 1) When adding new hosts, it appends (usually) two lines to the file.
> 2) When purging old hosts, it creates a new temporary file (currently
>    named hosts.deny.purge.tmp, although there's certainly no permanent
>    guarantee of this), copies over the lines not being purged, and
>    then renames the new file into place.
> 
> My understanding is that the first operation won't change the security
> context of the file, but the second is quite likely to.
> 
> Unfortunately the reporter hasn't provided any information about
> whether my last suggestion of running
> 
> semanage fcontext -a -t etc_t /etc/hosts.deny.purge.tmp
> 
> or using a pattern helped the situation.  My understanding is that
> this should fix the issue, but I am far from a selinux expert.  Might
> anyone have additional advice?  Is there any way to future-proof this
> in case upstream decides to use a different temporary filename?  Would
> it be reasonable to create a full policy for denyhosts?

Using semanage like this is unlikely to improve the situation, as the 
pathname-based default file contexts that it manages are used only in a 
few special circumstances, such as installing packages or using 
"restorecon".

I think the suggestion in comment #2 of running restorecon on the new 
file is the safest one, as it will work if the default context of the 
hosts.deny file changes. Of course, this will leave a small window of 
time where the file has the wrong context between creation of the new 
file and the running of restorecon, so you might also consider doing the 
equivalent of "chcon -t etc_t $TMPFILE" before moving it into place.

It'd be nice if there was a way of setting the context of a file to be 
the same as the context of another file (somewhat like the --reference 
option of touch), which would be useful in cases like this.

Paul.




More information about the fedora-selinux-list mailing list