龙空技术网

Centos系统安全防护配置-Selinux、Firewall-cmd(2)

onme0 413

前言:

当前各位老铁们对“centos7安全组规则”都比较珍视,兄弟们都想要知道一些“centos7安全组规则”的相关文章。那么小编也在网络上网罗了一些关于“centos7安全组规则””的相关文章,希望我们能喜欢,朋友们一起来了解一下吧!

业务访问需求

在selinux采用默认设置enforcing且系统防火墙开启的场景下,把系统SSH服务的端口22修改成32222,另外,仅允许外部主机(192.168.1.3)可SSH远程访问该系统。

测试系统版本

[root@localhost ~]# cat /etc/redhat-release

CentOS Linux release 7.9.2009 (Core)

[root@localhost ~]#

以Server GUI方式安装操作系统;

业务访问需求实现步骤修改系统SSH服务的默认端口

修改SSH服务的配置文件/etc/ssh/sshd_config,在配置文件的第17行 #Port 22的下一行添加内容,Port 32222。

然而,重启SSH服务发现如下报错;

[root@localhost ~]# systemctl restart sshd.service

Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.

[root@localhost ~]#

使用命令journalctl –xe查看报错信息,如下图所示;

关键信息:

SELinux is preventing /usr/sbin/sshd from name_bind access on the tcp_socket port 32222. For complete SELinux messages run: sealert -l 2c7c7bbb-16e9-4b0e-abb5-d162433bcdfe

SELinux is preventing /usr/sbin/sshd from name_bind access on the tcp_socket port 32222

即,SELinux阻止了SSH服务(绑定的32222端口)地启动。

可根据提示“sealert -l 2c7c7bbb-16e9-4b0e-abb5-d162433bcdfe”详细查看SELinux阻止的安全审计日志,当然我们也可通过命令“sealert -a /var/log/audit/audit.log”查看SELinux所有的安全审计日志。

添加SELinux控制SSH服务的端口

#在selinux中查询SSH服的端口

[root@localhost ~]# semanage port -l | grep ssh

ssh_port_t tcp 22

[root@localhost ~]#

#在selinux中对SSH服务添加TCP端口32222

[root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 32222

#在selinux中查询SSH服务添加的端口

[root@localhost ~]# semanage port -l | grep ssh

ssh_port_t tcp 32222, 22

[root@localhost ~]#

添加完成后,再次尝试重启SSH服务,无报错。

系统防火墙添加SSH服务访问控制规则

#仅允许主机192.168.1.3访问该系统的TCP 32222端口

[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.3/32" port port="32222" protocol="tcp" accept'

success

[root@localhost ~]#

#使能配置的安全规则

[root@localhost ~]# firewall-cmd --reload

success

[root@localhost ~]#

#查看生效后的访问控制规则

[root@localhost ~]# firewall-cmd --zone=public --list-rich-rules

rule family="ipv4" source address="192.168.1.3/32" port port="32222" protocol="tcp" accept

[root@localhost ~]#

测试访问

经实际测试,仅主机192.168.1.3可SSH远程访问系统,其它主机则无法访问。

总结

结合实际的业务访问需求,总体说明SELinux和系统防火墙的配置,以便小伙伴根据此案例解决实际工作中遇到的问题。

以上总结,希望各位小伙伴有所收获,不足之处,欢迎各位小伙伴留言指正。

标签: #centos7安全组规则