SELinux的初探

什么是SELinux

SELinux是Security-Enhanced Linux的缩写,字面意思就是安全强化的Linux。

SELinux的基本概念

主体(Subject):可以完全等同于进程

对象(Object):被主体访问的资源。可以是文件、目录、端口、设备等

政策和规划(Policy&Rule):系统中常有大量的文件和进程,为了节省时间和开销,通常只是选择性的对某些进程进行管制。而哪些进程需要管制、要怎么管制是由政策决定的

安全上下文(Security Context):这个是SELinux的核心。

          安全上下文主要用冒号分为三段:Identify(身份识别):role(角色):type(类型)

  •           身份标识(Identify) :主要的身份标识有下面常见的三种:1.root    2.system_u    3.user_u
  •           角色(Role):一般的角色有:1.object_r  2.system_r (_r是role的意思)
  •           类型(Type):基本上,一个主体进程能不能读取到到这个文件资源与类型字段有关。而类型字段在文件与进程的定义不太相同,分别是type和domain  ,domain需要与type搭配,则该程序才能够顺利读取文件资源

SELinux的启动、关闭与查看

SELinux的三种模式,分别是:

1. enforcing:强制模式。代表SELinux正在运行中,且已经正确开始限制domain/type了。

2. permissive:宽容模式。代表SELinux正在运行中,不过仅有警告信息并不会实际限制domain/type的访问。这种模式可以作为SELinux的调试之用

3. disabled:关闭 SELinux,SELinux并没有实际运行

若要知道目前SELinux的工作模式,可通过getenforce命令

【1】更改selinux的开机状态,重启生效(reboot)

更改配置文件:vim /etc/sysconfig/selinux    

【2】更改selinux模式(setenforce 0|1)

0表示permissive警告但并不阻止可以行为

1表示enforcing强制组织可疑行为

SELinux的安全上下文

【1】暂时性更改文件的安全上下文

ls -Z ###查看安全上下文

chcon -t public_content_t file  ##修改安全上下文

一次性定制安全上下文,执行restorecon刷新后还原

查看/var/ftp的安全上下文

因为安全上下文不同,所以lftp链接时不显示文件

更改westos的安全上下文

再次链接显示文件

【2】永久性修改安全上下文

semanage fcontext -a -t public_content_t  ‘/westos(/.*)?‘    ##(/.*)?表示westos后的所有文件和目录

fcontext 规则中最常用的扩展正则表达式是 (/.*)?, 表示随意匹配 / 后跟任何数量的字符

restorecon -FvvR /westos/ ##使更改的内容生效

新建目录、文件,查看其默认上下文

修改安全上下文

在系统中搜索/westos的安全上下文

管理SELinux布尔值

SELinux 布尔值是更改 SELinux 策略行为的开关, 是可以启用或禁用的规则

安全管理员可以使 SELinux 布尔值来调整策略 , 以有选择地进行调整

getsebool 用于显示布尔值 , setsebool 用于修改布尔值

setsebool -P 修改 SELinux 策略 , 以永久保留修改。

实验环境:selinux状态为警告/强制,在强制状态下,客户端切换到student用户,是不可以上传文件的

 设置布尔值(1开启,0关闭)

测试:可登录、上传

 监控 SELinux 冲突

  • 必须安装 setroubleshoot-server 软件包 , 才能将 SELinux消息发送至 /var/log/messages
  • setroubleshoot-server 侦听 /var/log/audit/audit.log 中的审核信息并将简短摘要发送至 /var/log/messages
  • 摘要包括 SELinux 冲突的唯一标识符 ( UUIDs ), 可用于收集更多信息
  • Sealert -l UUID 用于生成特定事件的报告。Sealert-a/var/log/audit/audit.log 用于在该文件中生成所有事件的报告
  • 当setroubleshoot-server 软件包存在时,客户端如果访问失败,cat /var/log/messages日志中会有解决方案
  • 如果卸载setroubleshoot-server 软件包  日志中没有解决方案。
/var/log/audit/audit.logselinux日志存放位置
/var/log/messagesselinux解决方案

安装软件:

setroubleshoot-server.x86_64 : SELinux troubleshoot server

清空日志:

> /var/log/audit/audit.log

>/var/log/messages

实验:
touch /mnt/westos   
mv /mnt/westos  /var/ftp/

ftp://172.25.254.205  ##看不到westos

 cat /var/log/audit/audit.log  ##查看问题出在哪里

cat /var/log/messages            ##查看解决方案

【1】方案一:修改安全上下文

【2】方案二:修改布尔值

restorecon -v /var/ftp/*     

ftp://172.25.254.205  ##可以看到westos

SELINUX影响服务资源

yum install httpd ##安装Apache

vim /etc/httpd/conf/httpd.conf

修改前

修改后

systemctl restart httpd  ##服务不能重启

setenforce  0  

systemctl restart httpd ##服务开启证明是selinux的问题

semanage port -l |grep http  ##查看http的端口


semanage port -a -t  http_port_t -p tcp 6666 ##添加6666端口
semanage port -l |grep http ##6666已经添加



systemctl restart httpd ##重启成功

补充:通过以下方式查看服务端口
cat /etc/services |grep ftp   ##查看服务的端口

可以看到ftp服务的端口是21

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值