selinux的管理

1.基本SELINUX安全性概念

SELINUX ( 安全增强型 Linux ) 是可保护你系统安全性的额外机制。

在某种程度上 , 它可以被看作是与标准权限系统并行的权限系统。在常规模式中 , 以用户身份运行进程 , 并且系统上的文件和其他资源都设置了权限 ( 控制哪些用户对哪些文件具有哪些访问权SELINUX 的另一个不同之处在于 , 若要访问文件 ,你必须具有普通访问权限和 SELINUX 访问权限。因此 , 即使以超级用户身份root 运行进程 , 根据进程以及文件或资源的 SELinux 安全性上下文可能拒绝访问文件或资源限 ) 标签。

2.selinux 的开机状态

[root@localhost ~]# vim /etc/sysconfig/selinux

SELINUX=enforcing|permissive|disabled

enforcing              ##开启状态下的强制状态
permissive           ##开启状态下的警告状态
Disabled              ##关闭状态

[root@localhost ~]# getenforce            ##查看selinux状态

更改selinux开机状态


3.selinux 安全上下文访问规则

[root@localhost ~]# yum install vsftpd lftp -y

[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# touch /mnt/westos3

[root@localhost ~]# mv /mnt/westos3 /var/ftp/

[root@localhost ~]# ls /var/ftp/

[root@localhost ~]# lftp 172.25.254.216

[root@localhost ftp]# ls -Z ##查看文件标签,开启selinux之后的文件标签为mnt_t,开启之前的标签为public_content_t。

                                             ##因为安全上下文不同,所以无法显示文件名称。

[root@localhost ftp]# semanage fcontext -l | grep /var/ftp ##查看/var/ftp安全上下文

[root@localhost ftp]# chcon -t public_content_t westos3 ##修改westos3的文件标签为public_content_t

4.修改匿名用户登陆的家目录/westos/后给它修改标签

[root@localhost ~]# mkdir /westos/

[root@localhost ~]# touch /westos/westosfile

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# lftp 172.25.254.216

[root@localhost ~]# setenforce 0 ##开启状态下的警告状态

[root@localhost ~]# chcon -t public_content_t /westos

[root@localhost ~]# lftp 172.25.254.216

5.永久修改标签

[root@localhost ~]# semanage fcontext -l | grep /westos##给westos目录修改永久标签

[root@localhost ~]# semanage fcontext -a -t public_content_t '/westos(/.*)?'##永久修改westos目录标签

[root@localhost ~]# semanage fcontext -l | grep /westos

/westos(/.*)?                                      all files          system_u:object_r:public_content_t:s0

[root@localhost ~]# restorecon -FvvR /westos/##修改完毕之后需要刷新一下

[root@localhost ~]# systemctl start vsftpd

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# systemctl enable vsftpd

ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'

[root@localhost ~]# systemctl disable firewalld

rm '/etc/systemd/system/basic.target.wants/firewalld.service'

rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'

[root@localhost ~]# lftp 172.25.254.216

6.管理 SELinux 布尔值

##在强制状态下,客户端切换到student用户,是不可以上传文件的

##切换到警告状态可以上传文件

[root@localhost pub]# getsebool  -a | grep ftp   查看布尔值开关

root@localhost pub]# setsebool -P ftp_home_dir 1   永久打开ftp_home_dir开关打开之后,在强制状态下,student用户可以上传文件

7.监控selinux冲突

[root@localhost ~]# rm -fr /var/ftp/*

[root@localhost ~]# touch /mnt/westos

[root@localhost ~]# mv /mnt/westos /var/ftp/

[root@localhost ~]# > /var/log/messages ##

[root@localhost ~]# cat /var/log/messages ##查看日志解决方案

网页浏览ftp://172.25.254.216

[root@localhost ~]# restorecon -v /var/ftp/*

网页浏览ftp://172.25.254.216 ##可以看到westos文件

setroubleshoot是查看selinux日志报错命令

[root@localhost pub]# rpm -qa | grep setroubleshoot  ##查找排错工具安装包

[root@localhost pub]# yum remove setroubleshoot-server-3.2.17-2.el7.x86_64##卸载

[root@localhost pub]# > /var/log/messages

[root@localhost pub]# > /var/log/audit/audit.log##清空日志  

[root@localhost pub]# cat /var/log/messages ##没有出错工具提示

[root@localhost pub]# cat /var/log/audit/audit.log    ##查看效果没有出错提示

[root@localhost pub]# yum install  setroubleshoot-server-3.2.17-2.el7.x86_64  安装排错包

[root@localhost pub]# > /var/log/messages

[root@localhost pub]# > /var/log/audit/audit.log

[root@localhost pub]# cat /var/log/messages##有排错提示

[root@localhost pub]# cat /var/log/audit/audit.log ##可以看到日志

8.更改selinux端口

[root@localhost ftp]# yum install httpd

[root@localhost ftp]# vim /etc/httpd/conf/httpd.conf


[root@localhost ftp]# systemctl restart httpd
Job for httpd.service failed. See 'systemctl status httpd.service' and 'journalctl -xn' for details.

[root@localhost ftp]# setenforce 0

[root@localhost ftp]# systemctl restart httpd

[root@localhost ftp]# semanage port -l | grep http

[root@localhost ftp]# semanage port -a -t http_port_t -p tcp 6666 ##添加6666端口到selinux

[root@localhost ftp]# semanage port -l | grep http ##查看是否添加成功


[root@localhost ftp]# setenforce 1

[root@localhost ftp]# systemctl restart httpd


阅读更多
想对作者说点什么? 我来说一句

SELinux管理及应用

2009年12月21日 223KB 下载

没有更多推荐了,返回首页

不良信息举报

selinux的管理

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