SELINUX
1.什么是selinux?
selinux ,内核加强型防火墙
SElinunx实现了一个更灵活的MAC形式,叫做类型强制(Ttpe Enforcement)和一个非强制的多层安全形式(Multi-Level)
2.如何管理selinux级别?
selinux开启或者关闭 vim /etc/sysconfig/selinux selinux=Disabled #关闭状态 selinux=Enforcing #强制状态 selinux=Permissive #警告状态
3.查看selinux级别:
cat enforce 或者 getenforce 1:enforcing mode 0:permissive mode ##在切换selinux状态时,只要是从disabled的相关切换,都需要讲系统重启才能生效
4.selinux 1 强制级别对ftp部署影响:
1 getsebool -a | grep ftp 2 setenforce 0 #把selinux的模式改成警告模式。可以执行,不会被拒绝,但是有警告 3 lftp 172.25.254.132 -u student 4 put /etc/group #可以执行 5 setenforce 1 #将selinux改成强制模式, 6 getsebool -a | grep ftp 7 lftp 172.25.254.132 -u student 8 put /etc/group #报553权限过小的错误
#setenforce 为0模式时,为警告模式,当执行上传文件时是被允许的,但是会有警告warning,而强制模式1直接不可以被执行
9 ls -ld /home/student/ #查看文件属性 10 chmod u+rwx /home/student #给student本身一个权限,使文件所有人可以对其进行操作 11 setsebool ftp_home_dir on #把ftp_home_dir 的功能打开,即可以本地用户上传文件 12 getsebool -a | grep ftp #查看ftp权限功能 # setsebool anon_write on #打开匿名用户可写的功能 # getsebool -a | grep ftp #查看ftp部署管理 13 lftp 172.25.254.132 -u student #登陆student用户 14 put /etc/group #上传是被允许的,因为功能被开启
5.setforce 1 对http部署影响:
1 yum install httpd 2 vim /etc/httpd/conf/httpd.conf Listen 6666#该端口系统是没有的,系统默认http的tcp端口80
3 setenforce 1 #selinux为强制级别,当selinux为警告模式时,重启httpd是可以的 4 systemctl restart httpd #失败 5 journalctl -xn 6 semanage port -l | grep http #查看http的所有端口 7 semanage port -a -t http_port_t -p tcp 6666 #将6666添加到http服务的tcp端口列表中 8 systemctl restart httpd 9 semanage port -l | grep http #测试,查看6666是否被添加到http的tcp端口列表中
semanage port -d -t http_port_t -p tcp 6666 #删除在http中添加的tcp端口列表中的6666 semanage port -l | grep http #查看是否还有6666端口
端口:port是计算机和外界通讯交流的出口 cat /etc/services | grep ftp #查看ftp中所有端口以及对应协议
6.setroubleshoot
1 vim /etc/vsftpd/vsftpd.conf #修改家目录
2 systemctl restart vsftpd.service #重启该服务 3 touch /mnt/westos1 #建立文件 4 mv /mnt/westos1 /var/ftp #重命名 5 > /var/log/messages #清空日志 在浏览器中访问ftp://172.25.254.132/westos1 #报550
6 cat /var/log/messages #查看日志,会提供一个解决方案,这个方案是由setroubleshoot提供的 7 restorecon -v /var/ftp/* #解决方案,执行该命令 再次访问/westos,是被允许的
8 rpm -qa | grep selinux #过滤selinux相关安装信息 9 rpm -qa | grep setrouble #查看setrouble有关的安装包 测试: 10 yum remove setroubleshoot-server-3.2.17-2.el7.x86_64 #卸载安装包 11 > /var/log/messages #清空日志 12 > /var/log/audit/audit.log #该日志是访问ftp过程中生成的日志文件 13 touch /mnt/westos2 #再次建立一个文件重命名到/var/ftp中 14 mv /mnt/westos2 /var/ftp 在卸载setroubleshoot之后第一次访问ftp 15 cat /var/log/messages #查看日志文件,文件中没有提供相应的解决方案以及相关的日志信息 16 cat /var/log/audit/audit.log 17 yum install setroubleshoot-server-3.2.17-2.el7.x86_64 #安装后查看再次访问时是否会在/var/log/messages中生成解决方案 18 cat /var/log/messages #该日志没有提供解决方法,也没有指定出现该问题应该生成日志位置 19 restorecon -v /var/ftp/*