<6>linux中内核加强型火墙的管理


一、Selinux的功能

1.观察现象

当Selinux未开启时

在/mnt中建立文件被移动到/var/ftp下可以被vsftpd服务访问touch /mnt/westosfile mv /mnt/westosfile /var/ftp ftp ls查看
匿名用户可以通过设置后上传文件
当使用ls -Z /var/ftp查看文件时显示"?"
ps auxZ | grep vsftpd 时显示:

  • root 8546 0.0 0.0 26952 408 ? Ss 10:35 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
当selinux开启:

在/mnt中建立文件被移动到/var/ftp下不可以被vsftpd服务访问
匿名用户可以通过设置后仍然不能上传文件
当使用ls -Z /var/ftp查看文件时显示信息
ps auxZ | grep vsftpd 时显示:
system_u:system_r:ftpd_t:s0-s0:c0.c1023 root 6577 0.0 0.0 26952 412 ? Ss 10:50 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

selinux:

对于文件的影响:
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文(context)

对于程序功能的影响:
当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此开关叫做sebool

安全上下文作用:特定的程序只能访问特定的文件
强制:不能访问有警告
警告:能访问有警告

二.Selinux的状态及管理

指令 功能 含义
setenforce 0 警告permissive 不符合条件被允许,并会收到警告信息
setenforce 1 强制Enforcing 不符合条件一定不能被允许,并会收到警告信

注:“selinux开启或关闭需要重启系统”

selinux日志位置:/var/log/audit/audit.log

三.Selinux的安全上下文

指令 含义
ls -Z 查看文件的安全上下文
ls -Zd 查看目录的安全上下文
ps auxZ 查看进程的安全上下文
chcon -t 标签文件/目录 临时修改安全上下文
chcon -Rt public_content_t /westosdir 临时修改目录及目录中的所有子文件的安全上下文
semanage fcontext -a -t public_content_t ‘/westosdir(/.*)?’ 永久修改安全上下文
%操作:
[root@node2 ~]# getenforce
disable
[root@node2 ~]# touch /mnt/westosfile
[root@node2 ~]# mv /mnt/westosfile /var/ftp
[root@node2 ~]# vim /etc/vsftpd/vsftpd.conf 
可登陆可上传

[root@node2 ~]# chmod 755 /var/ftp/pub
[root@node2 ~]# chgrp ftp /var/ftp/pub
[root@node2 ~]# lftp 172.25.254.203  #可以ls看到westosfile,也可以上传

[root@node2 ~]# vim /etc/selinux/config
改为Enforcing
[root@node2 ~]# touch /.autorelable
[root@node2 ~]# reboot

[root@node2 ~]# setenforce 0
[root@node2 ~]# getenforce
[root@node2 ~]# setenforce 1
[root@node2 ~]# getenforce

[root@node2 ~]# touch /mnt/westosfile1
[root@node2 ~]# mv /mnt/westosfile1 /var/ftp
[root@node2 ~]# lftp 172.25.254.203  #可以ls看不到westosfile1,也不可以上传
[root@node2 ~]# chcon -t public_content_t /var/ftp/westosfile  #临时更改安全上下文
[root@node2 ~]# lftp 172.25.254.203  #可以ls看到westosfile1,但不可以上传

[root@node2 ~]# mkdir /westos
[root@node2 ~]# semanage fcontext -a -t public_content_t  '/westos(/.*)?'
[root@node2 ~]# ls -Zd /westos/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四.SEBOOL

[root@node2 ~]#getsebool -a ##现实服务的 bool 值
[root@node2 ~]#setsebool -P ftpd_anon_write on #更改

五.SEPORT

%操作,selinux开启状态下更改http的端口

[root@node2 /]# vim /etc/httpd/conf/httpd.conf 
更改Listen 6666   #改完之后改回来
[root@node2 /]# systemctl restart httpd  #起不来
[root@node2 /]# semanage port -l | grep http  #查看没有6666端口
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989

[root@node2 /]# semanage port -a -t http_port_t -p tcp 6666  #添加6666端口
[root@node2 ~]# semanage port -l | grep http   #查看有了6666端口
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      6666, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[root@node2 ~]# systemctl restart httpd  #可以重启了
[root@node2 ~]# netstat -antlupe | grep httpd  #查看端口改称了6666
tcp6       0      0 :::6666                 :::*                    LISTEN      0          152778     65643/httpd    
%操作晚餐

在这里插入图片描述在这里插入图片描述

setrouble 显示警告解决方案,卸载和安装效果

%操作setrouble 显示警告解决方案,卸载和安装效果
touch /mnt/westosfile5
mv /mnt/westosfile5 /var/ftp
lftp 172.25.254.203
ls #不显示westosfile5
cat /var/log/messages  #查看解决方案
%使移动的文件显示
/sbin/restorecon -v westosfile5
setsebool -P ftpd_full_access 1  #此时selinux 对ftp无作用,改完之后再关掉
getsebool -a | grep ftp
lftp 172.25.254.203
ls #能看见westosfile5


rpm -qa | grep setrouble
dnf remove setroubleshoot-server-3.3.22-2.el8.x86_64  #卸载setroubleshoot
touch /mnt/westosfile6
mv /mnt/westosfile6 /var/ftp/
lftp 172.25.254.203
ls
cat /var/log/messages  #没有显示解决方案
dnf search setrouble
dnf install setroubleshoot-server.x86_64  #安装setroubleshoot
touch /mnt/westosfile7 
mv /mnt/westosfile7 /var/ftp/
lftp 172.25.254.203
ls
cat /var/log/messages  #又有显示解决方案了
%操作晚餐

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qiao_qing/article/details/110497316