linux中内核级加强型火墙的管理
环境设定
rm -rf /etc/vsftpd ##删掉配置文件
dnf reinstall vsftpd -y ##重新安装
systemctl restart vsftpd
ls -ld /var/ftp/pub ##清除文件但是没有把权限全部清除
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
selinux开启前后的对比
-
当selinux没有开启
在/mnt中建立文件被移动到/var/ftp下可以被vsftp服务访问到,匿名用户也可以通过设置后上传文件,当使用ls - Z /var/ftp查看文件的时候显示“?” -
当selinux开启
在/mnt中建立文件被移动到/var/ftp下不可以被vsftp服务访问。匿名用户设置后仍然不能上传文件。当使用ls -Z /var/ftp时,vsftp服务可以访问的文件都有context安全上下文,不能访问的没有。 -
selinux
对于文件的影响,当selinux开启的时候,内核会对每个文件及每个开启的程序进行标签加载,标签内记录程序和文件的安全上下文(context)
对于程序功能的影响,当selinux开启后会对程序的功能加载开关,并设定此开关的状态为关闭状态,当需要此功能时,需要手动开启功能开关,此开关叫做sebool
##selinux关闭状态
##selinux开启状态
##新建的westos没有安全上下文,因此不能显示出来
selinux的状态及管理
-
selinux的开启
vim /etc/selinux/config 7 SELINUX=disabled ##selinux关闭 7 SELINUX=enforcing ##selinux开机设定为强制状态,此状态为selinux开启 7 SELINUX=permissive ##selinux开机设定为警告状态,此状态为selinux开启 (selinux开启或关闭需要重启系统) enforcing:不符合条件一定不能被允许,并收到警告信息 permissive:不符合条件被允许,并会收到警告信息 selinux状态的查看:getenforce selinux开启后强制和警告级别的转换: setenforce 0 ##警告 setenforce 1 ##强制
##警告模式可以上传但是会报错
-
安全上下文
mkdir /westosdir1 ##建立目录 ls -Zd /westosdir1 ##查看目录安全上下文 touch /westosdir1/file1 ##建立文件 ls -Z /westosdir1 ##查看目录下文件安全上下文 chcon -Rt public_content_t /westosdir1 ##临时设定目录及目录下文件的安全上下文 touch /.autorelabel ##此文件存在,selinux在开机时会自动初始化 ls -Zd /westosdir1 ls -Zd /var/ftp semanage fcontext -l | grep /var/ftp ##查看安全上下文,里面如果有指定文件的安全上下文,开启后就会显示 semanage fcontext -l | grep westosdir semanage fcontext -a -t public_content_t '/westosdir1(/.*)?' ##永久设定安全上下文。 括号里面的表示存在的和未来建立的 restorecon -RvvF /westosdir1 ##刷新让其立即生效
sebool
getsebool -a | grep ftp ##查看
setsebool -P ftp_anon_write off ##设置。off关闭,on开启 ,-P表示永久
selinux会限制使用某些端口
vim /etc/ssh/sshd_config ##以ssh服务为实验,修改端口
semanage port -l | grep ssh ##查看端口
semanage port -a -t ssh_port_t 1111 -p tcp ##加入新的端口
semanage port -d -t ssh_port_t 1111 -p tcp ##删除端口
setrouble
当出现错误,我们如何找到错误?
清空日志
> /var/log/messages ##清空系统日志。
> /var/log/audit/audit.log ##清空selinux的警告信息日志。
再次操作步骤
cat /var/log/message ##查看系统日志,此日志提供了出现问题的解决方式
cat /var/log/audit/audit.log ##查看selinux的警告信息日志,此日志没有解决方式
/var/log/messages出现解决问题方式的原因是因为安装了下述软件
rpm -qa | grep setrouble ##查看软件
setroubleshoot-server-3.3.22-2.el8.x86_64 ##系统安装了这个软件,以致于可以分析警告信息,提供了selinux警报信息的解决方案,并且在/var/log/messages中显示
dnf remove setroubleshoot-server-3.3.22-2.el8.x86_64 如果如此删除这个软件,此时就不会在系统日志中生成解决方式
##只有报错信息,没有解决方案