selinux

一、什么是selinux

selinux是linux系统内核级加强型防火墙

selinux作用:(在使用ftp访问时体现)

1、限制程序访问,程序访问文件必须有匹配的上下文

2、.限制程序功能,把程序不安全功能屏蔽
二、selinux的常用命令

1.selinux状态的查看

getenforce ##selinux状态的查看

        selinux的状态有三种:enforcing(1)##强制   permissive(0) ##警告    disabled##关闭

2.selinux状态的更改

vim /etc/sysconfig/selinux

SELINUX=XXX

reboot ##selinux的开启和关闭需要重启,加载配置

注意:更改selinux状态时强制状态和警告状态可以使用命令相互切换,不需要重启:

setenforce 0/1 ##修改selinux状态为强制或者警告

三、安全上下文

1.安全上下文的查看

ls -Z ##查看文件安全上下文

ls -Zd ##查看目录安全上下文

ps auxZ | grep vsftpd ##查看ftp服务安全上下文

2.临时修改文件/目录安全上下文

chcon -t 安全上下文 file ##临时更改文件的上下文

chcon -t 安全上下文 dir -p ##临时更改递归目录的安全上下文

注意:此操作下重启selinux(关闭 reboot /开启 reboot)后安全上下文会恢复默认设置

3、永久修改安全上下文

mkdir /westos

touch /westos/file{1…3}

ls -Zd /westos ##查看/westos/目录本身的安全上下文

ls -Zd /westos/* ##查看/westos/目录中文件的安全上下文

semanage fcontext -a -t public_content_t ‘/westos(/.*)?’ ##在内核安全上下文列表中将/westos/目录及目录中所有文件的安全上下文更改为public_content_t

semanage fcontext -l | grep westos ##仅查看与westos有关的安全上下文

restorecon -FvvR /westos/ ##刷新/westos/目录的安全上下文,F指向,vv过程,R递归

4.删除文件安全上下文

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

四、seinux影响程序功能(selinux开启情况下,lftp可以写和上传文件)

1.selinux开启后会给每个程序设定sebool值,默认关闭所有功能

getsebool -a | grep ftp ##查看关于ftp的所有sebool值

setsebool -P ftp_home_dir on ##打开sebool值中ftp_home_dir功能的开关

setsebool -P ftp_home_dir off ##关闭sebool值中ftp_home_dir功能的开关

注意:ftp服务中,将ftpd_full_access (相当于总开关)打开后。selinux将不再限制ftp功能

2.在selinux开启情况下,实现匿名用户lftp下载上传文件

yum install vsftpd lftp -y

systemctl start vsftpd

systemctl enable vsftpd

firewall-cmd --permanent --add-service=ftp

firewall–cmd --reload

第一步:修改配置文件,让匿名用户拥有可上传和可下载的权限

            增加组和权限,将/var/ftp/pub/添加到ftp组下,并赋予其组有写的权限

vim /etc/vsftpd/vsftpd.conf

anon_upload_enable=YES ##匿名用户可上传

anon_world_readable_only=NO ###参数为no时匿名用户可下载

chgrp ftp /var/ftp/pub

chmod 775 /var/ftp/pub

第三步:setsebool 打开ftp匿名用户write功能(-P表示永久修改)

chcon -t修改文件标签,增加写的功能

getsebool -a | grep ftp

setsebool -P ftpd_anon_write on

chcon -t public_content_rw_t /var/ftp/pub/

systemctl restart vsftpd

##注意:此方法为临时更改,重启selinux后会失效,若要永久改变,可采用下文日志中插件提供的解决办法

五、监控selinux的错误信息

lftp 172.25.254.145

cd pub

rm passwd

上图的错误信息会在/var/log/messages里显示,并且安装有setroubleshoot-server的机器还会告诉你如何解决报错问题

##注意:日志中的建议只提供解决方法,不注重安全性

所有的报错信息在/var/log/audit/audit.log里,但是只会报错,不会告诉你怎么解决

#######selinux端口

##更改selinux端口##
[root@localhost ftp]# yum install httpd
[root@localhost ftp]# vim /etc/httpd/conf/httpd.conf
42 Listen 6666
[root@localhost ftp]# systemctl restart httpd ##修改http端口后不能重启,因为http里没有6666的端口
Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.
[root@localhost ftp]# setenforce 0 ##警告
[root@localhost ftp]# systemctl restart httpd ##警告模式后可以重启
[root@localhost ftp]# semanage port -l | grep http ##查看当前selinux允许的http端口
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@localhost ftp]# semanage port -a -t http_port_t -p tcp 6666 ##添加6666端口到selinux
[root@localhost ftp]# semanage port -l | grep http ##再次查看端口是否添加进去
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 6666, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
[root@localhost ftp]# setenforce 1 ##强制警告也可以重启了
[root@localhost ftp]# systemctl restart httpd


本文来自 24kmagic 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_42711214/article/details/82752732?utm_source=copy

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值