Articles of selinux

gitolite3通过http selinux权限

我试图在Centos6.4上安装gitolite3。 它的工作原理,我可以ssh和,经过一些麻烦,我也可以通过http和httpd读取,如克隆。 我正在重新启用selinux进入宽容模式,为了更好的testing,我早先禁用了,以下错误出现在/etc/log/audit/audit.log中。 我承认,我是selinux的新手,尽pipe我非常热衷,并开始认真学习selinux的工作方式,但这个解释太多了。 有没有人可以从这些消息中扣除哪些命令我必须运行,我必须以某种方式允许在线安全的最佳做法的权限? ..如果您知道并发布了一些令人惊叹的在线selinux指南,并附上selinux的安全图表,那么我的答案也会很有用。 type=AVC msg=audit(1375647504.484:680): avc: denied { search } for pid=12882 comm="gitolite-shell" name="gitolite3" dev=sdb2 ino=264170 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=system_u:object_r:gitosis_var_lib_t:s0 tclass=dir type=AVC msg=audit(1375647504.484:680): avc: denied { getattr } for pid=12882 comm="gitolite-shell" path="/var/lib/gitolite3/.gitolite.rc" dev=sdb2 ino=262551 scontext=system_u:system_r:httpd_sys_script_t:s0 tcontext=unconfined_u:object_r:gitosis_var_lib_t:s0 tclass=file type=SYSCALL msg=audit(1375647504.484:680): arch=c000003e syscall=4 success=yes exit=0 a0=6d4d70 a1=6ab130 a2=6ab130 a3=18 items=0 ppid=4653 pid=12882 auid=4294967295 uid=650 gid=650 euid=650 […]

在Red Hat Linux服务器上为用户创build一个public_html

我只是想在我的用户名下的Red Hat Linux服务器上创build一个public_html文件夹(这一切都有点头疼)。 我做了该文件夹,并将权限设置为755。 我不知道如何处理Apache(并承认findhttpd.conf文件是一个噩梦,感谢非传统的目录布局),但现在我已经find了,我不知道该怎么做。 我见过这个问题。 为linux机器的每个用户设置单独访问的public_html ,但我不明白答案。 我怎样才能'使用mod_userdir'(我对这一切都很陌生)。 我看过这个; http://httpd.apache.org/docs/2.0/mod/mod_userdir.html 我应该为“httpd..conf文件”添加一些内容吗? 我尝试追加'UserDir启用用户名'的顶部,并重新启动Apache,但我仍然无法find一个页面; domain.com/~username/ 问题是什么? 我是不正确地使用mod_userdir? (我甚至不知道如何使用它) 谢谢!

是否有可能在重新启动后坚持selinux端口语句?

目前我们每次启动时都需要运行这样的东西: /usr/sbin/semanage port -a -t memcache_port_t -p tcp ${special-snowflake-port} 如果我们可以在重新启动时坚持这一点,那将是非常好的。 答案是要编译这个有价值的东西,但是最大的问题是如何做到这一点? 没有什么我在.fc文件中看到的文件表明这可以在那里编码,而.te文件的语法是难以阅读的。 然而,很明显,按照编制的政策确实设置了一些东西,我只是找不到。 我错过了什么?

SElinux沙箱无法从systemd服务启动

我有一个服务器运行用户提交的代码,进行评估。 我编写了一个启动python应用程序的systemd服务,然后应用程序使用SElinux沙箱运行提交的代码。 沙箱无法启动,出现以下错误 /usr/bin/sandbox: User account must be setup with an MCS Range 但是,当我以普通用户的身份从命令行启动服务器而不是启动systemd服务时,它的运行没有问题。 这是semanage login -l的输出semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * 我对SELinux的知识是非常有限的,既然它在一般用户启动时工作,我猜这与system_u有关系? 运行Fedora 20。 python应用程序实际上是一个芹菜工作者。

SELinux阻止php-fpm和nginx一起工作?

我在SELINUX上遇到了一些问题。 当试图访问我的网站时,我得到了来自nginx的403禁止,服务器popup一个错误,并说使用grep NGINX /var/log/audit/audit.log | audit2allow -M mypol我做了,但是, 当试图加载页面,现在说拒绝访问,并要求使用命令grep PHP-FPM /var/log/audit/audit.log | audit2allow -M mypol,当我这样做,它然后回到403禁止访问,并要求我再次使用第一个命令。 就好像grep NGINX覆盖了php-fpm和反之。 如何解决这个问题,而不禁用selinux? 我有权访问服务器上的gnome桌面,SELinux安全警报告诉我使用这些命令来解决问题,第一个命令确实解决了这个问题,但是却引发了另一个问题,当使用第二个命令时,它会覆盖第一个命令并返回到一个方。 我知道,如果我禁用selinux它将工作,但它是不安全的,把服务器的风险。 谢谢。

