一、Selinux的状态与管理
1.1 selinux启动方式
vim /etc/selinux/config
selinux=disabled:关闭selinux
selinux=enforcing:开机设定为强制状态,此状态下selinux开启
selinux=permissive:开机设定为警告状态,此状态下selinux开启
selinux的开启与关闭需要重启系统才能更改
enforcing:不符合条件一定不允许,并会收到警告消息
permissive:不符合条件的会被允许,并会收到警告信息
selinux状态查看:getenforce
selinux警告状态与强制状态之间互相转换:
setenforce 0:转换为警告状态
setenforce 1:转换为强制状态
selinux日志的位置:/var/log/audit/audit.log
二、Selinux的功能
2.1 Selinux未开启
Selinux未开启时
匿名用户可以上传文件
使用ls -Z命令查看文件时显示?
在mnt下建立文件移动到/var/ftp可以被vsftpd访问
2.2 Selinux开启
Selinux开启后
ls -Z可以显示?内容
在mnt下建立文件移动到/var/ftp不可以被vsftpd访问
selinux在警告模式下mnt移动的文件显示
2.3selinux对文件的影响
当selinux开启后,内核对于每个文件与每个开启程序进行标签加载
标签内记录程序和文件的安全上下文
selinux对程序的影响:
当selinux开启后,会对程序功能加载开关,并设定开关状态为关闭如果需要使用该功能需要用sebool启动
在selinux是enforcing状态时:
chcon -t public_content_t 临时修改认证
在认证修改后,可以看到之前在enforcing状态下无法看到的文件
touch /.autorelabel 重启selinux为enforcing强制状态
重启Selinux后之前临时修改的认证复原
2.4 永久修改安全上下文和添加端口
semanage fcontext -a -t public_content_t '/westos(/.*)?'添加public_content_t
将该认证写入内核,selinux重启后也不会改变
semanage fcontext -d -t public_content_t '/westos(/.*)?'删除public_content_t 删除
将httpd服务端口改为1111后,在Selinux的enforcing强制模式下,文件不符合条件httpd服务不允许重启,在改为警告模式下允许httpd应用重启
查找允许httpd登录的端口
将1111端口添加到http_port_t中
semanage -a -t http_port_t -p tcp 1111
1111端口被成功添加到http_port_t中
添加完毕后,在设定端口为1111时,可以在enforcing模式下重启服务
2.5 SEBOOL与SEPORT
SEBOOL:
getsebool -a :现实服务的bool值
setsebool -P ftpd_anon_write on:开启更改
SEPORT:
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 1111
setrouble
/var/log/audit/audit.log:Selinux警告信息
/var/log/messages:Selinux问题解决方案
setroubleshoot-server:该软件的功能是将采集到的警告信息分析并得到解决警告的方法存放在message中