五、SELinux安全防护
rwx 针对用户和组 SELinux 针对程序
targeted:定义网络程序规则 minimum:限制少量软件 mls:限制全部,没定义的全拒绝
[root@proxy ~]# vim /etc/selinux/config //SELinux固定配置文件
SELINUX=enforcing //设置SELinux为强制模式
SELINUXTYPE=targeted //保护策略为保护主要的网络服务安全
disabled则需要修改配置文件重启系统
[root@proxy ~]# getenforce //查看当前状态为警告模式
Permissive
[root@proxy ~]# setenforce 1 //设置SELinux为强制模式(临时)
[root@proxy ~]# getenforce //查看当前模式为强制模式
Enforcing
[root@proxy ~]# setenforce 0 //设置SELinux为宽松模式(临时)
[root@proxy ~]# getenforce //查看当前模式为警告模式
Permissive
搭建FTP(SELinux启用)
cp 拷贝不保留标签,继承新上级目录的标签 mv 移动保留原本的标签
[root@proxy ~]# yum –y install vsftpd //安装ftp,默认ftp共享目录为/var/ftp/
[root@proxy ~]# vim /etc/vsftpd/vsftpd.conf //修改配置文件
anonymous_enable=YES //开启匿名访问,只能下载,ftp用户就是服务端主机上useradd创建的用户
write_enable=YES
anon_upload_enable=YES //允许匿名上传文件
anon_mkdir_write_enable=YES //允许匿名上传目录
[root@proxy ~]# systemctl start vsftpd //启动服务
[root@proxy ~]# tar -czf /var/ftp/log1.tar /var/log //测试文件1
[root@proxy ~]# tar -czf log2.tar /var/log //测试文件2
[root@proxy ~]# mv log2.tar /var/ftp/ //mv 移动保留原本的标签
[root@proxy ~]# wget ftp://192.168.4.5/log1.tar //下载第一个文件,成功
[root@proxy ~]# wget ftp://192.168.4.5/log2.tar //下载第二个文件,失败(看不到文件)
[root@proxy ~]# ls -lZ /var/ftp/ //查看文件标签值
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log1.tar
-rw-r--r--. 1 root root unconfined_u:object_r:admin_home_t:s0 log2.tar
[root@proxy ~]# chcon -t public_content_t /var/ftp/log2.tar.gz //为log2设置标签值
[root@proxy ~]# ls -Z /var/ftp/log2.tar
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 log2.tar
[root@proxy ~]# wget ftp://192.168.4.5/log2.tar //再次下载,成功
修改标签值的3种方法:
restorecon /var/ftp/d2.tar.gz //重置文件标签为上级目录标签值
chcon --reference=/var/ftp/d1.tar.gz /var/ftp/d2.tar.gz //参照d1的标签值修改d2的标签值
chcon -t public_content_t /var/ftp/log2.tar.gz //为log2设置标签值