###########selinux内核级加强型火墙##########
selinux基本认识和设置
1.CONTEXT 安全上下文
程序安全上下文和文件安全上下文匹配时访问允许
程序安全上下文和文件安全上下文不匹配时访问不允许
2.getsebool 功能开关
getsebool -a | grep ftp
对服务 功能开关
对文件 安全标签
3.查看selinux的状态
执行getenforce
修改状态编辑vim /etc/sysconfig/selinux
SELINUX=enforcing开启
reboot重新启动
开机后查看selinux=enforcing
SELINUX=disabled 关闭状态
reboot重新启动 ///开启和关闭selinux需要重启
开启状态
enforcing
permissive
开启状态下切换
setenforce 1 强制
setenforce 0 警告
文件的安全上下文的临时设定
临时设置
cd /mnt
touch westosfile
mv /mnt/westosfile /var/ftp
lftp 172.2.5.254.103
ls 不会显示 /因为文件上下文不匹配,所以lftp是是不会显示此处的westosfile的
当cd /var/ftp
ls 有文件
ls -Zd /var/ftp
chcon -t public_content_t westosfile 临时设置上下文对应
ls -Z
再去测试,用另一台主机lftp 172.25.71.150
ls
刚才的westosfile就会显示,
########文件安全上下文的永久设定#######
永久设置
1.编辑文件vim /etc/vsftpd/vsftpd.conf
anon_root=/ftphome 让匿名用户lftp到/ftphome
重新启动服务
2.ls -Zd /ftphome //查看/ftphome的安全上下文
3.chcon -t public_content_t /ftphome/ -R 改变/ftphome/下所有的安全上下文,改成后/var/ftp/一致的安全上下文
4.ls -Zd /ftphome/
ls -Zd /var/ftp/ 查看两个目录的上下文是否一致
5.在另外一台主机lftp就可以看到ftphome底下的东西了
6.semanage fcontext -l | grep /ftp /查看/var/ftp的安全文类型
7.semanage fcontext -a -t public_content_t ‘/ftphome(/.*)?’ //改变/ftphome目录下的安全上下文
restorecon -RvvF /ftphome/ 递归设置
reboot 重新启动
8.重启之后查看/ftphome下文件的安全上下文
8.用另外一台主机lftp 172.25.71.150
ls 可以看到/ftphome/下的内容
###########匿名用户的上传#############
1.当selinux=permissive 警告模式下的匿名用户上传
2.查看ftp各项功能的状态
3.开启第一个 ftp_home_dir 建立目录功能,再查看是否开启
4.再修改配置文件 vim /etc/vsftpd/vsftpd.conf
把匿名用户上传打开
然后重新启动vsftpd服务,让其生效
5.chgrp ftp /var/ftp/pub/匿名用户默认身份ftp 更改组
chmod 775 /var/ftp/pub/更改权限
6.测试,用另一个主机lftp 172.25.71.150 上传文件 发现可以将/etc/passwd上传
7…当selinux=enforcing 强制模式下的匿名用户上传
按照刚才的实验lftp发现是上传不了文件的
8.打开匿名用户写权限
9.用ls -Z /var/ftp/pub 的权限和程序以及上下文 ,发现权限不够
加入读写权限并查看
10.测试,用另一台主机lftp 172.25.71.150 并上传/etc/group
selinux的配置文件以及问题解决方法的配置文件
1.selinux的日志文件
selinux日志文件保存在 /var/log/audit/audit.log
2.selinux的问题解决方案 /var/log/messages
3.setroubleshoot-server.x86_64 软件将selinux的问题解决方案采集到/var/log/messages
当系统有setroubleshoot-server.x86_64 软件就会采集selinux问题解决方案到/var/log/messages里
4.当系统没有setroubleshoot-server.x86_64 软件就不会采集selinux问题解决方案到/var/log/messages里