Linux 系统安全之 SElinux


河东狮吼
河东狮吼 2022-09-27 09:51:10 48724
分类专栏: 资讯

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权限更好的访问控制


  • CentOS 系统中 SElinux 的主配置文件为 /etc/selinux/config
  •  
  • 查看 SElinux 运行状态 :getenforce
  • sestatus -v
  • selinux有 disabled、permissive、enforcing 三种控制切换
  • disabled :不启用控制系统。
    permissive:开启控制系统,但是处于警告模式。即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来。
    enforcing:开启控制系统,处于强制状态。一旦违反了策略,就无法继续操作下去。

  •  
  • 修改运行状态,在开启的两种状态(permissive、Enforcing)之间临时切换,可以使用命令:
  • setenforce 0      临时切换到permissive
    setenforce 1      临时切换到Enforcing
  • PS:要永久生效需要修改配置文件,必须重启系统才能生效如果当前系统的SElinux状态为Disabled时,使用setenforce  0或者1切换时,要想生效,必须reboot重启系统。
  • 查看 SELinux 开机启动设置(CentOS 7)

  • systemctl is-enabled selinux-policy-migrate-local-changes@targeted.service

  • static  : 开机不启动,但可被另一个启用的服务激活

  • sestatus:  查看selinux完整状态

  •  
  • SELinux的bool值

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相关

SElinux 管理工具 semanage 属于 policycoreutils-python 包

  • yum install -y policycoreutils-python
  • semanage port -l | grep ssh
  • 添加端口

    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

  • semanage fcontext命令可显示和修改,restorecon用来设置默认文件上下文的规则。使用扩展正则表达式来指定路径和文件名。fcontext规则中最常用的扩展正则表达式是(/.*)? 表示“可选择匹配后跟任何数量字符/”。它将会匹配在表达式前面列出的目录并递归地匹配该目录中的所有内容。
    semanage fcontext命令

    选择

    描述

    -a,–add

    添加指定对象类型的记录

    -d,–delete

    删除指定对象类型的记录

    -l,–list

    列出指定对象类型的记录

为了确保目录中所有文件都具有正确的文件上下文,执行修改上下文命令前,先执行semanage fcontext -l,确定服务所属上下,在执行restorecon命令。示例如下:

 

 

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10580
赞同 0
评论 0 条
河东狮吼L0
粉丝 0 发表 13 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2962
【软件正版化】软件正版化工作要点  2881
统信UOS试玩黑神话:悟空  2848
信刻光盘安全隔离与信息交换系统  2740
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1274
grub引导程序无法找到指定设备和分区  1239
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  164
点击报名 | 京东2025校招进校行程预告  164
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!