问题1:selinux对于系统时如何保护的
对于之前/etc/vsftpd/文件的改动
rm -fr /etc/vsftpd/
dnf install vsftpd -y
systemctl restart vsftpd
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #让匿名用户认证
anon_upload_enable=YES #让匿名用户上传文件
selinux_disable selinux_enable
ftp upload yes no
mv /mnt/file --- /var/ftp yes no
pa axZ | grep vsftpd 某些信息是查看不了的 system_u.....
ls -Z /mnt/westoslee ? ls -Z /mnt/westoslee system_u:object_r....
vim /etc/sysconfig/selinux
selinux对于文件的影响
当selinux开启时,内核会对每个文件及每个开启的程序进行标签加载
标签内记录程序和文件的安全上下文(context)
特定标签的程序只能访问特定标签的文件
selinux对于程序的影响
当selinux开启会对程序的功能加载开关,并设定此开关的状态为关闭
当需要此功能时需要手动开启功能开关
此开关叫做sebool
getsebool -a | grep ftp
问题2:selinux的基本状态设定
vim /etc/sysconfig/selinux
vim /etc/selinux/conf #这两个文件是同一个
enforcing 和 permissise 设定这两个状态的时候,一定要重启系统才能生效,否则selinux无法去切换,因为这个内核级的插件
enforcing 强制,即会警告你,也会拒绝你
permissise 允许,但有警告
cat /var/log/audit/audit.log 这是selinux的日志
> /var/log/audit/audit.log #清空当前信息
getenforce #查看selinux状态
setenforce 1/0 #设置selinux状态, 1表示强制,0表示警告
问题3:selinux安全上下文的管理
ls -Z /var/ftp/ #可以查看目录中的文件的安全上下文
chcon -t public_content_t /var/ftp/westoslee #改变安全上下文
ls -Zd westos #查看目录本身的安全上下文
ls -RldZ westos #查看目录本身的安全上下文
ls -RlZ westos #查看目录本身和目录中文件的安全上下文
当执行以下操作
chcon -t public_content_t /mnt/westos #只改变目录本身的安全上下文
chcon -Rt public_content_t /mnt/westos #改变目录本身和子文件的安全上下文 R表示递归
以上的改变只是临时的,当selinux重新被初始化了,那安全上下文会恢复成默认的。以下操作是将安全上下文固定下来,要修改安全上下文列表。
touch /.autorelabel #当开机的时候检测到这个文件的存在,selinux就会对文件进行重新的标签设定。
semanage fcontent -l | grep /var/ftp
semanage fcontent -a -t public_content_t '/westosdir(/.*)?' #目录及以后创建的文件都会被处理
semanage fcontent -a -t public_content_t /westos #只有目录本身被处理了
restorecon -RvvF /westosdir/
#R表示显示详细过程
问题4:安全上下文的波尔值的设定
public_content_t 只能读,不能改
public_content_rw_t 可以改
当修改文件为
semanage fcontext -a -t public_content_rw_t '/var/ftp/pub(/.*)?'
之后,在
lftp 172.25.254.250中还是上传不了文件的时候,是这个功能被关掉了
getseboot -a | grep ftp #查看ftp
setsebool -P ftpd_anon_write 1
#P的意思的permanent
getsebool -a
问题5:selinux对于服务的端口限制
当selinux对于端口有限制
semanage port -l | grep ssh
#查看端口
semanage port -a -t ssh_port_t -p tcp 2222
#将访问端口加上2222
semanage port -d -t ssh_port_t -p tcp 2222
#2222端口撤销
问题6:selinux排错
cat /var/log/messages
根据日志提示
/sbin/restorecon -V /var/ftp/westos1
#只提供你想访问问题的解决方案,但不能保证安全
#selinux系统中有个软件对selinux进行扫描,软件名字叫做setrouble-shoot,软件的功能是对于错误进行分析,从而给出方案
当删除setrouble-shoot软件之后,错误日志在
/var/log/audit/audit.log
中,但没有解决方案
setsebool -P ftpd_full_access 1 #设定完之后,selinux将不会对ftp进行限制