* SELinux Integrated Logging Tool @ 2005-06-17 20:01 Brandon Pollet 2005-06-17 23:43 ` James Morris 2005-06-18 15:39 ` Steve G 0 siblings, 2 replies; 46+ messages in thread From: Brandon Pollet @ 2005-06-17 20:01 UTC (permalink / raw) To: SELinux; +Cc: Brandon Pollet, John Hale After releasing information about my Dynamic Policy Enforcement system last week, I wanted to share some of the other projects that we have developed at the University of Tulsa over the last year. This project was developed by Nicholas Davis and it is titled "Improving the Logging Facility in Security Enhanced Linux." The abstract for this paper and a link to a PDF version of it appear below. Please post any feedback or questions you may have. Thank you Abstract Security-Enhanced Linux offers a robust Mandatory Access Control protection scheme that enhances standard Unix-based permissions, and allows for greater overall system security. While a wide array of configuration tools are currently available, system administration of SELinux is still cumbersome. One strategic area of improvement is kernel event logging, specifically for Security-Enhanced Linux generated events. This thesis describes SILT, a tool designed to enhance SELinux logging. A flexible interface supports command-line and graphical logging configuration. Backend scripts tune the logging facility, according to user direction. SILT provides a convenient mechanism for administrators to manage logging events effectively, allowing for improved system maintenance. Link http://personal.utulsa.edu/~brandon-pollet/SILT-Davis.pdf -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: SELinux Integrated Logging Tool 2005-06-17 20:01 SELinux Integrated Logging Tool Brandon Pollet @ 2005-06-17 23:43 ` James Morris 2005-06-18 15:39 ` Steve G 1 sibling, 0 replies; 46+ messages in thread From: James Morris @ 2005-06-17 23:43 UTC (permalink / raw) To: Brandon Pollet; +Cc: SELinux, Brandon Pollet, John Hale On Fri, 17 Jun 2005, Brandon Pollet wrote: > This project was developed by Nicholas Davis and it is titled > "Improving the Logging Facility in Security Enhanced Linux." The > abstract for this paper and a link to a PDF version of it appear > below. Please post any feedback or questions you may have. Thank you This looks potentially useful for general syslogd management, but I'm not sure how it's SELinux specific. Also, SELinux now makes more use of the audit subsystem and auditd is the preferred mechanism for SELinux logging. - James -- James Morris <jmorris@redhat.com> -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: SELinux Integrated Logging Tool 2005-06-17 20:01 SELinux Integrated Logging Tool Brandon Pollet 2005-06-17 23:43 ` James Morris @ 2005-06-18 15:39 ` Steve G 2005-06-18 23:38 ` dumb newbie questions R. Steven Rainwater 1 sibling, 1 reply; 46+ messages in thread From: Steve G @ 2005-06-18 15:39 UTC (permalink / raw) To: SELinux >This project was developed by Nicholas Davis and it is titled >"Improving the Logging Facility in Security Enhanced Linux." The >abstract for this paper and a link to a PDF version of it appear >below. Please post any feedback or questions you may have. I read through it. I don't see what it has to do with SE Linux at all. It looks like a general purpose syslog configurator. This is something that *is* needed and people may like to use the tool for that purpose. It really does look interesting, but for reasons other than SE Linux. As James said, auditd is the way forward. It uses a more reliable communication interface and is designed specifically to fill the audit niche. I have a "gui" config tool that is based on dialog. I will probably put it on the web, but I am reluctant to include it with the audit package at this point. If I find time, I will probably extend it to include building auditctl rules. There is a recent tool in the audit package, ausearch, that lets you search for any event based on many criteria. At this point, the intention is to meet CAPP needs, but future work is going to allow searching based on labels. There is also a feature that many people don't know about and that is the ability to interpret the logs so that its easier to understand. A sample use would be: ausearch -i -m AVC. I will be at OLS next month for the audit BoF. I would like to share with attendees some of the possibilities for future development. This includes event notification and an audit log explorer (not to be confused with a viewer). -Steve Grubb ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* dumb newbie questions 2005-06-18 15:39 ` Steve G @ 2005-06-18 23:38 ` R. Steven Rainwater 2005-06-19 6:45 ` Ivan Gyurdiev ` (2 more replies) 0 siblings, 3 replies; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-18 23:38 UTC (permalink / raw) To: SELinux I've just installed CentOS 4.1 on a box and have run into what I think are selinux related issues. (CentOS is basically a renamed RedHat Enterprise Linux). I moved all the files for an existing Apache website to the new server including a variety of Perl programs and Perl CGI scripts, all of which have been working fine for a year on a Red Hat 9 box. Some of these scripts worked fine on the new box but others failed to run at all. After spending hours trying to debug the problem, I wrote a simple one line Perl program like so: #!/usr/bin/perl print "hello\n"; I would think a script this simple shouldn't fail to run in any normal, functional environment but - it failed to run. This was all the more baffling because some of the scripts that do run do little more than print a few lines to stdout. After another hour or so of poking around it finally occured to me to check the message log (should've done that first!) and I discovered the source of the problem. Lots of cryptic entries like this: kernel: audit(1119056704.257:0): avc: denied { read write } for pid=3020 comm=test.pl path=/dev/pts/0 dev=devpts ino=2 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:devpts_t tclass=chr_file I tried everything I could think of. Regardless of permissions, owners, or what user I run them as (even root!) the scripts continued to not run. I found and read several FAQs on selinux but most of them seem to be written with the assumption that I already know a bunch of selinux terminology - roles, contexts, type enforcement, domain transitions, etc. As best I can tell so far, each time I add a new program to the server I'm going to have to do something to selinux to allow the new program to run (except that maybe sometimes I don't because some of the scripts I moved over work fine?). Is there any chance someone can answer two dumb questions without using a lot of selinux jargon (or point me to a document that can do this): 1. Why would some of my scripts run and some not - they're all pretty much the same, they all do file I/O, print to stdout, a couple access an SQL server on another box. But I can't find anything common to the ones that don't work. I realize this might be hard to answer without seeing the code but I'll take even a theory at this point. 2. How do I get a new scripts or program to run? One FAQ came near to answering this but was incomplete. It said I should run the offending program, then extract the warning line from the messages file and run it through a program called audit2allow. Audit2allow seems to need an input file so I copied one of the warning lines from the log into a text file, test.txt, and did this: audit2allow test.txt The result message from audit2allow was "allow httpd_sys_script_t devpt_t:chr_file { read write };". The "allow" sounded hopeful but when I tried to run my script again it still didn't work. So I think there must be some additional step that was left out of the FAQ. Any suggestions appreciated. -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-18 23:38 ` dumb newbie questions R. Steven Rainwater @ 2005-06-19 6:45 ` Ivan Gyurdiev 2005-06-19 16:40 ` Casey Schaufler 2005-06-20 13:12 ` Trevor Vaughan 2005-06-30 22:11 ` cgiemail and senmail policy R. Steven Rainwater 2 siblings, 1 reply; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-19 6:45 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux > 2. How do I get a new scripts or program to run? One FAQ came near to > answering this but was incomplete. It said I should run the offending > program, then extract the warning line from the messages file and run it > through a program called audit2allow. Audit2allow seems to need an input > file so I copied one of the warning lines from the log into a text file, > test.txt, and did this: > > audit2allow test.txt I wish FAQs would stop recommending this, since that's what everyone does to get their scripts to run. audit2allow is a helper program for policy writers, and nothing more. It's a mistake to pipe its output into anything... instead you should provide that to the SELinux people, so they can write proper policy. > The result message from audit2allow was "allow httpd_sys_script_t > devpt_t:chr_file { read write };". The "allow" sounded hopeful but when > I tried to run my script again it still didn't work. So I think there > must be some additional step that was left out of the FAQ. Any > suggestions appreciated. This particular error means that your script cannot write to the terminal. I also suspect the terminal is labeled incorrectly, but someone else would have to comment on that - I am still not understanding the different devpts* types very well. Why do you need your scripts to write to the terminal? -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 6:45 ` Ivan Gyurdiev @ 2005-06-19 16:40 ` Casey Schaufler 2005-06-19 19:51 ` Ivan Gyurdiev 0 siblings, 1 reply; 46+ messages in thread From: Casey Schaufler @ 2005-06-19 16:40 UTC (permalink / raw) To: SELinux --- Ivan Gyurdiev <gyurdiev@redhat.com> wrote: > I wish FAQs would stop recommending this, since > that's what everyone > does to get their scripts to run. audit2allow is a > helper program > for policy writers, and nothing more. It's a mistake > to pipe > its output into anything... instead you should > provide that to the > SELinux people, so they can write proper policy. If only the "SELinux people" can write "proper" policy SELinux has no place in the linux mainline. I suggest that the "SELinux People" would do well to provide documentation that is sufficient for the developer in question to create a "proper" policy rather than asserting that it's only something that they can do. The attitute presented is akin to saying that no one but RedHat should create Makefiles because, after all, they are the "Distribution People". Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 16:40 ` Casey Schaufler @ 2005-06-19 19:51 ` Ivan Gyurdiev 2005-06-19 20:14 ` Casey Schaufler ` (2 more replies) 0 siblings, 3 replies; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-19 19:51 UTC (permalink / raw) To: Casey Schaufler; +Cc: SELinux On Sun, 2005-06-19 at 09:40 -0700, Casey Schaufler wrote: > > --- Ivan Gyurdiev <gyurdiev@redhat.com> wrote: > > > > I wish FAQs would stop recommending this, since > > that's what everyone > > does to get their scripts to run. audit2allow is a > > helper program > > for policy writers, and nothing more. It's a mistake > > to pipe > > its output into anything... instead you should > > provide that to the > > SELinux people, so they can write proper policy. > > If only the "SELinux people" can write "proper" > policy SELinux has no place in the linux mainline. > I suggest that the "SELinux People" would do well > to provide documentation that is sufficient for > the developer in question to create a "proper" > policy rather than asserting that it's only > something that they can do. The attitute presented > is akin to saying that no one but RedHat should > create Makefiles because, after all, they are > the "Distribution People". You're misrepresenting the point of my response... Who writes the policy is not important. Well - it is important, but that's not what I was talking about here. I am all for improvements in the way SELinux is distributed, and documented, so that more people can write policy. What I think is a problem is when people use the output of audit2allow as the policy... which is what I see happening. To me that largely defeats the purpose of SELinux... -- Ivan Gyurdiev <ivg2@cornell.edu> Cornell University -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 19:51 ` Ivan Gyurdiev @ 2005-06-19 20:14 ` Casey Schaufler 2005-06-19 20:57 ` Ivan Gyurdiev 2005-06-19 22:13 ` Luke Kenneth Casson Leighton 2005-06-19 20:41 ` Ivan Gyurdiev 2005-06-19 22:17 ` Luke Kenneth Casson Leighton 2 siblings, 2 replies; 46+ messages in thread From: Casey Schaufler @ 2005-06-19 20:14 UTC (permalink / raw) To: ivg2; +Cc: SELinux --- Ivan Gyurdiev <ivg2@cornell.edu> wrote: > You're misrepresenting the point of my response... Well, maybe a little. > Who writes the policy is not important. I think it is. The developer, who understands the intent of the application and it behavior, ought to be in charge of the SELinux policy. > Well - it is important, but that's not what I was > talking about here. Yes, it's important. And an issue. > I am all for improvements in the way SELinux > is distributed, and documented, so that more people > can write policy. I am a strong advocate of the above. > What I think is a problem is when people use the > output of audit2allow as the policy... which is > what I see happening. A developer will use the best tools available. Since audit2allow appears to be the best tool available for the development of policy that is what will be used. It appears to be the best tool available because the FAQs you are disparaging constitute the best available documentation and they recommend it. If there were documentation that described how it ought to be done maybe you could get it done properly. > To me that largely defeats the purpose of SELinux... You are correct in that bad policies are bad for SELinux. I believe that having policies created by someone other than the developer of the application, except as a first-pass effort to help the developer along, is a virtual guarantee that the SELinux will join the ranks of those systems used to prove that it is impossible to produce a useable secure OS. Casey Schaufler casey@schaufler-ca.com __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 20:14 ` Casey Schaufler @ 2005-06-19 20:57 ` Ivan Gyurdiev 2005-06-19 21:31 ` Casey Schaufler 2005-06-19 22:13 ` Luke Kenneth Casson Leighton 1 sibling, 1 reply; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-19 20:57 UTC (permalink / raw) To: Casey Schaufler; +Cc: SELinux > I think it is. The developer, who understands > the intent of the application and it behavior, > ought to be in charge of the SELinux policy. On the other hand you might argue that the developer of the application is biased toward the application.. and likely to allow things that shouldn't be allowed. Anyway, I think Steven (Smalley) has mentioned that more efforts to decentralize policy will occur after Tresys' binary modules work is merged. ==== Re: audit2allow - I have no problem with the tool, as long as people realize it's a tool instead of an automated policy writer. There's two problems with using it to make policy - 1) it will allow everything, and 2) it will not organize everything into understandable modules. -- Ivan Gyurdiev <ivg2@cornell.edu> Cornell University -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 20:57 ` Ivan Gyurdiev @ 2005-06-19 21:31 ` Casey Schaufler 2005-06-19 22:10 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 46+ messages in thread From: Casey Schaufler @ 2005-06-19 21:31 UTC (permalink / raw) To: ivg2; +Cc: SELinux --- Ivan Gyurdiev <ivg2@cornell.edu> wrote: > > > I think it is. The developer, who understands > > the intent of the application and it behavior, > > ought to be in charge of the SELinux policy. > > On the other hand you might argue that the developer > of the application is biased toward the > application.. > and likely to allow things that shouldn't be > allowed. Yes, the developer will do that. It's the old useability VS security argument all over. I doubt that you're arguing for removing the chmod() syscall, although that's a logical step from your position. SELinux provides a mechanism by which the system can constrain an application. Great. What I don't condone is the uneducated application of this mechanism to applications on a production system. I agree that the rote use of audit2allow is a bad idea. I also take the position that the developer and/or maintainer of an application is the person responsible for the behavior of the application, and that includes the behavior under SELinux. If you can't get developers to buy into supporting SELinux properly SELinux will die on the vine. You will not get developers into the SELinux camp without sufficient and readily available tools and documentation. Oh, and respect, too. I hope that when I bring the project I have underway out I can include a rational SELinux policy as part of the package. I do not have faith that the "SELinux People" will understand it sufficiently to provide a policy for it. > Anyway, I think Steven (Smalley) has mentioned that > more efforts to decentralize policy will occur > after Tresys' binary modules work is merged. Yes, he has. I hope that effort is successful. I strongly dislike the direction of RedHat shipping a binary only policy, and one that so few people understand, and that the applications it impacts can't even be repaired by their maintainers. Harumph. Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 21:31 ` Casey Schaufler @ 2005-06-19 22:10 ` Luke Kenneth Casson Leighton 2005-06-20 0:28 ` Casey Schaufler 0 siblings, 1 reply; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-19 22:10 UTC (permalink / raw) To: Casey Schaufler; +Cc: ivg2, SELinux On Sun, Jun 19, 2005 at 02:31:51PM -0700, Casey Schaufler wrote: > Yes, he has. I hope that effort is successful. > I strongly dislike the direction of RedHat > shipping a binary only policy, and one that > so few people understand, and that the > applications it impacts can't even be repaired > by their maintainers. as the bun-fight over crond demonstrated (at least to me), the maintainers _can_ listen - if you have enough time, patience and flexibility. for those people who missed it, crond (not the vixie cron, the other one) did not properly support selinux, and needed it. a long _long_ time was spent explaining to the maintainer of crond that yes, selinux really _does_ have a concept of "system". the poor guy had added the concept of "*system*" to cater for the fact that unix-on-its-own doesn't have a clue about "system" privileges, and he had added some extra field into his internal data structures in order to be able to distinguish between "system" level cron jobs [run as root] and those that were explicitly to be run under the username of "root". after about 10-15 email exchanges, he eventually explained things clearly enough for it to get through our thick heads, and _then_ we had enough of an understanding of what he had created, in order to be able to successfully convince him that yes, selinux's "system_u" needs to ride "on the back of" his pseudo-created "*system*" concept. from there i kind of lost the plot a bit (i overdid it a bit :) and he and dan managed to finish it off and write an acceptable patch. i put it to you, therefore, casey, that it is _your_ job - and mine - to explain selinux clearly enough, to be patient enough, to listen enough. the one about openssh (the file handle one where an exec() had happened and the file handle hadn't been closed) was _way_ over my head, but heck - there were people here who understood it. one step at a time. l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 22:10 ` Luke Kenneth Casson Leighton @ 2005-06-20 0:28 ` Casey Schaufler 0 siblings, 0 replies; 46+ messages in thread From: Casey Schaufler @ 2005-06-20 0:28 UTC (permalink / raw) To: SELinux > i put it to you, therefore, casey, that it > is _your_ job - and mine - to explain selinux > clearly enough, to be patient enough, to listen > enough. I do not know enough about SELinux to explain it. I do not know how to do a policy. I do not have a clue why the existing policy module is deemed sensible. I would like to. But there is no source of information. Oh sure, I've been referred to papers written about Flux back in the previous century. They are not helpful. Finally, I do not see how a scheme under which the policy is generated after the fact by people other than the developers can possibly make sense. But, that's just me. Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 20:14 ` Casey Schaufler 2005-06-19 20:57 ` Ivan Gyurdiev @ 2005-06-19 22:13 ` Luke Kenneth Casson Leighton 2005-06-20 0:16 ` Casey Schaufler 1 sibling, 1 reply; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-19 22:13 UTC (permalink / raw) To: Casey Schaufler; +Cc: ivg2, SELinux On Sun, Jun 19, 2005 at 01:14:52PM -0700, Casey Schaufler wrote: > > > --- Ivan Gyurdiev <ivg2@cornell.edu> wrote: > > > You're misrepresenting the point of my response... > > Well, maybe a little. > > > Who writes the policy is not important. > > I think it is. The developer, who understands > the intent of the application and it behavior, > ought to be in charge of the SELinux policy. no, no, and definitely no. i made the mistake, 8 months ago, of making that recommendation. russell kindly put me right about it: you could likely, with enough searching, find his response. the person doing the application is EXTREMELY unlikely to have the expertise and knowledge sufficient to get selinux and to get selinux policy right. heck - it took me (and i pride myself on being a knowledge sponge) TWO MONTHS to go from being an ill-educated pain-in-the-ass to being an over-confident pain-in-the-ass. l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 22:13 ` Luke Kenneth Casson Leighton @ 2005-06-20 0:16 ` Casey Schaufler 2005-06-20 19:21 ` Luke Kenneth Casson Leighton 0 siblings, 1 reply; 46+ messages in thread From: Casey Schaufler @ 2005-06-20 0:16 UTC (permalink / raw) To: SELinux --- Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > > I think it is. The developer, who understands > > the intent of the application and it behavior, > > ought to be in charge of the SELinux policy. > > no, no, and definitely no. > > i made the mistake, 8 months ago, of making that > recommendation. > > russell kindly put me right about it: you could > likely, with enough > searching, find his response. > > the person doing the application is EXTREMELY > unlikely to have the > expertise and knowledge sufficient to get selinux > and to get selinux > policy right. My point, and I hope that someday I'll come up with the right set of words to make it clear, is that if it is indeed the case that application developers cannot be trained to get the SELinux policy correct that that is a fatal deficiency in the facility. SELinux cannot survive, even with the backing of the NSA and RedHat, if the developer community does not get behind it and that will not happen until developers have the information and tools they need to become expert in the generation of policies. In the MLS Unix world it was difficult to train people who where disinterested in the program even when their jobs depended on it. Once people became engaged with MLS, and that required lots of D O C U M E N T A T I O N, they learned how they could take advantage of it. Then they learned to quit worrying and love the bomb. Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 0:16 ` Casey Schaufler @ 2005-06-20 19:21 ` Luke Kenneth Casson Leighton 2005-06-20 20:41 ` Casey Schaufler 0 siblings, 1 reply; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-20 19:21 UTC (permalink / raw) To: Casey Schaufler; +Cc: SELinux On Sun, Jun 19, 2005 at 05:16:55PM -0700, Casey Schaufler wrote: > > > --- Luke Kenneth Casson Leighton <lkcl@lkcl.net> > wrote: > > > > > I think it is. The developer, who understands > > > the intent of the application and it behavior, > > > ought to be in charge of the SELinux policy. > > > > no, no, and definitely no. > > > > i made the mistake, 8 months ago, of making that > > recommendation. > > > > russell kindly put me right about it: you could > > likely, with enough > > searching, find his response. > > > > the person doing the application is EXTREMELY > > unlikely to have the > > expertise and knowledge sufficient to get selinux > > and to get selinux > > policy right. > > My point, and I hope that someday I'll > come up with the right set of words to > make it clear, is that if it is indeed > the case that application developers > cannot be trained to get the SELinux policy > correct that that is a fatal deficiency > in the facility. i _would_ agree with you... if it wasn't for this: * that security in unix is glaringly deficient; * that application developers are notoriously ignorant of security issues; * that languages like c and c++ and processors like the x86 _invite_ security issues. and that this is true _irrespective_ of whether selinux exists or not. yes? i think this can be said (i invite people to disagree). based on the above three statements (*) being true, it can be concluded that when you introduce selinux, the expectation for ordinary applications developers to "get it right" simply becomes an absolute nonsense. the mere _introduction_ of security-aware selinux developers and the use of a formally structured policy makes it possible to draw application developers' attention to security deficiencies in their programs, and they can then be invited to fix them. a [possibly too] simple example is that of the debian initscripts, one of which attempted to do a touch on /etc in order to detect whether /etc/mtab could potentially be written to [instead of doing touch on /etc/mtab itself!] because selinux "strict" policy quite rightly bans all but appropriate programs to have write permission to /etc (and this particular initscript most certainly ain't one of those programs!), the entire behaviour of the debian initscripts (in this case, mounting and managing the initial filesystem partitions!) went off down a different path, causing some quite serious recovery problems. the solution was NOT to "fix selinux" but instead the solution was to fix the initscript. ... but would that have been detected if it wasn't for the strictness of selinux being Mandatory Access Control, such that an avc message comes up? of course it wouldn't have been. there are plenty other (better) examples. l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 19:21 ` Luke Kenneth Casson Leighton @ 2005-06-20 20:41 ` Casey Schaufler 2005-06-20 21:01 ` Valdis.Kletnieks 0 siblings, 1 reply; 46+ messages in thread From: Casey Schaufler @ 2005-06-20 20:41 UTC (permalink / raw) To: SELinux --- Luke Kenneth Casson Leighton <lkcl@lkcl.net> wrote: > i _would_ agree with you... if it wasn't for this: > > * that security in unix is glaringly deficient; Careful there, son. You're talking to someone who's spent the past 15 years in the forefront of the effort to address this issue. It has been 10 years since this statement was true. > * that application developers are notoriously > ignorant of security issues; This is true. More to the point, developers of applications that manipulate or enforce policy, or that should and don't often are ignorant of the facilities available to them. > * that languages like c and c++ and processors like > the x86 _invite_ security issues. Careful there, it's a poor workman who blames his tools. Further, in today's world it's not the underlying system that is typically at fault, it's the lack of security design at the higher levels. > and that this is true _irrespective_ of whether > selinux exists or not. I've agreed some, and disagreed some, but in either case, the presence of SELinux makes very little difference. > yes? Let's go with 65% yes > i think this can be said (i invite people to > disagree). > > based on the above three statements (*) being true, > it can be concluded > that when you introduce selinux, the expectation > for ordinary > applications developers to "get it right" simply > becomes an absolute > nonsense. One of two things has to be true. Either: 1. Developers need to be able to get it right - or - 2. SELinux policy developers have to understand the applications the are writing policy for to the same level as the application developers. > the mere _introduction_ of security-aware selinux > developers and the > use of a formally structured policy makes it > possible to draw > application developers' attention to security > deficiencies in their > programs, and they can then be invited to fix them. Should the application development community accept SELinix policy as the standard of good taste you will have an argument of merit. As you point out, understanding is the key. If developers understand SELinux policy well enough to accept the judgements proclaimed by the application of said policy I would suggest that they are perfectly qualified to write it themselves. > a [possibly too] simple example is that of the > debian > initscripts, one of which attempted to do a touch > on /etc > in order to detect whether /etc/mtab could > potentially be > written to [instead of doing touch on /etc/mtab > itself!] This is an example of a programming flaw. Most security problems we see today are programming flaws. > because selinux "strict" policy quite rightly bans > all but > appropriate programs to have write permission to > /etc (and > this particular initscript most certainly ain't one > of those > programs!), the entire behaviour of the debian > initscripts > (in this case, mounting and managing the initial > filesystem > partitions!) went off down a different path, > causing some > quite serious recovery problems. > > the solution was NOT to "fix selinux" but instead > the solution > was to fix the initscript. Which was true, SELinux or no. > ... but would that have been detected if it wasn't > for the strictness > of selinux being Mandatory Access Control, such > that an avc message > comes up? Well, this is the open source world. Many eyes. > of course it wouldn't have been. Horsefeathers. > there are plenty other (better) examples. Of course there are. And there are a whole bunch SELinux isn't going to find, too. And once SELinux is used to find all the problems, and they get fixed, we can turn SELinux off because it's unnecessary. Right? Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 20:41 ` Casey Schaufler @ 2005-06-20 21:01 ` Valdis.Kletnieks 2005-06-20 21:36 ` Casey Schaufler 0 siblings, 1 reply; 46+ messages in thread From: Valdis.Kletnieks @ 2005-06-20 21:01 UTC (permalink / raw) To: Casey Schaufler; +Cc: SELinux [-- Attachment #1: Type: text/plain, Size: 481 bytes --] On Mon, 20 Jun 2005 13:41:06 PDT, Casey Schaufler said: > bunch SELinux isn't going to find, too. And > once SELinux is used to find all the problems, > and they get fixed, we can turn SELinux off > because it's unnecessary. Right? This presupposes two very unlikely events: 1) That *all* the problems are found 2) That no further software upgrades happen, introducing more problems. Other than that, yes, you could turn it off once your system is 100% secured and infallible. [-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 21:01 ` Valdis.Kletnieks @ 2005-06-20 21:36 ` Casey Schaufler 2005-06-22 9:48 ` Christopher Warner 0 siblings, 1 reply; 46+ messages in thread From: Casey Schaufler @ 2005-06-20 21:36 UTC (permalink / raw) To: Valdis.Kletnieks; +Cc: SELinux --- Valdis.Kletnieks@vt.edu wrote: > This presupposes two very unlikely events: > > 1) That *all* the problems are found Nope, just that all the problems that the "policy" would find are found. Since the policy will not find things it does not find ... > 2) That no further software upgrades happen, > introducing more problems. Or changes that are made to get around the SELinux policy that has arbitrarily been imposed on an application. > Other than that, yes, you could turn it off once > your system is > 100% secured and infallible. You could turn it off well before then and still gain complete benefit. Let's face it, SELinux, even with the strict policy, is not going to identify all flaws any more than a Biba integrity policy would. Casey Schaufler casey@schaufler-ca.com ____________________________________________________ Yahoo! Sports Rekindle the Rivalries. Sign up for Fantasy Football http://football.fantasysports.yahoo.com -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 21:36 ` Casey Schaufler @ 2005-06-22 9:48 ` Christopher Warner 0 siblings, 0 replies; 46+ messages in thread From: Christopher Warner @ 2005-06-22 9:48 UTC (permalink / raw) To: Casey Schaufler; +Cc: Valdis.Kletnieks, SELinux Pardon my tardiness to this thread. None the less i'm going to have to agree with Casey on this issue. Monday, while this thread was in commencement. I was having a 2 hour meeting discussing Selinux and it's use/implementation for this company I work for. Specifically how it will work/interact with one of the applications we sell. It seemed to me that I could not write a proper policy for the program in question without knowing how the program was designed and worked. Needless to say that me seeing the "source" is an issue and avenue that can't be explored. This led me to, subsequently, reverting to stracing the program. Which led to me finding that basically, the program in question does many things incorrectly or at least what one would deem as being grossly incorrect. IE: Using system calls instead of /proc etc etc (etc etc being more irregularity). Even if I wrote a decent policy for the program it would mean allowing it to do things it should not do. Breaking policy across the board for everything else all together. The last statement made was "Then I don't understand why we are using Selinux". We eventually agreed that I would need the design spec of the program and that I would write policy based off of that. I've not received the design spec yet and I've spent the last 6 months learning and working with Selinux, whilst fulfilling my day duties. Implementing it into the in-house distribution and then trying to write policy. I'm at a lost currently as to why I would even attempt at writing the policy for this program. It disheartens me as I feel the last 6 months were completely wasted in terms of anything involving the goal of security. The problem I see here is two fold in my case, First, the assumption that Selinux is a security cure all if it's just implemented or activated (a poor assumption made by the person in charge). This, only education and understanding of the product in question can fix. Secondly, and more importantly is that there is very little in the terms of updated and concise documentation where one can just point others (developers/sysadmins/etc) to. So that they can receive a decent overview and make an educated decision. Security is a philospohy and Selinux enforces this philosophy. Thats what it boils down to. The only useful reference is the O'Reilly book on Selinux. It covers creating policy but it doesn't address how policy interacts or how you'd go about writing a decent policy. This also has to be taken into account. We need more documentation and it should reiterate the fact that Selinux is pointless if proper policy is not or can not be written. On Mon, 2005-06-20 at 14:36 -0700, Casey Schaufler wrote: > > --- Valdis.Kletnieks@vt.edu wrote: > > > This presupposes two very unlikely events: > > > > 1) That *all* the problems are found > > Nope, just that all the problems that the > "policy" would find are found. Since the > policy will not find things it does not > find ... > > > 2) That no further software upgrades happen, > > introducing more problems. > > Or changes that are made to get around the > SELinux policy that has arbitrarily been > imposed on an application. > > > Other than that, yes, you could turn it off once > > your system is > > 100% secured and infallible. > > You could turn it off well before then and > still gain complete benefit. Let's face it, > SELinux, even with the strict policy, is not > going to identify all flaws any more than a > Biba integrity policy would. > > > > Casey Schaufler > casey@schaufler-ca.com > > > > ____________________________________________________ > Yahoo! Sports > Rekindle the Rivalries. Sign up for Fantasy Football > http://football.fantasysports.yahoo.com > > -- > This message was distributed to subscribers of the selinux mailing list. > If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with > the words "unsubscribe selinux" without quotes as the message. -- .-Christopher Warner---------------------------------------------. | my email is recycled to be sure; bcc my personal email address | `----------------------------------------------------------------' -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 19:51 ` Ivan Gyurdiev 2005-06-19 20:14 ` Casey Schaufler @ 2005-06-19 20:41 ` Ivan Gyurdiev 2005-06-20 3:34 ` R. Steven Rainwater 2005-06-19 22:17 ` Luke Kenneth Casson Leighton 2 siblings, 1 reply; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-19 20:41 UTC (permalink / raw) To: Casey Schaufler; +Cc: srainwater, SELinux > > If only the "SELinux people" can write "proper" > > policy SELinux has no place in the linux mainline. > > I suggest that the "SELinux People" would do well > > to provide documentation that is sufficient for > > the developer in question to create a "proper" > > policy rather than asserting that it's only > > something that they can do. The attitute presented > > is akin to saying that no one but RedHat should > > create Makefiles because, after all, they are > > the "Distribution People". > > You're misrepresenting the point of my response... > > Who writes the policy is not important. > Well - it is important, but that's not what I was talking > about here. I am all for improvements in the way SELinux > is distributed, and documented, so that more people can > write policy. > > What I think is a problem is when people use the output > of audit2allow as the policy... which is what I see happening. > To me that largely defeats the purpose of SELinux... Steven, to write custom selinux policy you need to download the selinux-policy-*-sources package. After doing that, you can go to domains/misc/local.te, and place your policy there. Then do make load; make install, and hope that it works. To actually write policy you need to understand the SELinux policy language. There are several books on this, but I'm not the best person to ask about a reference. I am sure others on this list will be able to help you. Casey has a point that currently it is difficult for the person who has had no experience with SELinux to write customized policy. That's why we try to limit the places where the user would need such a policy, and provide a GUI to control the operation of the existing policy (system-config-securitylevel) I highly recommend _against_ using the output of audit2allow as the policy, although it will be helpful to you to establish what went wrong. audit2allow is a tool which prints the audit messages from the log, and generates rules that will make them go away. You can then take those rules and place them in the policy sources, and recompile policy. Surely you can see why this is a bad thing, if used carelessly - some things should not necessarily be allowed, and this tool will allow them. It also attempts to create no organization of rules at all. SELinux rules are usually organized through macros that you can use to write better policy source. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 20:41 ` Ivan Gyurdiev @ 2005-06-20 3:34 ` R. Steven Rainwater 2005-06-20 4:45 ` Valdis.Kletnieks 2005-06-20 18:49 ` Luke Kenneth Casson Leighton 0 siblings, 2 replies; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 3:34 UTC (permalink / raw) To: SELinux Thanks for the replies so far. I understand that using audit2allow is the wrong way to fix my problem but that still doesn't get me any closer to making my perl scripts work. On Sun, 2005-06-19 at 16:41 -0400, Ivan Gyurdiev wrote: > To actually write policy you need to understand the > SELinux policy language. There are several books > on this... Ouch. I normally don't have to read several books to get a one line "hello world" perl script to run reliably on a new box. :-( On Sun, 2005-06-19 at 23:13 +0100, Luke Kenneth Casson Leighton wrote: > heck - it took me (and i pride myself on being a knowledge > sponge) TWO MONTHS to go from being an ill-educated > pain-in-the-ass to being an over-confident pain-in-the-ass. Ouch again. I simply don't have two months to get this system up and running. I've never had that many security problems on our servers and we've been running normal Linux for years, so I don't think the extra security of selinux will really be that helpful, especially if I can't easily admin my boxes or install and run new programs when I need to. I'm begining to think the best route would be to completely disable selinux and go back to normal linux mode. What's the best way to do that? I've found two ways of getting rid of selinux: 1. adding SELINUX=disabled to /etc/sysconfig/selinux 2. or, add SELINUX=permissive >From what the FAQs say, I'm guessing #1 is the way to go? It sounds like option 2 will fill up my message log with more warnings. One of the FAQs also says having selinux turned on slows the system down by 7%, so I'm guess I'll get my 7% back with option 1 but not option 2? When I've got a few months of free time available (ha!), I can set up a test box and play around with selinux again. -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 3:34 ` R. Steven Rainwater @ 2005-06-20 4:45 ` Valdis.Kletnieks 2005-06-20 14:45 ` R. Steven Rainwater 2005-06-20 18:49 ` Luke Kenneth Casson Leighton 1 sibling, 1 reply; 46+ messages in thread From: Valdis.Kletnieks @ 2005-06-20 4:45 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux [-- Attachment #1: Type: text/plain, Size: 3677 bytes --] On Sun, 19 Jun 2005 22:34:47 CDT, "R. Steven Rainwater" said: > Ouch. I normally don't have to read several books to get a one line > "hello world" perl script to run reliably on a new box. :-( Oh? You learned C without a book, or Perl, or any of the other languages? :) perl -e 'print "Hello World!\n"' doesn't generate any AVCs on my system when run as a normal user. So that's a straw man. Or are you saying that you let people write more complex Perl CGIs for your system (complex enough that they're running external commands or using Mysql or the other usual suspects for SELinux issues) and these people *don't* have Perl knowledge equivalent to reading several books on it? ;) > Ouch again. I simply don't have two months to get this system up and > running. I've never had that many security problems on our servers and > we've been running normal Linux for years, so I don't think the extra > security of selinux will really be that helpful, especially if I can't > easily admin my boxes or install and run new programs when I need to. It's a matter of trade-offs - if you do a 'chown -R root:root /' and change the root password to "", it's *really* easy to admin the boxes. ;) Also, "We haven't had many security problems in the past" doesn't prove anything. I've heard that from sites that leaked like a sieve security-wise and simply didn't *know* they'd been 0wnz0red for months. Also, just because the defenses you had 3 and 5 years ago stopped most of the hackers 3 and 5 years ago doesn't mean that they're sufficient to stop next year's hackers.... If you have 2 minutes rather than 2 months, kick the system to 'permissive' mode. > I'm begining to think the best route would be to completely disable > selinux and go back to normal linux mode. What's the best way to do > that? > > I've found two ways of getting rid of selinux: > > 1. adding SELINUX=disabled to /etc/sysconfig/selinux > > 2. or, add SELINUX=permissive > > >From what the FAQs say, I'm guessing #1 is the way to go? It sounds like > option 2 will fill up my message log with more warnings. One of the FAQs > also says having selinux turned on slows the system down by 7%, so I'm > guess I'll get my 7% back with option 1 but not option 2? Note that in "permissive" mode, each AVC message will only fire the first time it gets hit - which means that most likely, in the first hour or so of uptime you'll accumulate the majority of warnings you'll get. If nothing else, "permissive" mode is better than "disabled" security-wise - even if it doesn't stop an attack, at least you get the audit trail that something odd happened. Also, your system may be the exception, but the vast majority of people who see "7% performance hit" and immediately label it as "intolerable" are people who are running poorly tuned systems that could get back a lot more than 7% with just a little bit of work. > When I've got a few months of free time available (ha!), I can set up a > test box and play around with selinux again. You probably want to run in permissive mode *before* that, so that when you start playing around, you have the AVC messages in hand to start thinking about. As has been pointed out in other recent postings, 'audit2allow' is a poor substitute for looking at the AVC's your current policy generates and *thinking* about what is needed... And although you'll get *most* of the avc messages fairly quickly, a lot of them will only trip on rare corner-case occasions (for instance, if you have a monthly summary/whatever process, and base your policy on the 3 weeks of the month that said process doesn't run, your policy will likely kill that monthly process....) [-- Attachment #2: Type: application/pgp-signature, Size: 226 bytes --] ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 4:45 ` Valdis.Kletnieks @ 2005-06-20 14:45 ` R. Steven Rainwater 2005-06-20 15:14 ` Ivan Gyurdiev 0 siblings, 1 reply; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 14:45 UTC (permalink / raw) To: SELinux On Sun, 2005-06-19 at 23:45, Valdis.Kletnieks@vt.edu wrote: > On Sun, 19 Jun 2005 22:34:47 CDT, "R. Steven Rainwater" said: > perl -e 'print "Hello World!\n"' > > doesn't generate any AVCs on my system when run as a normal > user. So that's a straw man. I quoted the source of my one line perl test script and error message it generated in a previous post. It doesn't run on my system, which is using CentOS 4.1. All my scripts have been working fine on a non-selinux box. I'm not writing any new scripts (other than the one line test script), just trying to move an existing website and associated scripts to an selinux box. Some of the perl scripts run fine, other don't run at all, generating the avc errors. See my previous post for the details. -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 14:45 ` R. Steven Rainwater @ 2005-06-20 15:14 ` Ivan Gyurdiev 2005-06-20 15:29 ` R. Steven Rainwater 2005-06-20 16:28 ` Stephen Smalley 0 siblings, 2 replies; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-20 15:14 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux > I quoted the source of my one line perl test script and error message it > generated in a previous post. ...and I've pointed out that your script doesn't run, because httpd scripts are not allowed to write to the terminal. You can either customize your policy, which requires some understanding of SELinux, or argue that we should allow httpd scripts to write to the terminal in general. This has nothing to do with how simple the script is - security requirements are not proportional to code complexity. > All my scripts have been working fine on a non-selinux > box. SELinux is not supposed to be transparent. That was my misunderstanding when I first encountered it, and I have accepted this requirement since then. If you are interested in the extra security offered, then you have to put in some extra effort in making your applications run on top of this system. Hopefully as the policy becomes more mature, this will be less of an issue. > I'm not writing any new scripts (other than the one line test > script), just trying to move an existing website and associated scripts > to an selinux box. Some of the perl scripts run fine, other don't run at > all, generating the avc errors. You haven't provided any avc errors other than the /dev/pts/0 one. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:14 ` Ivan Gyurdiev @ 2005-06-20 15:29 ` R. Steven Rainwater 2005-06-20 15:44 ` Ivan Gyurdiev ` (2 more replies) 2005-06-20 16:28 ` Stephen Smalley 1 sibling, 3 replies; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 15:29 UTC (permalink / raw) To: SELinux On Mon, 2005-06-20 at 10:14, Ivan Gyurdiev wrote: > > I quoted the source of my one line perl test script > >and error message it generated in a previous post. > > ...and I've pointed out that your script doesn't run, > because httpd scripts are not allowed to write to the > terminal. What I wasn't understanding is why selinux thinks it's an httpd script. It seemed like a pretty generic "hello world" program to me. I'm assuming now, that selinux makes guesses about what sort of program it is by where it's located? My hello world program works in my home directory but not in the httpd perl directory. I still don't entirely understand why this should be but at least I know about it now and can look out for it. What can I say, I chose the subject line for a reason... :-) -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:29 ` R. Steven Rainwater @ 2005-06-20 15:44 ` Ivan Gyurdiev 2005-06-20 16:40 ` R. Steven Rainwater 2005-06-20 15:56 ` Stephen Smalley 2005-06-20 19:05 ` Luke Kenneth Casson Leighton 2 siblings, 1 reply; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-20 15:44 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux On Mon, 2005-06-20 at 10:29 -0500, R. Steven Rainwater wrote: > On Mon, 2005-06-20 at 10:14, Ivan Gyurdiev wrote: > > > I quoted the source of my one line perl test script > > >and error message it generated in a previous post. > > > > ...and I've pointed out that your script doesn't run, > > because httpd scripts are not allowed to write to the > > terminal. > > What I wasn't understanding is why selinux thinks it's an httpd script. > It seemed like a pretty generic "hello world" program to me. I'm > assuming now, that selinux makes guesses about what sort of program it > is by where it's located? No - it doesn't guess anything - it makes this decision based on the SELinux context of the file (which eventually determines the SELinux context of the process). See my other mail. This context is stored in the filesystem extended attributes (xattr). > What can I say, I chose the subject line for a reason... :-) :) -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:44 ` Ivan Gyurdiev @ 2005-06-20 16:40 ` R. Steven Rainwater 2005-06-20 16:59 ` Ivan Gyurdiev 2005-06-20 18:57 ` Luke Kenneth Casson Leighton 0 siblings, 2 replies; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 16:40 UTC (permalink / raw) To: SELinux On Mon, 2005-06-20 at 10:44, Ivan Gyurdiev wrote: > On Mon, 2005-06-20 at 10:29 -0500, R. Steven Rainwater wrote: > > I'm assuming now, that selinux makes guesses about what > > sort of program it is by where it's located? > > No - it doesn't guess anything - it makes this > decision based on the SELinux context of the file > (which eventually determines the SELinux context > of the process). Okay, this is begining to make a little sense. So looking at my test script again, when it's sitting in my home directory ls -alZ shows this: -rwxrwxr-x rsr:rsr root:object_r:user_home_t test.pl If I run it there it works fine. But when I move it anywhere in the /var/www tree, ls -alZ shows this: -rwxrwxr-x rsr:rsr root:object_r:httpd_sys_content_t test.pl And here it doesn't run (for me or root) but it will run for Apache. So that means that when I copy or move a script, the context automagically changes to correspond to whatever security rules are allowed within that directory? That still sounds to me like "context" means it runs if I put it in one directory but doesn't run if I put it in another. It also seems that with the "user_home_t" context the program can use stdout and run normally but with "httpd_sys_content_t" it can't use stdout and can only be run from Apache. I've discovered the chcon utility, so now I'm wondering if what I need to do is change the context of my script to something that will allow both Apache to run it as a CGI and ALSO allow root or another user to run the script normally with stdout. But how do I find out what context to set it to? Is there a list of available contexts and what permissions they have? -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 16:40 ` R. Steven Rainwater @ 2005-06-20 16:59 ` Ivan Gyurdiev 2005-06-20 17:35 ` Karl MacMillan ` (2 more replies) 2005-06-20 18:57 ` Luke Kenneth Casson Leighton 1 sibling, 3 replies; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-20 16:59 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: Daniel J Walsh, SELinux > Okay, this is begining to make a little sense. So looking at my test > script again, when it's sitting in my home directory ls -alZ shows this: > > -rwxrwxr-x rsr:rsr root:object_r:user_home_t test.pl > > If I run it there it works fine. But when I move it anywhere in the > /var/www tree, ls -alZ shows this: > > -rwxrwxr-x rsr:rsr root:object_r:httpd_sys_content_t test.pl You need to make the distinction between move (as in mv) and copy (as in cp). The former doesn't change context (just like it doesn't change permissions). > And here it doesn't run (for me or root) but it will run for Apache. That might be a bug in policy... cc-ed dwalsh > So > that means that when I copy or move a script, the context automagically > changes to correspond to whatever security rules are allowed within that > directory? That still sounds to me like "context" means it runs if I put > it in one directory but doesn't run if I put it in another. Context in SELinux is mostly determined based on location. It uses organization based on the directory structure to label things properly. As Stephen explained, it matches based on regular expressions on the path. > I've discovered the chcon utility, so now I'm wondering if what I need > to do is change the context of my script to something that will allow > both Apache to run it as a CGI and ALSO allow root or another user to > run the script normally with stdout. So, as Eric mentioned, SELinux shouldn't be transitioning to a different context when executing a web script from the user shell. It sounds to me like this isn't what's happening, however. It sounds like unconfined_t simply can't access those files, which I suspect is a bug. Are you sure the denial you got when running your script as root from a shell said: scontext=...httpd.. ? It would help if you could double check that. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* RE: dumb newbie questions 2005-06-20 16:59 ` Ivan Gyurdiev @ 2005-06-20 17:35 ` Karl MacMillan 2005-06-20 18:06 ` R. Steven Rainwater 2005-06-20 18:06 ` Daniel J Walsh 2 siblings, 0 replies; 46+ messages in thread From: Karl MacMillan @ 2005-06-20 17:35 UTC (permalink / raw) To: gyurdiev, 'R. Steven Rainwater'; +Cc: 'Daniel J Walsh', SELinux > -----Original Message----- > From: owner-selinux@tycho.nsa.gov [mailto:owner-selinux@tycho.nsa.gov] On > Behalf Of Ivan Gyurdiev > Sent: Monday, June 20, 2005 12:59 PM > To: R. Steven Rainwater > Cc: Daniel J Walsh; SELinux@tycho.nsa.gov > Subject: Re: dumb newbie questions > > > So > > that means that when I copy or move a script, the context automagically > > changes to correspond to whatever security rules are allowed within that > > directory? That still sounds to me like "context" means it runs if I put > > it in one directory but doesn't run if I put it in another. > > Context in SELinux is mostly determined based on location. > It uses organization based on the directory structure to label things > properly. As Stephen explained, it matches based on regular expressions > on the path. > I'd state this differently - the context is determined based on the intended usage or contents of the file/resource. This is often related to the location but not necessarily. For example, most of the files under the document root for apache are meant to be publicly viewable web pages, but not all (.htaccess for example). Karl --- Karl MacMillan Tresys Technology http://www.tresys.com (410) 290-1411 ext 134 > > > I've discovered the chcon utility, so now I'm wondering if what I need > > to do is change the context of my script to something that will allow > > both Apache to run it as a CGI and ALSO allow root or another user to > > run the script normally with stdout. > > So, as Eric mentioned, SELinux shouldn't be transitioning to a different > context when executing a web script from the user shell. It sounds > to me like this isn't what's happening, however. It sounds like > unconfined_t simply can't access those files, which I suspect is a bug. > > Are you sure the denial you got when running your script as root from a > shell said: scontext=...httpd.. ? It would help if you could double > check that. > > > > > > -- > This message was distributed to subscribers of the selinux mailing list. > If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with > the words "unsubscribe selinux" without quotes as the message. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 16:59 ` Ivan Gyurdiev 2005-06-20 17:35 ` Karl MacMillan @ 2005-06-20 18:06 ` R. Steven Rainwater 2005-06-20 18:18 ` Daniel J Walsh 2005-06-20 18:06 ` Daniel J Walsh 2 siblings, 1 reply; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 18:06 UTC (permalink / raw) To: gyurdiev; +Cc: Daniel J Walsh, SELinux On Mon, 2005-06-20 at 11:59, Ivan Gyurdiev wrote: > Are you sure the denial you got when running your script > as root from a shell said: scontext=...httpd.. ? It would > help if you could double check that. No problem. Here's the whole thing with a little more detail. The perl script "test.pl": #!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello!\n" Experiment #1: The script is located in /var/www/cgi-bin: ls -alZ shows: -rwxrwxr-x apache:apache root:object_r:httpd_sys_content_t test.pl Hit through apache I get "Hello!" in my browser as expected. Executed locally from the command line as Root, the script silently fails (produces no output). Four errors appear in the message log: Jun 20 12:56:22 orac2 kernel: audit(1119290182.484:0): avc: denied { read write } for pid=20536 comm=test.pl name=0 dev=devpts ino=2 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:devpts_t tclass=chr_file Jun 20 12:56:22 orac2 kernel: audit(1119290182.484:0): avc: denied { read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts ino=2 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:devpts_t tclass=chr_file Jun 20 12:56:22 orac2 kernel: audit(1119290182.485:0): avc: denied { read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts ino=2 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:devpts_t tclass=chr_file Jun 20 12:56:22 orac2 kernel: audit(1119290182.486:0): avc: denied { read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts ino=2 scontext=root:system_r:httpd_sys_script_t tcontext=root:object_r:devpts_t tclass=chr_file Executed locally by user 'rsr', the script also fails and produces four identical error messages except that scontext now starts with 'user_u' instead of 'root' in each error. Experiment #2: I used 'cp' to copy the file to /home/rsr ls -alZ shows: -rwxrwxr-x apache:apache root:object_r:user_home_t test.pl Executed locally from the command line as user 'rsr', the script runs as expected, printing "Hello!". Executed locally from the command line as root, the script runs as expected, printing "Hello!". No errors appear in the messages log when run from /home/rsr. Let me know if I left anything useful out... -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 18:06 ` R. Steven Rainwater @ 2005-06-20 18:18 ` Daniel J Walsh 2005-06-24 6:22 ` Russell Coker 0 siblings, 1 reply; 46+ messages in thread From: Daniel J Walsh @ 2005-06-20 18:18 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: gyurdiev, SELinux R. Steven Rainwater wrote: >On Mon, 2005-06-20 at 11:59, Ivan Gyurdiev wrote: > > >>Are you sure the denial you got when running your script >>as root from a shell said: scontext=...httpd.. ? It would >>help if you could double check that. >> >> > >No problem. Here's the whole thing with a little more detail. > >The perl script "test.pl": > >#!/usr/bin/perl >print "Content-type: text/html\n\n"; >print "Hello!\n" > >Experiment #1: > >The script is located in /var/www/cgi-bin: > >ls -alZ shows: > >-rwxrwxr-x apache:apache root:object_r:httpd_sys_content_t test.pl > >Hit through apache I get "Hello!" in my browser as expected. > >Executed locally from the command line as Root, the script silently >fails (produces no output). Four errors appear in the message log: > >Jun 20 12:56:22 orac2 kernel: audit(1119290182.484:0): avc: denied { >read write } for pid=20536 comm=test.pl name=0 dev=devpts ino=2 >scontext=root:system_r:httpd_sys_script_t >tcontext=root:object_r:devpts_t tclass=chr_file > >Jun 20 12:56:22 orac2 kernel: audit(1119290182.484:0): avc: denied { >read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts >ino=2 scontext=root:system_r:httpd_sys_script_t >tcontext=root:object_r:devpts_t tclass=chr_file > >Jun 20 12:56:22 orac2 kernel: audit(1119290182.485:0): avc: denied { >read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts >ino=2 scontext=root:system_r:httpd_sys_script_t >tcontext=root:object_r:devpts_t tclass=chr_file > >Jun 20 12:56:22 orac2 kernel: audit(1119290182.486:0): avc: denied { >read write } for pid=20536 comm=test.pl path=/dev/pts/0 dev=devpts >ino=2 scontext=root:system_r:httpd_sys_script_t >tcontext=root:object_r:devpts_t tclass=chr_file > >Executed locally by user 'rsr', the script also fails and produces four >identical error messages except that scontext now starts with 'user_u' >instead of 'root' in each error. > > >Experiment #2: > >I used 'cp' to copy the file to /home/rsr > >ls -alZ shows: > >-rwxrwxr-x apache:apache root:object_r:user_home_t test.pl > >Executed locally from the command line as user 'rsr', the script runs as >expected, printing "Hello!". > >Executed locally from the command line as root, the script runs as >expected, printing "Hello!". > >No errors appear in the messages log when run from /home/rsr. > >Let me know if I left anything useful out... > >-Steve > > > Ok there is a bug in policy. Basically we have a domain_auto_trans(sysadm_t, httpd_sys_script_exec_t, httpd_sys_script_t) I have been ifdefing these out for targeted policy, but I am wondering if we want these for strict policy either. Fix will be in selinux-policy-targeted-1.23.18-16 Dan -- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 18:18 ` Daniel J Walsh @ 2005-06-24 6:22 ` Russell Coker 0 siblings, 0 replies; 46+ messages in thread From: Russell Coker @ 2005-06-24 6:22 UTC (permalink / raw) To: Daniel J Walsh; +Cc: R. Steven Rainwater, gyurdiev, SELinux On Tuesday 21 June 2005 04:18, Daniel J Walsh <dwalsh@redhat.com> wrote: > Ok there is a bug in policy. > > Basically we have a > > domain_auto_trans(sysadm_t, httpd_sys_script_exec_t, httpd_sys_script_t) > > I have been ifdefing these out for targeted policy, but I am wondering > if we want these for strict policy either. If you don't have such a domain transition then the program will have different security contexts for running from a user login vs running from Apache. As the login session generally has more access the likely result is that some bugs or configuration issues will result in the script working properly when run from a terminal but not working when Apache runs them. Also running in different domains means different types for files that are created, in the default policy the only example of this is files under /tmp. If a cgi-bin script creates a directory under /tmp of a fixed name (yes we know it's bad but lots of scripts do it anyway) and then creates files under it then running the script once as sysadm_t or unconfined_t may then prevent the script from working when it is run from Apache. This leads to potential situations where a script that has been working fine suddenly stops working for no clear reason just because it was once run from a terminal session. One of the advantages that SE Linux offers is that bad use of temporary file names cease to be open security holes and become DOS attacks instead. -- http://www.coker.com.au/selinux/ My NSA Security Enhanced Linux packages http://www.coker.com.au/bonnie++/ Bonnie++ hard drive benchmark http://www.coker.com.au/postal/ Postal SMTP/POP benchmark http://www.coker.com.au/~russell/ My home page -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 16:59 ` Ivan Gyurdiev 2005-06-20 17:35 ` Karl MacMillan 2005-06-20 18:06 ` R. Steven Rainwater @ 2005-06-20 18:06 ` Daniel J Walsh 2 siblings, 0 replies; 46+ messages in thread From: Daniel J Walsh @ 2005-06-20 18:06 UTC (permalink / raw) To: gyurdiev; +Cc: R. Steven Rainwater, SELinux Ivan Gyurdiev wrote: >>Okay, this is begining to make a little sense. So looking at my test >>script again, when it's sitting in my home directory ls -alZ shows this: >> >>-rwxrwxr-x rsr:rsr root:object_r:user_home_t test.pl >> >>If I run it there it works fine. But when I move it anywhere in the >>/var/www tree, ls -alZ shows this: >> >>-rwxrwxr-x rsr:rsr root:object_r:httpd_sys_content_t test.pl >> >> > >You need to make the distinction between move (as in mv) >and copy (as in cp). The former doesn't change context (just like >it doesn't change permissions). > > > >>And here it doesn't run (for me or root) but it will run for Apache. >> >> > >That might be a bug in policy... >cc-ed dwalsh > > > >> So >>that means that when I copy or move a script, the context automagically >>changes to correspond to whatever security rules are allowed within that >>directory? That still sounds to me like "context" means it runs if I put >>it in one directory but doesn't run if I put it in another. >> >> > >Context in SELinux is mostly determined based on location. >It uses organization based on the directory structure to label things >properly. As Stephen explained, it matches based on regular expressions >on the path. > > > > >>I've discovered the chcon utility, so now I'm wondering if what I need >>to do is change the context of my script to something that will allow >>both Apache to run it as a CGI and ALSO allow root or another user to >>run the script normally with stdout. >> >> > >So, as Eric mentioned, SELinux shouldn't be transitioning to a different >context when executing a web script from the user shell. It sounds >to me like this isn't what's happening, however. It sounds like >unconfined_t simply can't access those files, which I suspect is a bug. > >Are you sure the denial you got when running your script as root from a >shell said: scontext=...httpd.. ? It would help if you could double >check that. > > The latest targeted policy does/should not transition from unconfined_t to httpd_sys_script_t. So the script should be allowed to output to the terminal. If you update policy that is. -- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 16:40 ` R. Steven Rainwater 2005-06-20 16:59 ` Ivan Gyurdiev @ 2005-06-20 18:57 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-20 18:57 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux On Mon, Jun 20, 2005 at 11:40:17AM -0500, R. Steven Rainwater wrote: > On Mon, 2005-06-20 at 10:44, Ivan Gyurdiev wrote: > > On Mon, 2005-06-20 at 10:29 -0500, R. Steven Rainwater wrote: > > > I'm assuming now, that selinux makes guesses about what > > > sort of program it is by where it's located? > > > > No - it doesn't guess anything - it makes this > > decision based on the SELinux context of the file > > (which eventually determines the SELinux context > > of the process). > > Okay, this is begining to make a little sense. So looking at my test > script again, when it's sitting in my home directory ls -alZ shows this: > > -rwxrwxr-x rsr:rsr root:object_r:user_home_t test.pl > > If I run it there it works fine. But when I move it anywhere in the > /var/www tree, ls -alZ shows this: > > -rwxrwxr-x rsr:rsr root:object_r:httpd_sys_content_t test.pl did you do a restorecon /var/www/{whereveryouputit}/test.pl after doing the mv? -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:29 ` R. Steven Rainwater 2005-06-20 15:44 ` Ivan Gyurdiev @ 2005-06-20 15:56 ` Stephen Smalley 2005-06-20 19:05 ` Luke Kenneth Casson Leighton 2 siblings, 0 replies; 46+ messages in thread From: Stephen Smalley @ 2005-06-20 15:56 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: Ivan Gyurdiev, SELinux On Mon, 2005-06-20 at 10:29 -0500, R. Steven Rainwater wrote: > What I wasn't understanding is why selinux thinks it's an httpd script. > It seemed like a pretty generic "hello world" program to me. I'm > assuming now, that selinux makes guesses about what sort of program it > is by where it's located? My hello world program works in my home > directory but not in the httpd perl directory. I still don't entirely > understand why this should be but at least I know about it now and can > look out for it. SELinux performs security transitions upon execve() based on the security context of the program file, where the security context of the file is an attribute associated with the file's inode similar to the file's owner/group/mode information (but stored via extended attributes, man 5 attr, as with ACLs). To initialize the security context when a file is installed, there is a file_contexts configuration file that specifies file security contexts based on pathname regular expressions. Programs like rpm and install know to set the inode attribute at install-time based on this configuration. restorecon can also be used to manually reset the inode attribute to the one specified in the file_contexts configuration. But in general, after initialization, the inode attribute should be maintained through a combination of policy rules and (when necessary for fine-grained labeling) security-aware applications so that it reflects the real security state of the inode. At runtime, we don't want to base security decisions on pathnames, which are merely a way (among potentially many different ways) to refer to the object and don't reflect the real security state of the referenced object. We instead want to base decisions on the security attribute of the object, which is properly stored (or at least associated) with the inode. At install-time, we can infer some aspects of the security properties of the file from its location under the assumption of secure development and distribution. After installation, we want to track the real security state of the system. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:29 ` R. Steven Rainwater 2005-06-20 15:44 ` Ivan Gyurdiev 2005-06-20 15:56 ` Stephen Smalley @ 2005-06-20 19:05 ` Luke Kenneth Casson Leighton 2 siblings, 0 replies; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-20 19:05 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux On Mon, Jun 20, 2005 at 10:29:29AM -0500, R. Steven Rainwater wrote: > What can I say, I chose the subject line for a reason... :-) :) use ls -Z a _lot_. then go through the file named file_contexts checking the regexps to make sure that the file context you see with ls -Z matches one of the regexps you see in the file_contexts file. if it don't look like it's correct (because you did a mv rather than cp with the option to set the file context when the file is in its new location) then do a restorecon. but most critically, remember that only certain areas have been "allocated" as suitable areas for cgi-scripts. look in httpd.fc (or is it apache.fc) to see what those areas are. you will expect to see a line like: /var/www/cgi-bin/* -- httpd_cgi_exec_t which means that anything executed from /var/www/cgi-bin/ will be given an selinux context of httpd_cgi_exec_t. [... but remember what i said above about file_contexts: if you then put files _into_ /var/www/cgi-bin/ you must double check that (in this case) they have (e.g.) a context of httpd_cgi_exec_t (by using ls -Z) and if they _don't_ then you _must_ do restorecon /var...../mynewscript. ] so. if you just blop files into /var/www/my-home-grown-cgi-server-directory and then don't also modify httpd.fc to reflect this new location (with an appropriate regexp) then no amount of restorecon'ing will help you. hope this helps. l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:14 ` Ivan Gyurdiev 2005-06-20 15:29 ` R. Steven Rainwater @ 2005-06-20 16:28 ` Stephen Smalley 1 sibling, 0 replies; 46+ messages in thread From: Stephen Smalley @ 2005-06-20 16:28 UTC (permalink / raw) To: gyurdiev; +Cc: SELinux, R. Steven Rainwater On Mon, 2005-06-20 at 11:14 -0400, Ivan Gyurdiev wrote: > SELinux is not supposed to be transparent. > That was my misunderstanding when I first encountered it, > and I have accepted this requirement since then. Hmmm...well, SELinux is designed to provide transparency as much as possible (e.g. it allows default domain transitions and file type transitions to reduce the need to modify applications, and the ability to configure policy means that you get to choose where to make functionality vs. security tradeoffs). > If you are interested in the extra security offered, then > you have to put in some extra effort in making your > applications run on top of this system. Hopefully as > the policy becomes more mature, this will be less > of an issue. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 3:34 ` R. Steven Rainwater 2005-06-20 4:45 ` Valdis.Kletnieks @ 2005-06-20 18:49 ` Luke Kenneth Casson Leighton 1 sibling, 0 replies; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-20 18:49 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux allo steven, i didn't notice it was you doin the asking :) long time no talk! On Sun, Jun 19, 2005 at 10:34:47PM -0500, R. Steven Rainwater wrote: > Ouch again. I simply don't have two months to get this system up and > running. I've never had that many security problems on our servers and > we've been running normal Linux for years, so I don't think the extra > security of selinux will really be that helpful, especially if I can't > easily admin my boxes or install and run new programs when I need to. > I'm begining to think the best route would be to completely disable > selinux and go back to normal linux mode. What's the best way to do > that? > > I've found two ways of getting rid of selinux: > > 1. adding SELINUX=disabled to /etc/sysconfig/selinux > > 2. or, add SELINUX=permissive i wouldn't recommend either of these. what i _would_ recommend is that you install the "targetted" policy rather than the "strict" one. ... but if you absolutely absolutely must "get rid" of selinux, then use 1. not 2. remember that you will need to relabel your filesystem if you wish to reintroduce selinux, because 1) will create files without an selinux permission (equivalent to chmod 000 on files) and 2) will allow files to be created that would otherwise be banned, such that they are likely to have the _wrong_ [unpredictable] selinux file contexts. the targetted policy allows anything that isn't constrained by selinux to happily do what it likes - as long as it doesn't stomp on the toes of anything that _is_ constrained. e.g. if you haven't got a web server installed then you can write your own program, run as root, to bind to port 80. [on a "strict" system, if you haven't added the apache.te policy in then NOTHING can bind to port 80, even if you're running as root.] l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 19:51 ` Ivan Gyurdiev 2005-06-19 20:14 ` Casey Schaufler 2005-06-19 20:41 ` Ivan Gyurdiev @ 2005-06-19 22:17 ` Luke Kenneth Casson Leighton 2005-06-20 4:11 ` Ivan Gyurdiev 2 siblings, 1 reply; 46+ messages in thread From: Luke Kenneth Casson Leighton @ 2005-06-19 22:17 UTC (permalink / raw) To: Ivan Gyurdiev; +Cc: Casey Schaufler, SELinux On Sun, Jun 19, 2005 at 03:51:58PM -0400, Ivan Gyurdiev wrote: > What I think is a problem is when people use the output > of audit2allow as the policy... which is what I see happening. that's exactly what i do as a first approximation, because i don't have enough info in my head about all those macros. some of those macros expand out to TWENTY THOUSAND statements. > To me that largely defeats the purpose of SELinux... *shrug* what else would an inexperienced person use? _after_ doing audit2allow, you can at least go back and look at some of the macros. if you want a useful tool, then what you want is an analyser that will suggest appropriate macros to use AFTER someone has done repeated application of audit2allow. an se-lint, if you will. and yes, i am aware that even doing the audit2allow "thing" doesn't help you in the slightest if you haven't a clue about domain transitions. l. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-19 22:17 ` Luke Kenneth Casson Leighton @ 2005-06-20 4:11 ` Ivan Gyurdiev 0 siblings, 0 replies; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-20 4:11 UTC (permalink / raw) To: Luke Kenneth Casson Leighton; +Cc: Casey Schaufler, SELinux > some of those macros expand out to TWENTY THOUSAND statements. ..which is a completely irrelevant statistic. What's important is how accurate the macro's header explains what the macro does. I highly dislike policy which doesn't make use of proper macros - it looks like a random collection of allow rules with no sense of purpose of any kind. That's part of the reason I don't like audit2allow. To me, the structure of policy should follow the structure of code - if you have a shared library somewhere, you should have a macro (or several of them) that can be called by whatever links to that library. Otherwise you just end up adding the same allow rules all over the place, and they're not organized in a logical module. -- Ivan Gyurdiev <ivg2@cornell.edu> Cornell University -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-18 23:38 ` dumb newbie questions R. Steven Rainwater 2005-06-19 6:45 ` Ivan Gyurdiev @ 2005-06-20 13:12 ` Trevor Vaughan 2005-06-20 15:21 ` R. Steven Rainwater 2005-06-30 22:11 ` cgiemail and senmail policy R. Steven Rainwater 2 siblings, 1 reply; 46+ messages in thread From: Trevor Vaughan @ 2005-06-20 13:12 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux Hi Steven, I'm also relatively new to the SELinux game and have run into some similar PERL + Apache quirks. Basically, it looks like you have a PERL script running from within the Apache context (i.e. run by Apache) and the script is attempting to write to a character device, probably the terminal (as mentioned in a previous post). The rule that you generated with audit2allow will work but you REALLY need to think about whether or not you need to give Apache RW access to the terminal. Try this: 1. Run the script from your home directory as a normal user. (This should work). 2. Write a PERL script, to be run from within Apache, that writes a file that is inside the web directory (whatever that may be on your system, probably /var/httpd/htdocs or the like). (This should work since it is within the httpd system space.) Also, are you running in strict or targeted mode? It sounds like targeted mode, if not, you might want to try that first. Finally, as mentioned in another post, you'll need to get the policy sources, add what you need to change, and re-compile them to make this work. I would not recommend adding any raw devices to the Apache directive, but that's up to you. Personally, I've found that the SELinux additions work great for boxes that are stripped down servers and where the system linkages are well understood but that when you start linking all around the system (especially with PERL) you may get unexpected results. However, most of these can be fixed from within the script and, if not, solved with a read-only context. Any time that you need to change something to provide write access, I would take a good, hard, look at the situation at hand. Good Luck, Trevor > kernel: audit(1119056704.257:0): avc: denied { read write } for pid=3020 > comm=test.pl path=/dev/pts/0 dev=devpts ino=2 > scontext=root:system_r:httpd_sys_script_t > tcontext=root:object_r:devpts_t tclass=chr_file -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 13:12 ` Trevor Vaughan @ 2005-06-20 15:21 ` R. Steven Rainwater 2005-06-20 15:40 ` Ivan Gyurdiev 2005-06-20 16:20 ` Stephen Smalley 0 siblings, 2 replies; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-20 15:21 UTC (permalink / raw) To: SELinux Thanks for your comments, Trevor. I think you've helped me stumble into the answer (or at least into the right questions). On Mon, 2005-06-20 at 08:12, Trevor Vaughan wrote: > Basically, it looks like you have a PERL script running > from within the Apache context (i.e. run by Apache) and > the script is attempting to write to a character device Actually, the script is one that I run from a terminal to manually perform certain types of maintenance on the website. It's designed to be called remotely through Apache or run from the command line, in which case it spits out status messages to stdout. That's why I wrote the one-liner "hello world" test script to track down the problem. Shouldn't the root user be able to run a script that writes to stdout? > 1. Run the script from your home directory as a > normal user. (This should work). Wow, amazingly, it did. I moved the script to my home directory changed the owner to me, ran it, and it printed "hello world" with no errors. I changed the owner back to root and ran it from my home directory - it still works. Looks like the owner setting doesn't make any difference. I moved the script back to within the /var/www area where it normally lives and I could no longer run it as myself or as root. This is totally bizarre - why would the directory location affect it? Is this normal or a bug in my setup? Is there a way to tell selinux that a user (or root) should be able to run a Perl script that uses stdout regardless of it's physical location? A rule like that might fix me up. Failing that, is there an easy way to get a list of directories where selinux won't allow programs using stdout to run? Not to complain but if selinux breaks (fixes?) something as universal as the ability of a program to use stdout, there should be a big red warning label in the docs, saying "Look out! Programs that use stdout will not work unless you put them in certain directories!" But that's just me... > 2. Write a PERL script, to be run from within Apache, > that writes a file that is inside the web directory Yes, this was already working in most cases. The above discovery looks to be the source of my problems. If I can't figure out how to fix it, I could move copies of the non-working scripts to a directory where they'll run. Or maybe use symlinks if selinux allows it. One copy in the /var/www tree to be run by Apache and one copy somewhere else to be run locally when needed. Yuck. > Also, are you running in strict or targeted mode? My /etc/selinux/config file says: SELINUX=enforcing SELINUX=targeted Just for kicks I tried setting it to SELINUX=disabled and rebooted. There was no discernable difference in speed. Valdis indicated the error messages should die down after a few days, so maybe permissive is the way to go. I'll keep beating on it today and maybe I can get things working with selinux. If not, I can use permissive as Plan B. -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:21 ` R. Steven Rainwater @ 2005-06-20 15:40 ` Ivan Gyurdiev 2005-06-20 16:20 ` Stephen Smalley 1 sibling, 0 replies; 46+ messages in thread From: Ivan Gyurdiev @ 2005-06-20 15:40 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux > This is totally bizarre - why would the directory location affect it? The directory location does not affect it. The security type does. SELinux does not pay attention to the user - it pays attention to the security context. You can see the security context by typing ls -Z <file>. When you copy files into directories, you're changing their security context, much like changing permissions. > Is this normal or a bug in my setup? This is probably normal. > > Not to complain but if selinux breaks (fixes?) something as universal as > the ability of a program to use stdout, there should be a big red > warning label in the docs, saying "Look out! Programs that use stdout > will not work unless you put them in certain directories!" But that's > just me... Everything not specifically allowed on SELinux is forbidden. If you have no good reason for a certain privilege, then you're not granted that privilege. -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: dumb newbie questions 2005-06-20 15:21 ` R. Steven Rainwater 2005-06-20 15:40 ` Ivan Gyurdiev @ 2005-06-20 16:20 ` Stephen Smalley 1 sibling, 0 replies; 46+ messages in thread From: Stephen Smalley @ 2005-06-20 16:20 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux On Mon, 2005-06-20 at 10:21 -0500, R. Steven Rainwater wrote: > Actually, the script is one that I run from a terminal to manually > perform certain types of maintenance on the website. It's designed to be > called remotely through Apache or run from the command line, in which > case it spits out status messages to stdout. That's why I wrote the > one-liner "hello world" test script to track down the problem. Shouldn't > the root user be able to run a script that writes to stdout? The question is whether the script should be allowed to write to a local pty on the server. Naturally, you don't want that happening when it is run by apache. It is possible to configure policy such that the script runs with a different set of permissions when run directly by a user than when run by apache, but that then makes it harder to performing testing and debugging of the script by a user under the same conditions (policy) as when it is run by apache. > This is totally bizarre - why would the directory location affect it? Is > this normal or a bug in my setup? Is there a way to tell selinux that a > user (or root) should be able to run a Perl script that uses stdout > regardless of it's physical location? A rule like that might fix me up. > Failing that, is there an easy way to get a list of directories where > selinux won't allow programs using stdout to run? SELinux doesn't care about stdout; it care about what objects you can access. In this case, it is preventing the script from accessing a local pty on the server, for good reason. But if stdout referred to a pipe back to the apache daemon or to a socket back to the client, then it would presumably allow the script to access it. > Yes, this was already working in most cases. The above discovery looks > to be the source of my problems. If I can't figure out how to fix it, I > could move copies of the non-working scripts to a directory where > they'll run. Or maybe use symlinks if selinux allows it. One copy in the > /var/www tree to be run by Apache and one copy somewhere else to be run > locally when needed. Yuck. As noted, you can configure policy to run the script in a different domain depending on the caller. Or you can use runcon to force it to run in a particular domain, e.g. runcon `id -Z` -- /path/to/script. -- Stephen Smalley National Security Agency -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* cgiemail and senmail policy 2005-06-18 23:38 ` dumb newbie questions R. Steven Rainwater 2005-06-19 6:45 ` Ivan Gyurdiev 2005-06-20 13:12 ` Trevor Vaughan @ 2005-06-30 22:11 ` R. Steven Rainwater 2005-07-03 14:21 ` Daniel J Walsh 2 siblings, 1 reply; 46+ messages in thread From: R. Steven Rainwater @ 2005-06-30 22:11 UTC (permalink / raw) To: SELinux; +Cc: Daniel J Walsh I'm running a CentOS 4.1 (Red Hat EL) box with an Apache web server. I thought I'd worked out all the problems with my cgi scripts but a new one cropped up today. We use the good ol' MIT cgiemail program to handle form submissions that get sent via sendmail. When someone submits a form, I get a series of avc errors and no email gets sent. What's the best way to fix this (i.e. to make Apache able to use cgiemail to send email via sendmail)? Here are the errors I'm getting: Jun 30 16:47:33 orac kernel: audit(1120168053.409:0): avc: denied { write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 ino=948452 scontext=root:system_r:system_mail_t tcontext=root:object_r:httpd_sys_script_rw_t tclass=file Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 ino=948452 scontext=root:system_r:system_mail_t tcontext=root:object_r:httpd_sys_script_rw_t tclass=file Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 ino=948452 scontext=root:system_r:system_mail_t tcontext=root:object_r:httpd_sys_script_rw_t tclass=file Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { read write } for pid=27969 comm=sendmail path=/tmp/tmpfKM8Top (deleted) dev=dm-0 ino=948418 scontext=root:system_r:system_mail_t tcontext=root:object_r:httpd_sys_script_rw_t tclass=file Jun 30 16:47:33 orac kernel: audit(1120168053.510:0): avc: denied { search } for pid=27969 comm=sendmail name=www dev=dm-0 ino=556110 scontext=root:system_r:system_mail_t tcontext=system_u:object_r:httpd_sys_content_t tclass=dir Jun 30 16:47:33 orac kernel: audit(1120168053.511:0): avc: denied { getattr } for pid=27969 comm=sendmail path=/var/www dev=dm-0 ino=556110 scontext=root:system_r:system_mail_t tcontext=system_u:object_r:httpd_sys_content_t tclass=dir The system is using selinux-policy-targeted-1.17.30-2.88. -Steve -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: cgiemail and senmail policy 2005-06-30 22:11 ` cgiemail and senmail policy R. Steven Rainwater @ 2005-07-03 14:21 ` Daniel J Walsh 0 siblings, 0 replies; 46+ messages in thread From: Daniel J Walsh @ 2005-07-03 14:21 UTC (permalink / raw) To: R. Steven Rainwater; +Cc: SELinux R. Steven Rainwater wrote: >I'm running a CentOS 4.1 (Red Hat EL) box with an Apache web server. I >thought I'd worked out all the problems with my cgi scripts but a new >one cropped up today. We use the good ol' MIT cgiemail program to handle >form submissions that get sent via sendmail. When someone submits a >form, I get a series of avc errors and no email gets sent. What's the >best way to fix this (i.e. to make Apache able to use cgiemail to send >email via sendmail)? Here are the errors I'm getting: > >Jun 30 16:47:33 orac kernel: audit(1120168053.409:0): avc: denied { >write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 >ino=948452 scontext=root:system_r:system_mail_t >tcontext=root:object_r:httpd_sys_script_rw_t tclass=file > >Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { >write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 >ino=948452 scontext=root:system_r:system_mail_t >tcontext=root:object_r:httpd_sys_script_rw_t tclass=file > >Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { >write } for pid=27969 comm=sendmail path=/tmp/filegvNeNa dev=dm-0 >ino=948452 scontext=root:system_r:system_mail_t >tcontext=root:object_r:httpd_sys_script_rw_t tclass=file > >Jun 30 16:47:33 orac kernel: audit(1120168053.410:0): avc: denied { >read write } for pid=27969 comm=sendmail path=/tmp/tmpfKM8Top (deleted) >dev=dm-0 ino=948418 scontext=root:system_r:system_mail_t >tcontext=root:object_r:httpd_sys_script_rw_t tclass=file > >Jun 30 16:47:33 orac kernel: audit(1120168053.510:0): avc: denied { >search } for pid=27969 comm=sendmail name=www dev=dm-0 ino=556110 >scontext=root:system_r:system_mail_t >tcontext=system_u:object_r:httpd_sys_content_t tclass=dir > >Jun 30 16:47:33 orac kernel: audit(1120168053.511:0): avc: denied { >getattr } >for pid=27969 comm=sendmail path=/var/www dev=dm-0 ino=556110 >scontext=root:system_r:system_mail_t >tcontext=system_u:object_r:httpd_sys_content_t tclass=dir > > > >The system is using selinux-policy-targeted-1.17.30-2.88. > >-Steve > > > Upgrade to the latest RHEL policy on. ftp://people.redhat.com/dwalsh/SELinux/RHEL4/u1 Dan -- -- This message was distributed to subscribers of the selinux mailing list. If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with the words "unsubscribe selinux" without quotes as the message. ^ permalink raw reply [flat|nested] 46+ messages in thread
end of thread, other threads:[~2005-07-03 14:21 UTC | newest] Thread overview: 46+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-06-17 20:01 SELinux Integrated Logging Tool Brandon Pollet 2005-06-17 23:43 ` James Morris 2005-06-18 15:39 ` Steve G 2005-06-18 23:38 ` dumb newbie questions R. Steven Rainwater 2005-06-19 6:45 ` Ivan Gyurdiev 2005-06-19 16:40 ` Casey Schaufler 2005-06-19 19:51 ` Ivan Gyurdiev 2005-06-19 20:14 ` Casey Schaufler 2005-06-19 20:57 ` Ivan Gyurdiev 2005-06-19 21:31 ` Casey Schaufler 2005-06-19 22:10 ` Luke Kenneth Casson Leighton 2005-06-20 0:28 ` Casey Schaufler 2005-06-19 22:13 ` Luke Kenneth Casson Leighton 2005-06-20 0:16 ` Casey Schaufler 2005-06-20 19:21 ` Luke Kenneth Casson Leighton 2005-06-20 20:41 ` Casey Schaufler 2005-06-20 21:01 ` Valdis.Kletnieks 2005-06-20 21:36 ` Casey Schaufler 2005-06-22 9:48 ` Christopher Warner 2005-06-19 20:41 ` Ivan Gyurdiev 2005-06-20 3:34 ` R. Steven Rainwater 2005-06-20 4:45 ` Valdis.Kletnieks 2005-06-20 14:45 ` R. Steven Rainwater 2005-06-20 15:14 ` Ivan Gyurdiev 2005-06-20 15:29 ` R. Steven Rainwater 2005-06-20 15:44 ` Ivan Gyurdiev 2005-06-20 16:40 ` R. Steven Rainwater 2005-06-20 16:59 ` Ivan Gyurdiev 2005-06-20 17:35 ` Karl MacMillan 2005-06-20 18:06 ` R. Steven Rainwater 2005-06-20 18:18 ` Daniel J Walsh 2005-06-24 6:22 ` Russell Coker 2005-06-20 18:06 ` Daniel J Walsh 2005-06-20 18:57 ` Luke Kenneth Casson Leighton 2005-06-20 15:56 ` Stephen Smalley 2005-06-20 19:05 ` Luke Kenneth Casson Leighton 2005-06-20 16:28 ` Stephen Smalley 2005-06-20 18:49 ` Luke Kenneth Casson Leighton 2005-06-19 22:17 ` Luke Kenneth Casson Leighton 2005-06-20 4:11 ` Ivan Gyurdiev 2005-06-20 13:12 ` Trevor Vaughan 2005-06-20 15:21 ` R. Steven Rainwater 2005-06-20 15:40 ` Ivan Gyurdiev 2005-06-20 16:20 ` Stephen Smalley 2005-06-30 22:11 ` cgiemail and senmail policy R. Steven Rainwater 2005-07-03 14:21 ` Daniel J Walsh
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.