selinux初级管理

selinux内核级加强型防火墙

作用:CONTEXT安全上下文(每个文件)pub_content_t   ##文件影响
程序和文件安全上下文必须一致,否则程序访问文件被selinux拒绝
每个目录安全上下文不一致 ls -Z /mnt /var  
getsebool  不安全开关bool值,程序部分功能不可使用   ##服务影响

selinux的功能(1)限制服务的功能(2)限制服务访问功能

验证selinux功能

在selinux开启状态下,ftp目录里有text文件,然而连接却看不到此文件,因为安全上下文不一致!

selinux安全级别

getenforce ##查状态
enforcing   强制    
permissive  警告    ##均为开启状态
disabled    关闭
setenforce 0 设定为警告状态
setenforce 1 设定为强制状态
##不用重启,这两条命令转换强制和警告(前提selinux为开启状态)
permissive警告!就是Selinux有效,即使你违反了策略的话它让你继续操作,但是会把违反的内容记录下来
Enforcing拒绝!就是若违反了策略,就无法继续操作下去,服务会被拒绝!
vim /etc/sysconfig/selinux   修改配置文件
必须重启reboot ##关闭<-->开启
selinux的模式转换需要重启,因为selinux是内核级的插件

重新按装vsftpd 恢复默认
student权限也恢复默认,700
用户student删除550 上传553提示!
lftp student@172.25.254.143:~> put /etc/group
put: Access failed: 553 Could not create file. (group)
lftp student@172.25.254.143:~> rm file
rm: Access failed: 550 Delete operation failed. (file)
setenforce 0  ##警告!
[root@143 pub]# getenforce
Permissive
lftp student@172.25.254.143:~> rm file
rm ok, `file' removed

ls -Z /var/ftp/        ##查看文件安全上下文
ls -Zd /var/ftp        ##查看目录安全上下文
ps auxZ | grep ftp     ##查看ftp服务安全上下文
chcon -t 安全上下文 文件 ##临时修改文件安全上下文
getsebool -a |  grep ftp ##查看ftp服务bool值

临时更改上下文,重启不生效    

mkdir /westos
touch /westos/file
vim /etc/vsftpd/vsftpd.conf
local_enable=YES
anon_root=/westos    ##添加家目录
systemctl restart vsftpd.service
ls -Z /westos        ##查看上下文
ls -Z /var/ftp
chcon -t public_content_t /westos/ -R  ##更改安全上下文

[root@243 home]# mkdir /westos
[root@243 home]# touch /westos/file
[root@243 home]# vim /etc/vsftpd/vsftpd.conf
[root@243 home]# systemctl restart vsftpd.service


但是这种设定是临时的,重启selinux失效,这里的重启指的是selinux的重启

[root@243 home]# getenforce  
Enforcing
[root@243 home]# vim /etc/sysconfig/selinux   ##改为disabled
[root@243 home]# reboot                       ##重启
Connection to 172.25.254.243 closed by remote host.
Connection to 172.25.254.243 closed.
[kiosk@foundation66 Desktop]$ ssh root@172.25.254.243
root@172.25.254.243's password: 
Last login: Tue Nov  6 22:30:57 2018
[root@243 ~]# getenforce           ##现在变为disabled状态了
Disabled
[root@243 ~]# vim /etc/sysconfig/selinux     ##再次更改为enforcing
[root@243 ~]# reboot                         ##重启
Connection to 172.25.254.243 closed by remote host.
Connection to 172.25.254.243 closed.
[kiosk@foundation66 Desktop]$ ssh root@172.25.254.243
root@172.25.254.243's password: 
Last login: Tue Nov  6 22:39:02 2018
[root@243 ~]# getenforce           ##开启成功
Enforcing
[root@243 ~]# ls -Zd /westos       ##安全上下文失效!
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /westos

永久修改

目录及里面内容都记录到-a 表添加 -t类型
semanage fcontext -l | grep /var/ftp
semanage fcontext -l | grep /westos/   ##对比可见配置文件中并没有写入/westos目录所以重启失效
semanage fcontext -a -t public_content_t '/westos(/.*)?'  
##将westos及里面所有添加到内核安全上下文列表
semanage fcontext -l | grep /westos
/westos(/.*)?        all files    system_u:object_r:public_content_t:s0
ls -Zd /westos/
restorecon -RvvF /westos/  ##刷新(F指向,vv过程,R递归)

删除文件的安全上下文

semanage    fcontext   -d    '/westos(/.*)?'        ##删除内核上的安全上下文列表的/westos

管理SElinux布尔值

实现匿名用户写上传

getsebool -a | grep ftp  ##查看ftp服务的所有sebool值开启与否
##修改布尔值,修改selinux策略,以永久保留修改。
系统会更加安全,将selinux改为警告0仅仅是可以执行,但是系统不安全。
参数-P会将bool值记录在文件中##
setsebool -P ftp_home_dir on   ##对功能永久开启
setsebool -P ftpd_anon_write  on ##匿名上传永久开启
 vim /etc/vsftpd/vsftpd.conf          
systemctl restart vsftpd.service  ##30行开启 重启服务
chgrp ftp /var/ftp/pub/
chmod 775 /var/ftp/pub/
lftp 172.25.254.143:/> cd pub/
lftp 172.25.254.143:/pub> put /etc/passwd
put: Access failed: 553 Could not create file. (passwd)  ##这时候是仅可读,所以上传不了
chcon -t public_content_rw_t /var/ftp/pub/   ##改为可读写
lftp 172.25.254.143:/pub> put /etc/passwd
2102 bytes transferred
##setenforce 0也可以实现不用改public_content_rw_t!(只是警告不影响执行!)

修改vsftpd服务的配置文件vim   /etc/vsftpd/vsftpd.conf,打开文件上传的功能,重启vsftpd服务

改变/var/ftp/pub的组为ftp,并且赋予组写的权限

默认仅可读,修改上下文public_content_rw_t为读写,再次上传成功!

监控selinux冲突

/var/log/audit/audit.log  :selinux日志文件所有的报错信息在此文件中,只会报错,不会告诉你如何解决

setroubleshoot-server软件,监听/var/log/audit/audit.log中的审核信息并将简短摘要发送到/var/log/messages(前提已安装 setroubleshoot-server 软件包 )

/var/log/messages有报错信息和解决方案(但是解决方案不考虑系统安全性)

卸载setroubleshoot-server 软件,清日志

查看日志没有排错提示

再次安装setroubleshoot-server,/var/log/audit/audit.log有错误信息,/var/log/messages有解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值