SELinux是「Security-Enhanced Linux」的简称,是美国国家安全局「NSA=The National Security Agency」 和SCC(Secure Computing Corporation)开发的 Linux的一个扩张强制访问控制安全模块。原先是在Fluke上开发的,2000年以 GNU GPL 发布。Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
SELinux 是 2.6 版本的 Linux 内核中提供的强制访问控制(MAC)系统。对于可用的 Linux安全模块来说,SELinux 是功能最全面,而且测试最充分的,它是在 20 年的 MAC 研究基础上建立的。SELinux 在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。
大部分使用 SELinux 的人使用的都是 SELinux 就绪的发行版,例如 Fedora、Red Hat Enterprise Linux (RHEL)、Debian或 Centos。它们都是在内核中启用 SELinux 的,并且提供一个可定制的安全策略,还提供很多用户层的库和工具,它们都可以使用 SELinux 的功能。
SELinux是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
查看 SELinux 开机启动设置(CentOS 7)
systemctl is-enabled selinux-policy-migrate-local-changes@targeted.service
bool值为0:off 关闭。功能无法使用
bool值为1:on 开启。功能可以使用
getsebool -a 查看当前selinux的bool值列表
查看 ssh 相关的设置
getsebool -a | grep ssh
setsebool ssh_sysadm_login 1
ls -Z 查看文件的上下文信息,也就是SELinux信息,比传统的 ls 命令多出来了
unconfined_u:object_r:user_home_t:s0
system_u:object_r:unlabeled_t:s0
system_u 代表的是用户,object_r 表示的是角色,第三段表示的是类型,最后一段 s0 是跟MLS、MCS相关
添加端口
semanage port -a -t port_label -p tcp|udp PORT 例如:
semanage port -a -t http_port_t -p tcp 82
删除端口
semanage port -d -t port_label -p tcp|udp PORT 例如:
semanage port -d -t http_port_t -p tcp 82
semanage port -m -t port_label -p tcp|udp PORT 例如
semanage port -m -t http_port_t -p tcp 80
选择 | 描述 |
---|---|
-a,–add | 添加指定对象类型的记录 |
-d,–delete | 删除指定对象类型的记录 |
-l,–list | 列出指定对象类型的记录 |
为了确保目录中所有文件都具有正确的文件上下文,执行修改上下文命令前,先执行semanage fcontext -l,确定服务所属上下,在执行restorecon命令。示例如下:
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!