Articles of selinux

为什么在启用SELinux httpd_read_user_content并将文件设置为httpd_user_content_t后,Fedora 20仍然拒绝访问主目录?

在我的Fedora 20上,我已经了解到,为了允许像Apache这样的进程通过进程对文件进行写入访问,进程所有者(在我的情况下是apache )必须具有写入文件的权限。 而且,由于启用了SELinux,文件必须具有httpd_system_rw_content_t上下文。 它也看起来像一个SELinux政策阻止httpd访问/home下的任何文件。 几乎每个人都同意,要解决这个问题,你想访问的文件必须有安全上下文httpd_user_content_t或httpd_user_rw_content_t 。 我一直这样做,但Apache仍然说它没有访问目录的权限。 当这些文件没有user_content上下文,我确实得到了SELinux的警告。 当设置上下文时,我不会收到警告,但是Apache仍然无法访问这些文件。 /home/me/game下的所有东西都具有以下用户权限和安全上下文: $ sudo chcon -Rv –type=httpd_user_rw_content_t game $ sudo setsebool -P httpd_read_user_content 1 $ sudo chown -R :apache game $ ll -Zd game drwxrwxr-x. me apache unconfined_u:object_r:httpd_user_rw_content_t:s0 game 然而Apache告诉我: 被禁止 您无权访问此服务器上的游戏。 可能有人知道我还能检查什么?

SELinux模块用于特定文件而不是整个上下文

我创build了一个适用于特定上下文的SELinux模块。 我想知道的是,是否有可能限制这个模块仅适用于具有该上下文的特定文件? 例如: 模块处理的上下文是“system_u:object_r:my_content_t” 有这个上下文的文件是: FILE1.TXT FILE2.TXT file3.txt 我只希望模块使用“file2.txt”,即使所有3都具有相同的上下文。 这种事情是可能的,而不诉诸于改变文件的上下文到特定的东西,并改变专门为它的模块(如my_content_file2_t)? 也许.te文件中的一个参数只适用于该文件,或者只为该文件安装semodule(这可能是最好的)。 谢谢!

在su之后审计auid变化

我尝试使用selinux和audit.log来实现我的RHEL系统的个人责任。 我按照这里给出的指示: 在生产服务器上loggingpipe理员运行的所有命令 如果我理解正确,pam_loginuid.so应该保留用于login的UID并将其设置为audit.log文件中的AUID。 不幸的是, 苏之后不起作用。 当我login到系统并调用cat / proc / self / loginuid时,它显示我的正确的UID。 如果我调用sudo su –并再次调用cat / proc / self / loginuid ,它将显示0.同样,在sudo su –之后调用的命令,在audit.log中使用ID 0作为AUID。 我在这里做错了什么? 这是我的pam.d / sshd文件: auth include system-auth account required pam_nologin.so account include system-auth password include system-auth session optional pam_keyinit.so revoke session required pam_loginuid.so session include system-auth 我在/etc/grub.conf中启用了audit = 1,并按照上面的post所述编辑了/etc/audit/audit.rules。

可以通过SELinux阻止特定用户访问/ tmp?

