开启SELINUX真的就那么难吗?
Posted alfiy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开启SELINUX真的就那么难吗?相关的知识,希望对你有一定的参考价值。
我们都知道Linux的安全性要高于windows,可是你明白Linux到底比windows的安全性高在哪里吗?有人在部署环境的时候,开局两件事关防火墙、关Selinux,请问你把Linux的这两大重器都给关掉了,安全性的问题从何而言?
作为一名已经有了5年经验以上的老程序员的你可能会说,关防火墙关Selinux也不能怪我啊,当时我的师傅都是这么教我的啊。的确,现在各培训机构,网上的大量的“你抄我我抄你”教程中存在上来就关防火墙关se的问题,作为一名45岁仍在一线写程序的老哥是时候出来发表点看法了。
1.查看防火墙SELINUX的状态
systemctl status firewalld
如果出现下图说明你的防火墙是开启的。
2.防火墙的设置相对SELINUX要简单一些,只要你按照用什么开什么的原则开启防火墙的端口就行了。
开启防火墙端口的命令
firewall-cmd --zone=public --add-port=21/tcp --permanent
如果要想防火墙设置马上生效的话要重启一下防火墙。
firewall-cmd --reload
查看系统中防火墙开启了哪些端口使用以下命令
firewall-cmd --list-port
好了,请牢记上面四个命令,不要到用的时候你再去查,切记切记!
2.查看SELINUX的状态
getenforce
临时关闭SELINUX
setenforce 0
那么如何永久的关闭SELINUX呢?对不起,这个我不教。
我们可以使用临时关闭SELINUX或防火墙的方式来定位问题是出在防火墙上还是SELINUX上。
查看SELINUX的参数值
getsebool -a
哇,那么多参数?怎么看?那就加个过滤吧。
getsebool -a | grep httpd
是不是少了一些?
设置SELINUX参数值
setsebool -P allow_ftpd_full_access on
3.其实开启SELINUX一点都不可怕
用实例来说话吧。
我们还是继续前面设置FTP服务器的实例吧。
请各位移步在下的拙作。
由于在上面的教程中,我直接把SELINUX的相关设置告诉大家了,这次我给大家讲明白如果遇到了一个老师没讲过的应用场景怎么办呢?
先关闭SELINUX的两个参数,看看程序运行有什么报错吧。
setsebool -P ftpd_full_access off
setsebool -P tftp_home_dir off
好了,再查看一下SELINUX参数。
getsebool -a | grep ftp
重启一下vsftpd,再登录试试。
systemctl restart vsftpd
能够正常登录,但是新建文件夹时报错了。
确认一下是不是SELINUX的原因呢?
临时关闭一下SELINUX
setenforce 0
再重新登录FTP新建一个文件夹,成功了,再上传一个文件,删除文件,删除文件夹都没问题,说明就是SELINUX配置出现了问题。
登录FTP服务器使用下面的命令查看一下SELINUX吧
audit2allow -w -a
哇,屏幕上出现一大堆信息,一屏都显示不过来。
不要怕,字越多事越小,看这里。
运行一下setsebool -P ftpd_full_access 1
吧。
setsebool -P ftpd_full_access 1
运行成功后并没有输出任何消息,如果你不放心还可以使用
getsebool -a | grep ftpd_full_access
查看一下
ftpd_full_access
参数已经设置为on
了。
再次登录FTP,新建删除文件夹都没问题,上传下载也都没问题。
好了,到此我的“渔”就授完了,面对SELINUX你还那么害怕他吗?
总结一下。
-
部署环境时,可以先临时关闭SELINUX,验证你部署的环境没有问题。
-
打开SELINUX,如果此时出现了问题,基本就能定位问题出在SELINUX上。
-
使用命令
audit2allow -w -a
查看SELINUX中的建议信息,按照SELINUX的建议信息开关相关参数。 -
重新打开SELINUX,验证是否正常。
- 如果功能不正常,再使用
audit2allow -w -a
,认真阅读提示信息中的相关内容有针对性的去检查这些报错信息。
以上是关于开启SELINUX真的就那么难吗?的主要内容,如果未能解决你的问题,请参考以下文章