查看 SELinux状态及关闭SELinux

SELinux是一种安全子系统
它能控制程序只能访问特定文件
使用setup工具 进入图形化关闭
或者修改
/etc/sysconfig/selinux 文件
SELINUX=disabled
防火墙打开
使用
service iptables start
或则
/etc/init.d/iptables start

 

查看SELinux状态:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态

SELinux status:                 enabled

2、getenforce                 ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0                  ##设置SELinux 成为permissive模式

                              ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

 

--------------------------------------------------

 

SELinux 开启情况下更改SSH端口

一台VPS重装了CentOS 7 系统,按照习惯,装好系统第一件事就是更改SSH的端口并禁止root登陆。但今天这么做的时候发现出了点小问题,放狗搜了一把之后还是解决了这个问题。

 

就我用过的Linux系统来说,SSH服务器端配置文件在/etc/ssh/sshd_config,用vim更改之后,重启服务提示下列信息:

[root@CentOS7 ~]# service sshd restart
Redirecting to /bin/systemctl restart sshd.service
Job for sshd.service failed because a configured resource limit was exceeded. See "systemctl status sshd.service" and "journalctl -xe" for details.

按照提示执行systemctl status sshd 提示:

[root@CentOS7 ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: resources) since Sat 2017-01-14 02:51:58 EST; 16s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 10214 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 764 (code=exited, status=0/SUCCESS)

Jan 14 02:51:58 CentOS7 systemd[1]: sshd.service never wrote its PID file. Failing.
Jan 14 02:51:58 CentOS7 systemd[1]: Failed to start OpenSSH server daemon.
Jan 14 02:51:58 CentOS7 systemd[1]: Unit sshd.service entered failed state.
Jan 14 02:51:58 CentOS7 systemd[1]: sshd.service failed.
[root@MC ~]# vim /etc/ssh/sshd_config
[root@MC ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: resources) since Sat 2017-01-14 02:52:40 EST; 18s ago
Docs: man:sshd(8)
man:sshd_config(5)
Process: 10219 ExecStart=/usr/sbin/sshd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 764 (code=exited, status=0/SUCCESS)

Jan 14 02:52:40 CentOS7 systemd[1]: sshd.service never wrote its PID file. Failing.
Jan 14 02:52:40 CentOS7 systemd[1]: Failed to start OpenSSH server daemon.
Jan 14 02:52:40 CentOS7 systemd[1]: Unit sshd.service entered failed state.
Jan 14 02:52:40 CentOS7 systemd[1]: sshd.service failed.

看提示,我猜应该是SELinux的原因,执行sestatus之后,果然:

[root@CentOS7 ~]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 28

既然被SELinux禁止,那我添加一条规则不就好了,放狗搜到这条命令:

semanage port -a -t ssh_port_t -p tcp 2222

其中2222是想更换的SSH端口,回车之后需要等待几秒,如果提示semanage命令不存在,则:

yum -y install policycoreutils-python

安装之后就好了。

安装完成之后重启SSHD服务就行了。

 

如果重启之后连不上,可能是被防火墙给屏蔽了,放行对应的端口即可:

firewall-cmd --permanent --zone=public --add-port=2222/tcp

重启之后验证一下:

semanage port -l | grep ssh

netstat -tulpn | grep 2222

ss -tnlp|grep ssh

也玩过不少VPS了,利用系统自带模板重装系统之后,默认开启SELinux和Firewalld的还是第一次见,虽然我更喜欢Debian8 ,但是从开发和运维角度,我现在更多的是放弃我喜欢的Debian而逼着自己去熟悉CentOS,毕竟我是写PHP的,LNMP架构中L用得更多的是CentOS而不是Debian。

 

posted on 2017-09-12 17:00  &大飞  阅读(1307)  评论(0编辑  收藏  举报

导航