【1】 SELinux开机的三种状态
配置文件 /etc/sysconfig/seLinux
SELINUX = Enforcing (默认)
Disabled : 停用SELinux功能
Permissive : 仅显示警告信息,不阻止
Enforcing : 强制执行SELinux功能,产生警告信息
SELINUXTYPE=targeted
strict : 完整的保护功能,包含网络服务,一般指令及应用程序
targeted : 保护网络相关服务
dhcpd
httpd
mysqld
named
nscd
ntpd
portmap
postgres
snmpd
squid
syslogd
【2】 查看SELinux 状态
sestatus
或
getenforce 查看SELinux 状态
【3】 重启启动SELinux
调用 /sbin/setfiles 为所有文件打标记
ls -Z 查看文件
ps -Z 查看进程
id -Z 查看当前用户
【4】设置SELinux状态 而不重启系统
setenforce [ Enforcing | Permissive | 1 | 0 ]
【5】 图形化管理页面
system-config-selinux
【6】SELinux 使用思路 在SELinux开启的情况下,配置vsftpd服务
1】 设置SELinux 允许模式
setenforce Permissive
2】 安装启动vsftpd 服务
yum install vsftpd -y
service vsftpd start
3】 测试
匿名登录并下载
使用本地用户登录,并下载,上传
4】设置SELinux 强制模式
setenforce Enforcing
5】再次测试相关功能
匿名用户登录并下载 仍然可以
使用本地用户登录,并下载,上传 --- 被拒绝
【6】配置SELinux,放行需要的功能
1】方法一 看日志
a 文本方式
正常情况下 日志会在服务器的 /var/log/messages 文件中存在
还会在 /var/log/audit/audit.log 存在
b 图形方式
正常屏幕的右上角会自动弹出一个黄色的五角星 (selinux troubleshooter)
若未看到 保证 /etc/syslog.conf 正常 启动service syslog restart
同时启动如下服务:
[root@ ~]# setroubleshootd
c 查看日志
tail /var/log/messages
sealert -l xxxxxxxxxxxxxxxxxxxx
sealert -a /var/log/audit/audit.log
d 日志中提示说
setsebool -P ftp_home_dir=1
测试,系统帐号登录ftp登录成功
2】方法二 看man手册
man -k ftp | grep selinux
man 8 ftp_selinux