本文共 5257 字,大约阅读时间需要 17 分钟。
sysadmin默认密码
“这是一个重要且普遍的事实,即事物并不总是看起来那样……” 道格拉斯·亚当斯(Douglas Adams), 《银河系漫游指南》
安全。 硬化。 合规性。 政策。 SysAdmin启示录的四骑士。 除了日常任务(监视,备份,实现,调整,更新等)外,我们还负责保护系统的安全。 甚至那些第三方提供程序告诉我们禁用增强安全性的系统。 对于“不可能的任务 ”的 ( 似乎是一项工作。
面对这种困境,一些系统管理员决定因为他们认为他们永远不会知道生命,宇宙和其他一切大问题的答案。 而且,众所周知,答案是 。
本着《银河漫游指南》的精神, 以下是有关在系统上管理和使用的重大问题的42个答案。
user:role:type:level
( 可选 )。 autorelabel=1
→强制系统重新标记 selinux=0
→内核未加载SELinux基础结构的任何部分 enforcing=0
→以宽松模式启动 # touch /.autorelabel #reboot
如果系统标签包含大量错误,则可能需要以宽松模式引导才能使自动重新标签成功。 # getenforce
# setenforce [1|0]
# sestatus
/etc/selinux/config
/usr/sbin/httpd
→ httpd_exec_t
/etc/httpd
→ httpd_config_t
/var/log/httpd
→ httpd_log_t
/var/www/html
→ httpd_sys_content_t
/usr/lib/systemd/system/httpd.service
→ httpd_unit_file_d
/usr/sbin/httpd -DFOREGROUND
→ httpd_t
80/tcp, 443/tcp
→ httpd_t, http_port_t
在httpd_t
上下文中运行的httpd_t
可以与带有httpd_something_t
标签的对象进行交互。
-Z
来查看,创建和修改上下文: ls -Z
id -Z
ps -Z
netstat -Z
cp -Z
mkdir -Z
根据文件的父目录的上下文创建文件时会设置上下文(有一些例外)。 RPM可以将上下文设置为安装的一部分。
/srv/myweb
中的文件未正确标记,则访问可能会被拒绝。 以下是一些解决方法: # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
# semanage fcontext -a -e /srv/myweb /var/www
# restorecon -vR /srv/myweb
# chcon -t httpd_system_content_t /var/www/html/index.html
# chcon --reference /var/www/html/ /var/www/html/index.html
# restorecon -vR /var/www/html/
# semanage port -a -t http_port_t -p tcp 8585
# setsebool -P httpd_can_sendmail 1
# getsebool -a
# semanage boolean -l
# setsebool [_boolean_] [1|0]
-P
。 例如: # setsebool httpd_enable_ftp_server 1 -P
stdout
etc_t/shadow_t
# yum -y install setroubleshoot setroubleshoot-server
安装后重新启动或重新启动auditd
。 journalctl
列出与setroubleshoot
相关的所有日志: # journalctl -t setroubleshoot --since=14:20
journalctl
列出与特定SELinux标签有关的所有日志。 例如: # journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0
setroubleshoot
日志,并提出一些可能的解决方案。 例如,来自journalctl
: Jun 14 19:41:07 web1 setroubleshoot: SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. For complete message run: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e # sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e SELinux is preventing httpd from getattr access on the file /var/www/html/index.html. ***** Plugin restorecon (99.5 confidence) suggests ************************ If you want to fix the label, /var/www/html/index.html default label should be httpd_syscontent_t. Then you can restorecon. Do # /sbin/restorecon -v /var/www/html/index.html
/var/log/messages
/var/log/audit/audit.log
/var/lib/setroubleshoot/setroubleshoot_database.xml
# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today
# ausearch -m avc -c httpd
audit2allow
实用程序从拒绝操作的日志中收集信息,然后生成SELinux策略允许规则。 例如: # audit2allow -w -a
# audit2allow -a
# audit2allow -a -M mypolicy
-M
选项使用指定的名称创建类型强制文件(.te),并将规则编译为策略包(.pp): mypolicy.pp mypolicy.te
# semodule -i mypolicy.pp
# semanage permissive -a httpd_t
# semanage permissive -d httpd_t
# semodule -d permissivedomains
# yum install selinux-policy-mls
在/etc/selinux/config:
SELINUX=permissive
SELINUXTYPE=mls
确保SELinux在许可模式下运行: # setenforce 0
使用fixfiles
脚本来确保在下次重新引导时重新标记文件: # fixfiles -F onboot # reboot
# useradd -Z staff_u john
使用useradd
命令,将新用户映射到现有的SELinux用户(在本例中为staff_u
)。 # semanage login -l
# semanage login --modify --range s2:c100 john
# chcon -R -l s2:c100 /home/john
# chcat -L
/etc/selinux/_<selinuxtype>_/setrans.conf
# runcon -t initrc_t -r system_r -u user_u yourcommandhere
-t
是文件上下文 -r
是角色上下文 -u
是用户上下文 # podman run --security-opt label=disable
… # docker run --security-opt label=disable
… # podman run --privileged
… # docker run --privileged
… 有了这个,您已经知道答案了。 因此,请: 不要惊慌,并打开SELinux 。
翻译自:
sysadmin默认密码
转载地址:http://jwnzd.baihongyu.com/