标签:关闭selinux 客户端 fail 登录 配置 selinux。 debian unix sysconf
(一)了解SELinux是如何工作的(二)了解SELinux的上下文
(2.1)我们先在vms002主机上将http服务安装起来,并设置开机自动启动。
(2.2)由于SELinux服务还没有开启,所以可以设置开启的状态。
(2.3)使用# ps axZ | grep httpd命令可以查看httpd服务及其上下文的信息。
(2.4)因为我们知道/var/www/html/目录的的上下文是httpd_sys_content_t,如果我们在根下面创建一个/www目录,并设置192.168.26.102/www指向根下面创建的/www目录。
(2.5)接着我们在/etc/httpd/conf/目录下的httpd.conf配置文件中设置/www目录的Directory参数信息。
(2.6)我们发现/www目录的上下文是default_t,并不是和/var/www/html/目录的上下文httpd_sys_content_t一致。我们使用如下的命令修改上下文。
# chcon -R -t httpd_sys_content_t /www
(2.7)由于上下文是一致的,此时发现访问http://192.168.26.102/www/ 这个目录可以正常的进行显示。
(2.8)如果我们想恢复出厂默认值,则可以使用# restorecon -R /www/命令。
(2.9)如果我们想直接引用/var/www/html/目录的上下文,则可以使用reference参数。
(2.10)如果我们有时候具体的上下文记得不是很清楚,可以使用万能上下文来进行设置。
(2.11)如果我们想查询当前系统中所有上下文的信息,可以使用# semanage fcontext -l进行查询。
(2.12)例如像/var/www/html(/.*)?的正则表达式表示的就是/var/www/html目录及其下面的所有文件或者目录都可以进行匹配的。
(2.13)如果我们需要修改对应目录默认的上下文信息,可以使用# semanage fcontext -a -t public_content_t ‘/www(/.*)?‘命令,这样当使用# restorecon -R /www/命令恢复出厂默认值的时候,就会显示semanage命令设置的信息。
(2.14)如果我们想要删除默认的上下文设置,则可以使用# semanage fcontext -d -t public_content_t "/www(/.*)?
(三)了解SELinux的几种模式
(3.1)查看SELinux模式类型的命令是getenforce。
(3.2)enforcing----->强制模式,必须要满足SELinux的条件,不满足的话,则阻止访问且警报。
permissive----->允许模式,可以不满足SELinux的条件,不满足也可以访问,但是有警报。所以有时候我们访问不了服务器的时候,想想是不是SELinux导致的,可以临时关闭SELinux,就是切换到了permissive模式。
(3.3)由于setenforce命令只是临时切换,当我们重启机器之后就不在生效了,如果希望服务器重启后也生效,则可以在/etc/selinux/config配置文件中进行设置。记住:如果是设置成disable禁止的话,修改完之后必须要重启才能生效。
(3.4)由于/etc/sysconfig/selinux目录下的配置文件是指向/etc/selinux/config配置文件的软连接,所以也可以对这个文件进行修改。
(四)了解SELinux的布尔值
一个服务有很多功能,比如是否允许写,是否允许匿名写等等。是否开启这个功能,完全由配置文件来决定,但是如果SELinux功能启用后,那么决定服务是否启动的一个条件是SELinux也要允许服务启动。
(4.1)我们首先在vms002主机上安装vsftpd服务。
(4.2)接着在vms001主机上安装lftp和ftp的客户端软件。
(4.3)首先我们在vms001主机上通过客户端软件登录vms002主机的ftp服务器,并准备将本地的books.txt文件上传到ftp服务器。但是系统显示“put: Access failed: 550 Permission denied. (books.txt)”报错。
(4.4)首先检查配置文件/etc/vsftpd/vsftpd.conf中的匿名用户权限是否都有开启。
(4.5)开启匿名用户的权限后,发现仍然没有上传文件的权限,系统显示“put: Access failed: 553 Could not create file. (books.txt)”
(4.6)创建一个/var/ftp/xx目录,并且设置目录的属主和属组为ftp用户,此时在vms001主机的客户端上进入xx目录后,尝试上传文件,发现仍然有“put: Access failed: 553 Could not create file. (books.txt)”报错信息。
(4.7)我们查询到在vms002主机上关于ftp布尔值的参数ftpd_anon_write和ftpd_full_access均为off,在/etc/vsftpd/目录下的vsftpd.conf的配置文件中已经有注释提示布尔值设置问题。
(4.8)接着我们将ftpd_anon_write和ftpd_full_access参数设置为on
(4.9)如果我们希望设置的布尔值在系统重启后也能继续生效,可以加上-P的参数。
(4.10)总结:如果我们搭建了某个服务,从客户端上开始往服务器上传输文件,但是没法传输上去,应该从以下3条来检查:1.检查配置文件是否允许写;2.检查文件系统是否有权限;3.检查SELinux的权限设置情况,一般SELinux涉及的就是上下文和布尔值量方面。
(4.11)我们除了使用命令行来进行SELinux的设置,也可以使用图形化的界面方式来设置SELinux。
(4.12)SELinux对端口也是有设置上下文的。
(4.13)我们在httpd.conf配置文件中添加一个监听的端口808,此时将httpd服务重启后发现服务是无法正常启动的。
(4.14)此时我们可以查找模板文件在/etc/ssh/sshd_config文件中查看。
(4.15)给httpd服务设置808端口的上下文,此时httpd服务就可以正常的重启了。
【我的Linux,我做主!】企业军工级安全策略--SELinux实战
标签:关闭selinux 客户端 fail 登录 配置 selinux。 debian unix sysconf
原文地址:https://blog.51cto.com/13613726/2437794