我正在使用AWS上的Linux -64 AMI。 我正试图让我的邮件服务器在框中运行。 试图打开SELinux我做到了 编辑/boot/grub/grub.conf并将selinux=1添加到内核语句的末尾 然后touch /.autorelabel 然后重新启动。 重新启动后,我的网页浏览到我的网站,我得到一个服务器访问错误,说我不能访问/ 当然,我不想成为根。 这里出了什么问题? 我怎样才能让SELinux启用,所以我可以运行一个邮件服务器?
我做testing驱动的开发,所有的API都用一批testing来testing。 最初,我在selinux中以“宽容”模式运行testing。 所以,我决定启用selinux来“执行”模式。 很明显,我开始在audit.log中获得AVC否认,一半的testing失败了。 所以,我使用audit2allow为audit.log中的所有失败的东西(很多拒绝)创build一个模块,并且使用semodule -i将新模块合并到内核中。 然而,有一些testing在许可模式下仍然失败,但是它不会写出audit.log或messages文件有什么问题,所以我无法解决这个问题。 当我将服务器置于“宽容”模式时,“强制执行”模式下失败的testing现在完美无缺。 我如何去解决这个问题?
我刚刚创build了一个自定义策略,并做了semodule -i test.te. 几天后我重新开始了所有的testing,我注意到audit.log中还有另外的AVC拒绝。 我想添加新的东西到我现有的test.te文件,这样我就不会有多个策略。 我只想有一个政策,只是不断增加,这是可能的,如何? 提前致谢。
我想在Zabbix中创build一个触发器,以便在CentOS 6服务器的/var/log/audit/audit.log文件中随时出现type=AVC错误。 我已经尝试创build一个基本的日志刮。 例如: log[/var/log/audit/audit.log,type=AVC,"UTF-8",100] 但是,它不起作用。 我相信这是由于/var/log/audit/audit.log和它的父文件夹使用以下权限: drwxr-x—. 2 root root 4096 Apr 20 04:29 . drwxr-xr-x. 13 root root 4096 Apr 14 12:07 .. -rw——-. 1 root root 5948185 Apr 20 15:27 audit.log -r——–. 1 root root 6291566 Apr 20 04:29 audit.log.1 -r——–. 1 root root 6291704 Apr 19 16:56 audit.log.2 -r——–. 1 root […]
我需要匹配运行/加载的selinux规则/ transitions / labels / etc到定义它们的selinux策略模块(semodules -l)。 我需要这个,因为我想在上下文中学习一些selinux策略模块,我需要知道应该检查哪些模块。 有没有更简单的方法来做到这一点比下载所有selinux相关的“src”包,筛选出未使用的模块,并grep结果文件的信息?
有没有办法分配自定义SELinux上下文到应用程序,尽pipe分配给它的二进制文件的上下文?
CentOS 6.4(x64)/ MySQL 5.6.10 从源文件安装MySQL,并在其原始位置(/ var / lib / mysql)下启动它。 我把所有的东西都移到了不同的卷(/ u0 / mysql),然后经过几次SELinux的免除( cat /var/log/audit/audit.log | audit2allow -M mysql-* semodule -i mysql-*.pp cat /var/log/audit/audit.log | audit2allow -M mysql-*接下来是semodule -i mysql-*.pp )。 每一轮之后,我尝试重新启动服务,看到这个错误: Starting MySQL..The server quit without updating PID file (/u0/mysql/server.pid). [FAILED] 经过3-4轮增加豁免后,我注意到文件没有改变。 IE的所有可以添加这种方式已被添加。 出于好奇,我跑了audit2why -a并得到了一些: type=AVC msg=audit(1387207317.009:666): avc: <some permission> for pid=20640 comm="mysqld" […]
我试图build立一个自定义的SELinux策略,但是当应用程序二进制文件在/bin , /usr/bin等标准二进制文件目录之外时,我却遇到了域转换问题。应用程序二进制文件位于这些目录之外。 出于testing目的,我有一个程序,只是打印当前的SELinux域。 我有一个域my_domain_t ,和一个typesmy_domain_exec_t 。 当unconfined_t域中的进程使用my_domain_exec_t上下文执行文件时,将设置到my_domain_exec_t 。 如果我将testing二进制文件复制到/data目录,设置它的上下文,并执行它,域不会改变。 $ cp getcontext /data/getcontext $ chcon -t my_domain_exec_t /data/getcontext $ /data/getcontext unconfined_t:unconfined_r:unconfined_t:s0-s0:c0.c1023 如果我将testing二进制文件复制到/usr/bin目录,设置它的上下文,然后执行它,则域转换正确发生。 $ sudo cp getcontext /usr/bin/getcontext $ sudo chcon -t my_domain_exec_t /usr/bin/getcontext $ /usr/bin/getcontext unconfined_t:unconfined_r:my_domain_t:s0-s0:c0.c1023 通过testing,我相信我已经消除了与运行文件的用户,文件的所有权或父目录的安全上下文有关的任何事情。 还有什么可能导致这种差异? 编辑: /data不是NFS挂载的。 /data的上下文是system_u:object_r:default_t:s0 。 在另一个我正在testing的系统上,我也看到/data标签为system_u:object_r:etc_runtime_t:s0 。 policy_module(my_domain, 1.0.0) require { type unconfined_t; } type my_domain_t; type […]
所以在红帽考试中,他们希望你使用SELinux。 例如,如果您安装vsftp,则执行setsebool -P ftp_home_dir=1或setsebool -P ftp_home_dir on以允许服务器上的用户访问主目录。 然后重新启动我注意到ftp_home_dir被设置为off 。 我是我做错了什么? 这是我的步骤: getsebool -a | grep ftp getsebool -a | grep ftp → ftp_home_dir –> off setsebool -P ftp_home_dir on getsebool -a | grep ftp getsebool -a | grep ftp → ftp_home_dir –> on 重启 getsebool -a | grep ftp getsebool -a | grep ftp → […]
我尝试用nging / munin隔离SELinux问题。 我在“/var/log/nging/error.log”中看到了这个错误信息: [crit] 8802#0:* 55连接()到unix:/var/run/munin/fcgi-html.sock失败(13:权限被拒绝)连接上游时,客户端:1.2.3.5,server:,request: “GET / munin / HTTP / 1.1”,上游:“fastcgi:// unix:/var/run/munin/fcgi-html.sock:”,主机:“1.2.3.4” 然后我试着audit2allow来修复selinux权限: # cat /var/log/audit/audit.log | audit2allow -M nginx-munin-socket # semodule -i nginx-munin-socket audit.log消息消失了,但nginx套接字错误总是在那里。 当我使用“setenforce 0”,那么我没有nginx套接字错误消息。 所以我相信我的问题绝对是selinux。 但是我现在不知道如何隔离这个问题!? nginx的,穆宁,socket.te module nginx-munin-socket 1.0; require { type httpd_t; type init_t; type munin_var_run_t; class sock_file write; class unix_stream_socket connectto; } #============= httpd_t ============== allow […]