尽pipe启用,SELinux不会强制执行apache写入限制

问题简介:当创build新/自定义文档根目录时,SELinux不会保护标记为httpd_sys_content_t的文件和目录不被写入,删除或更改。 我已经在不同的服务器版本上重复了两次这种行为。 环境干净,新鲜安装的CentOS 7.完全通过百胜补丁。 epl回购安装。 Apache,PHP,MySQL(mariadb),phpmyadmin安装。 SELinux在CentOS 7上默认启用。getenforce和sestatus都确认SELinux正在运行。 我在apache中创build了一个简单的虚拟主机,其文档根目录设置为:/ web / sites / test1 起初,一切都按预期工作。 SELinux将不允许Apache显示该网站,直到我做了以下事情: semanage fcontext –add –type httpd_sys_content_t "/web(/.*)?" semanage fcontext –add –type httpd_sys_content_t "/web/sites(/.*)?" restorecon -Rv /web 正如所料,这样做后,虚拟主机工作。 然而,奇怪的行为是,在该虚拟主机中安装WordPress,即使httpd_sys_content_t上下文不应允许(根据我的理解),我可以通过WordPress上传图像等。 我已经确认,wordpress目录中的所有文件都被正确标记为:httpd_sys_content_t 然而wordpress仍然可以写入目录(只要老式文件权限允许)。 我提出了一个解决scheme:在执行完整的文件系统重新标记后,恢复典型/预期的行为: touch /.autorelabel reboot 重新启动后,我必须使用httpd_sys_rw_content_t上下文。 但是我想更清楚地理解为什么这样一个步骤是必要的,因为我已经读过一个完整的重新标记应该很less(如果有的话)是必要的。 有没有更容易,更不激烈的手段让SELinux的行为如预期? 为了更加简洁:我是否应该在这种情况下做一个“touch /.autorelabel”? 有没有更好的办法? 如果它没有做任何事情就可以工作(这也是CentOS 7开箱即用的错误)?

在SELinux下运行logstash

我想以root身份运行logstash以允许它读取所有日志(授予它访问每个日志非常烦人)。 但是,我不希望它在我的服务器上运行,我想在SELinux下进行约束。 我看到的选项是: 为logstash创build一个完整的新标签。 这也意味着为logstashconfiguration文件,logstash可执行文件和库等创build标签。 使用为另一个进程devise的标签运行logstash。 我把clogd_t放在clogd_t因为它已经log了它的名字,而且我无法使用sudo sesearch –allow -s clogd_t | grep clogd_t | less -p write查找任何可疑的写入权限sudo sesearch –allow -s clogd_t | grep clogd_t | less -p write sudo sesearch –allow -s clogd_t | grep clogd_t | less -p write 放弃和运行它作为一个不受约束的根进程 要么是正常的事情呢? 万一重要,我使用的是CentOS 6.7

ValueError:typeshttp_sys_content_t无效,必须是文件或设备types

我需要在一个非默认的httpd目录下设置selinux权限: /www/virtualhosts/site01 ,等等。 所以我问: [mybox]# semanage fcontext -a -t http_sys_content_t "/www(/.*)?" 并得到: ValueError: Type http_sys_content_t is invalid, must be a file or device type configurationselinux与我的非默认httpd目录一起工作需要做什么?

允许httpd在/ usr / bin /

在SELinux运行强制的情况下,将系统从CentOS6迁移到RHEL7。 一个php脚本调用/usr/bin/processdata.sh来在后台生成一些数据。 这与旧的系统工作正常,但PHP调用与SELinux设置为启用扼stream圈。 这是sh许可 -rwxrwx–x. root root unconfined_u:object_r:bin_t:s0 /usr/bin/process_data.sh 这个审计错误是在调用php页面的同时看到的: ausearch -l -i | grep httpd type = SYSCALL msg = audit(02/27/2016 14:07:52.662:23480):arch = x86_64 syscall = socket success = no exit = -97(协议不支持地址族)a0 = inet6 a1 = SOCK_DGRAM a2 = ip a3 = 0x672e76656473626e items = 0 ppid = 15686 pid = 3852 auid […]

Apache curl通过HTTP代理

我想让PHP执行一个curl连接到另一台服务器。 要连接到服务器,我们需要通过代理。 在bash中,我们已经设置了envvariableshttp_proxy,并且在使用命令行中的php脚本时这个工作正常。 但是,当试图从apache执行curl或wget时,失败并没有错误。 服务器configuration了基于Centos默认的SELinux。 这一直没有改变,因为我不确定SELinux的configuration。 有没有其他人有类似的问题?