1、Selinux状态查看与配置: Selinux的配置文件位置:/etc/selinux/config,它还有个链接在/etc/sysconfig/selinux 两个文件作用是一样的 使用config文件来配置selinux(通过配置文件修改selinux的状态属于永久修改,要重启系统才生效) SELINUX=enforcing #此项定义selinux状态。 #enforcing—是强制模式系统受selinux保护。就是你违反了策略,你就无法继续操作下去 #permissive—是提示模式系统不会受到selinux保护,只是收到警告信息。permissive就是Selinux有效,但是即使你违反了策略的话它让你继续操作,但是把你的违反的内容记录下来(警告信息) #disabled—禁用selinux。
SELINUXTYPE=targeted #此项定义selinux使用哪个策略模块保护系统。targeted只对apache ,sendmail, bind,postgresql,nfs,cifs等网络服务保护。 以上策略配置都放置在/etc/selinux目录中,目录和策略名称相同 2、selinux相关命令查看和修改状态:(属于立即生效但临时性的) sestatus 查询selinux工作状态 selinuxenabled检查selinux是否开启,配合echo $?.传回值是0为开启,1为关闭 getenforce查看selinux的状态 setenforce设定selinux运行状态,1开启(Enforcing),0关闭(Permissive)
实验前请将selinux设置为enforcing 1:在/mnt里面新建一个文件 2:mv /mnt/file /var/ftp/ (必须用mv,mv移动过去的文件的安全上下文不会改变,cp复制过去的文件安全上下文会改变为目标目录的安全上下文) 3:lftp ip 4:ls 无法看到从/mnt目录移动到/var/ftp中的文件 5:直接在/var/ftp/目录中新建一个文件,lftp ip ————> ls 可以看到直接建立的文件,因为直接建立的文件的安全上下文与目录相同 6:用 semanage fcontext -l | grep /var/ftp 或者 ls -Z 查看目录或者文件的安全上下文 7:临时修改安全上下文类型
chcon 意思是change context -t type 类型 -R recursive 递归(特别适用于改变某个目录下所有文件的context) -u user -r role我们用ls -Z /var/ftp可以看到,刚刚从/mnt目录移动过来的文件file的安全上下文和直接在/var/ftp目录下创建的file2文件的安全上下文不同,现在我们就来将file的安全上下文修改为和file2文件相同的安全上下文 chcon -t 安全上下文的类型 文件名 8:lftp ip ----> ls 修改了安全上下文的文件此时可以看到 以上的修改在selinux重启(disabled后重启在enforcing再次重启)后会还原 9:永久修改安全上下文(我们需要将安全上下文写入 semanage fcontext中) a.创建一个目录 b.修改这个目录的安全上下文为public_content_t 3:重启selinux ####将selinux设定为disabled后重启系统,再将selinux设定为enforcing再重启系统## 4:ls -Zd 安全上下文还原 5:再次修改木录安全上下文 6:semanage fcontext -l | grep 目录 ### 查看目录安全上下文,因为没有将安全上下文写入 semanage fcontext,所以看不到 7:写入semanage fcontext: semanage fcontext -a(添加) -t(添加的类型) public_content_t ‘目录(/.*)?’ 8:restorecon -FvvR /test/ 同步安全上下文 9:重启selinux查看安全上下文
SELinux 布尔值是更改 SELinux 策略行为的开关。 SELinux 布尔值是可以启用或禁用的规则。安全管理员可以使用 SELinux 布尔值来调整策略 , 以有选择地进行调整,许多软件包都具有 man page *_selinux(8), 其中详细说明了所使用的一些布尔值 ; man -k ‘_selinux’ 可以轻松地找到这些手册 getsebool -a | grep 服务名称 eg:getsebool -a | grep ftpd 实验: 1、本地用户登陆lftp lftp 172.25.66.11 -u student 2、put /etc/passwd ###显示553 权限过小 3、getsebool -a | grep ftp 查看ftp的布尔值 我们需要将ftp_home_dir这一项设置为on即为打开状态 4、setsebool -P ftp_home_dir on 将ftp布尔值设为1,即打开(on) 5、接下来再做一次测试 lftp 172.25.66.11 -u student—>ls—>put /etc/passwd
1:> /var/log/audit/audit.log > /var/log/message 2:touch /mnt/westos 3:mv /mnt/westos /var/ftp/ 4:浏览器中输入 ftp://172.25.66.11 看不到刚刚移动过来的文件,是什么原因呢,让我们来排一下错 5:cat /var/log/audit/audit.log ###错误地方 安全上下文不同 cat /var/log/message ####改正方法 6:restorecon -v /var/ftp/* 将安全上下文同步 7:在浏览器重新查看 ## ftp://172.25.66.11 同步了westos的安全上下文之后就可以看到westos这个文件了
1:安装httpd yum install httpd -y 2:vim /etc/httpd/conf/httpd.conf 第42行 设定一个端口值 3:systemctl restart httpd 此时会重启失败,将selinux设置为0(警告模式)则会重启成功 4:semanage port -l | grep http 查看端口 此时是看不到添加的端口值6666的,需要添加到配置文件 5:semanage port -a -t http_port_t -p tcp 设定的端口值 ###将要设置的端口值添加到配置文件 6:systemctl restart httpd 重启(此时selinux设置为0或者1都可以重启)