我有点学习SELinux的边缘,我想知道是否有可能阻止特定用户访问/ tmp。 显然,所有的权限都是愚蠢的,所以我希望SELinux可以比禁止所有的用户更精确一些。 附加信息 有一个进程有自己的内部临时空间,但在“其他”情况下会尝试写入/ tmp。 我宁愿这个过程爆炸死亡,而不是实际转储到/ tmp,因为它导致所有其他问题的方式。 – 是啊,清澈的泥土,对吧? 为了澄清,写入的数据不是保密的,而且在服务器上也没有地方。 如果可能的话,我只是将其转储到/ dev / null,但似乎不太合理。 参考 http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/97b64f73103b/src/os/linux/vm/os_linux.cpp(about line 1624)(source inspiration https://stackoverflow.com/questions / 1924136 / environment-variable-to-control-java-io-tmpdir )

Centos:如果selinux处于活动状态,则rsyslog会阻止sshd以及本地login

我在一个centos 6.5(现在6.6)的机器上有一个非常好奇的问题。 在6月11日和10月21日之间的更新之后,麻烦开始了(包: http : //pastebin.com/gXvaycLL )。 十月份重新启动后,无法使用ssh在服务器上login。 客户端总是停止以下消息: ssh_exchange_identification:读取:通过对等方重置连接 我试图直接在服务器上login。 首先,我尝试使用控制台login。 input密码后,服务器通过说“密码不正确”拒绝。 在graphics模式下也是一样的。 但密码是正确的。 现在我find了一个解决办法:通过在bootmanager中追加selinux = 0来closuresselinux。 现在我能够login到服务器上的控制台。 此外,我无法login使用SSH(也使用本地主机)。 在此之后,我编辑/ etc / selinux / config并将SELINUX值从强制设置为允许以后禁用。 重新启动后,我无法login,即使我设置禁用。 login的唯一方法是设置selinux = 0。 现在我find了这个男的:rsyslog。 如果我禁用启动日志,一切都很好接受日志logging。 好奇的是:如果rsyslogd启动,所有其他服务,如Apache和MySQL工作正常。 这里是使用debug3的sshd日志的下半部分: […] debug1: Bind to port 22 on 0.0.0.0. Server listening on 0.0.0.0 port 22. debug2: fd 4 setting O_NONBLOCK debug1: Bind […]

试图追查为什么httpd会试图连接到一个tor端口

我看到偶尔在我的日志中logging了selinux信息,表明httpd进程试图连接到一个tor端口: avc: denied { name_connect } for pid = 25650 comm =“ httpd ”dest = 9050 scontext = system_u:system_r:httpd_t:s0 tcontext = system_u:object_r: tor_port_t :s0 tclass = avc msg = audit(1423247604.799:1966) TCP_SOCKET 此服务器不直接连接到Internet。 所有的HTTP请求都通过HAProxy连接到互联网的服务器进行代理,以便来回传递请求。 服务器上的网站是几个不同的虚拟主机的WordPress网站。 没有一个网站非常繁忙。 我不想打开sebool来允许httpd连接到任何networking,这看起来不是一个好的理由。 我关心的是为什么httpd进程试图做到这一点,而服务器可能会受到某种程度的损害。 有关如何追溯导致这些networking连接尝试的来源的任何build议?

如何closures使用XenServer Hypervisorconfiguration的Cloudstack

我有三个XenServer(6.2)configuration在一个池中。 我也有一个Cloudstack(CentOS 6.5)pipe理界面来控制它们。 一切都在运转,但我无法弄清楚如何正确地为他们供电。 没有正确方法的文档。 我最后一次closures每个pipe理程序,然后closures云pipe理,他们不会重新启动。 我无法解决问题,并且必须恢复预先运行云端堆栈初始向导的映像。 这只是一个testing环境。 我知道私有云通常不会closures,但是必须有适当的方法才能这样做。 NFS存储位于Cloudstackpipe理界面上。 没有花哨的虚拟交换或类似的东西。 你可以提供什么想法或方向? 另外,如果不将SElinux更改为宽容(或closures),我无法远程访问我的VM控制台。 每次在主机上创build虚拟机时,我都必须更改此设置。 有没有一个configuration文件我修改,以防止这种情况。 或者允许连接到控制台? 更新:我们有一个停电,它需要另一次恢复。 我们的控制台代理和存储虚拟机无法启动。 他们被困在起始状态。 我们的虚拟路由器也不见了。

SELinux – 首先尝试按types限制文件 – 失败

我有一个Centos 6 Linux机器。 我读了关于SELinux的教程,并想尝试一下。 这是我遵循的步骤, 在/etc/selinux/config设置SELINUX=enforcing 用setenforce 1打开SELINUX setenforce 1 service httpd restart 更改types的PHP脚本文件。 从httpd_sys_content_t到其他的东西,如:init_t(也许这是不适合的types来testing?) chcon -t init_t /var/www/html/index.php 我希望在用浏览器浏览这个文件时得到一个错误,但是我仍然能够看到内容。

Selinux:Shorewall将不会响应fail2ban

我正在使用shorewall和我的Fedora 21服务器和云使用fail2ban。 所有充斥着以下错误信息: SELinux is preventing shorewall from write access on the file /tmp/fai2ban*.[stderr|stdout] (deleted). For complete SELinux messages. run sealert -l … 当然,fail2ban显示IP被禁止,但shorewall并不实际禁止它。 在指定文件上运行sealert -l将不会产生任何内容,因为该文件被删除。 当我试图使相关的政策有效时也是如此: [root@fedora server]# semodule -i shorewall.pp libsepol.print_missing_requirements: shorewall's global requirements were not met: type/attribute shorewall_t (No such file or directory). libsemanage.semanage_link_sandbox: Link packages failed (No such file or directory). […]

semodule -i需要100%的CPU,并没有结束

我正在设置selinux并运行 grep ${1} /var/log/audit/audit.log | audit2allow -r -M local_${1} 在编译脚本(oneliner)内。 我想运行它像“compile_selinux collectd_t”,所以它抓住了我所有的相关问题。 现在我可以使用audit2allow -a返回的内容来查看.te文件。 接下来是通过运行安装模块 semodule -i local_collectd_t.pp 但是这个命令不会返回并占用100%的cpu。 我已经等了3.5个小时了。 我不知道什么是错的,希望你能帮助我。 collectd_t示例: module local_collectd_t 1.0; require { type var_log_t; type collectd_t; type openvpn_var_log_t; class file { read open }; } #============= collectd_t ============== allow collectd_t openvpn_var_log_t:file { read open }; allow collectd_t var_log_t:file open; 感谢帮助 […]