SELinux
SELinux概念
安全加强的Linux,早期的Linux系统安全由系统管理员控制.SELinux就是一些安全规则的集合,类似于人类生活中的法律.
DAC: 自由访问控制(以前的linux版本)
DAC环境下的进程是无束缚的
MAC: 强制访问控制(即使是root用户也会受到MAC的控制)
MAC环境下策略的规则决定控制的严格程度
MAC环境下进程可以被限制的
策略用来定义被限制的进程能够使用哪些资源(文件和端口)
默认情况下,没有被明确允许的行为会被拒绝
SELinux工作类型
SELinux有四种工作类型:
strict: centos5,每个进程都受到selinux的控制
targeted: 用来保护常见的网络服务,仅有限进程受到selinux控制,只监控容易 被入侵的进程,centos4只保护13个服务,centos5保护88个服务
minimum:centos7,修改的targeted,只对选择的网络服务
mls:提供MLS(多级安全)机制的安全性
targeted为默认类型,minimum和mls稳定性不足,未加以应用,strict已不再使用
SELinux安全上下文
所有的文件和端口资源和进程都具有安全标签: 安全上下文(security context)
规定每个进程只能访问哪些文件和端口
chcon -t var_log_t /var/log/messages
restorecon /var/log/messages
semanage fcontext -l | grep /var/log/messages
semanage fcontext -a -t httpd_sys_content_t "/data/html(/.*)?"
semanage命令需要安装软件包 policycoreutils-python
启用和禁用SELinux
查看当前系统是否启用了SELinux 查看文件或者进程信息加 -Z 选项,如果LABEL信息不为空则表示已经启动了SELinux,如果为空则表示禁用了SELinux.
1 [root@centos7 ~]# ll -Z guess.sh
2 -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 guess.sh
3 [root@centos7 ~]# ps auxZ
4 LABEL USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
5 system_u:system_r:init_t:s0 root 1 0.0 0.3 193704 6844 ? Ss 15:55 0:04 /usr/lib/systemd/
6 system_u:system_r:kernel_t:s0 root 2 0.0 0.0 0 0 ? S 15:55 0:00 [kthreadd]
7 system_u:system_r:kernel_t:s0 root 3 0.0 0.0 0 0 ? S 15:55 0:00 [ksoftirqd/0]
8 system_u:system_r:kernel_t:s0 root 4 0.1 0.0 0 0 ? S 15:55 0:18 [kworker/0:0]
9 system_u:system_r:kernel_t:s0 root 5 0.0 0.0 0 0 ? S< 15:55 0:00 [kworker/0:0H]
10 system_u:system_r:kernel_t:s0 root 7 0.0 0.0 0 0 ? S 15:55 0:00 [migration/0]
View Code
临时切换成enforcing setenforce 1 启用所有规则
临时切换成permissive setenforce 0 提示告警信息,但不会真正阻止程序执行
永久启用(enforcing)或者禁用(disabled) vim /etc/selinux/config
SELinux中(enforcing和permissive)两者和disabled无法直接相互切换.如果需要进行切换,必须修改配置文件,重启机器才能生效.
管理端口标签
一个服务不能够随意使用任何一个端口,它的端口使用范围收到SELinux的策略限制.
查看端口标签 semanage port –l
添加端口
semanage port -a -t port_label -p tcp|udp PORT
semanage port -a -t http_port_t -p tcp 9527
删除端口
semanage port -d -t port_label -p tcp|udp PORT
semanage port -d -t http_port_t -p tcp 9527
修改现有端口为新标签
semanage port -m -t port_label -p tcp|udp PORT
semanage port -m -t http_port_t -p tcp 9527
管理SELinux布尔值的开关
布尔型规则: getsebool setsebool
查看bool命令: getsebool [-a] [boolean] semanage boolean –l semanage boolean -l –C 查看修改过的布尔值
设置bool值命令: setsebool [-P] boolean value(on,off) setsebool [-P] Boolean=value(0,1)
管理日志
SELinux会把日志信息写入到/var/log/messages中,通过查看分析日志来判定某个服务不能正常运行是不是由于SELinux设置的策略不对导致的.
SElinux会把告警信息全部写入日志 grep setroubleshoot /var/log/messages
sealert -l UUID 列出具体的SELinux的详细问题信息包括解决方法
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibgeii
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22