1.定义
selinux是内核级加强型火墙
2.selinux支持的三种模式
getenforce
enforcing ##强制开启 会警告你也会拒绝你
permissive ##警告开启,会警告但不会拒绝
disabled ##关闭
3.切换模式
开启和关闭模式切换,需要重新启动
两种开启模式可以相互转换,不需要重启动
setenforce 0 ##警告
setenforce 1 ##警告并拒绝
4.selinux对程序的影响
selinux对程序的影响:开启之后会给每一个文件加载一个标签
安全上下文 pubic_content
程序的安全上下文和文件的安全上下文是匹配的,才可以访问
程序的安全上下文和文件的安全上下文是不匹配,否则访问失败
vim /etc/sysconfig/selinux
selinux模式设置为disabled
touch /mnt/westosfile
mv /mnt/westosfile /var/ftp
lftp 172.25.254.219
ls 可以看到westosfile
重启后查看
vim /etc/sysconfig/selinux 设置成enforcing
重启后查看
touch /mnt/westosfile1
mv /mnt/westosfile2 /var/ftp
lftp 172.25.254.219
ls 可以看不到westosfile1
但是westosfile1确实存在
查看程序的上下文是否和目录上下文匹配
文件初始selinux上下文通常是父目录。将父目录的上下文指定给新创建的文件
cd /var/ftp
touch file
ls -Z
file 上下文是public_content_t
touch /mnt/file
ls -Z /mnt/file
/mnt/file 上下文是mnt_t
ls -Z
westosfile1 的上下文是mnt_t
chcon -t public_content_t westosfile1
##临时修改文件westosfile1的上下文
ls -Z
westosfile2 的上下文变成public_content_t
vim /etc/vsftpd/vsftpd.conf ##修改配置文件
anon_root=/ftphome ##匿名用户登陆的家目录修改为/ftphome
lftp 172.25.254.119 ##匿名用户登陆
ls没东西
ls -Zd /ftphome/ ##/ftphome/的上下文是default_t
chcon -t public_content_t /ftphome/ -R
##临时更改/ftphome/的安全上下文
ls -Zd /ftphome/ ##/ftphome/的上下文是public_content_t
lftp 172.25.254.119##匿名用户登陆
ls 可以看见里边东西
查看临时设定的话重启之后是否文件的上下文改变
vim /etc/sysconfig/selinux
SELINUX=disbaled ##由原来的enforcing修改成disbale
reboot
vim /etc/sysconfig/selinux
SELINUX=enforcing ##由原来的disbale修改成enforcing
reboot
reboot ##重启两次
lftp 172.25.254.177 ##匿名用户登陆
ls没东西 ##说明它是临时设定
ls -Zd /ftphome ##显示/ftphome的上下文是default_t
ls -Zd /var/ftp ##显示/var/ftp的上下文是public_content_t
匿名用户默认登陆/var/ftp时安全上下文匹配允许用户查看里边信息,那么如果修改/ftphome的安全上下文为public_content_t使得用户也可以查看/ftphome里边的信息。但是重起后失效
永久设定
查看/var/ftp安全上下文是如何永久设定的
永久更改/ftphome的安全上下文
semanage fcontext -a -t public_content_t ‘/ftphome(/.*)?’
restorecon -RvvF /ftphome ##读取里边内容使得永久设定生效
重启可以看到永久设定生效
selinux对服务的影响
对服务的影响:加程序的功能开关
getsebool 用于显示布尔值,setsebool用于修改布尔值
setsebool
getsebool -a | grep ftp
警告模式下匿名用户可以上传
setenforce 0 设置为警告模式
vim /etc/vsftpd/vsftpd.conf
匿名用户上传权限开启 服务允许
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub修改权限
lftp 172.25.254.219
cd pub/
put /etc/passwd 可以上传
强制模式下匿名用户不可以上传
setenforce 1 设置为强制模式
lftp 172.25.254.219
cd pub/
put /etc/group
553报错不可以上传
getsebool -a | grep ftp
setsebool -P ftp_anon_write on ##打开匿名用户上传功能开关 ,-P 永久开启
lftp 172.25.254.219
cd pub/
put /etc/group
553报错不可以上传
ls -Zd /var/ftp/pub/
chcon -t public_content_rw_t /var/ftp/pub/ ##原来是只读,修改成可写可读
lftp 172.25.254.219
cd pub/
put /etc/group ##上传成功
发生错误查看日志
/var/log/audit/audit.log 提供问题出在哪里
/var/log/messages 专门分析前面日志,提供解决方案
清空日志
清空日志:>/var/log/audit/audit.log
清空日志:>/var/log/messages
touch /mnt/file
mv /mnt/file /var/ftp
cat /var/log/audit/audit.log ##提供问题出在哪里
cat /var/log/messages ## 专门分析前面日志,提供解决方案
rpm -qa | grep settroubleshoot ##查看提供解决方案的软件