天天看點

Centos系統安全防護配置-Selinux、Firewall-cmd(2)

作者:onme0

業務通路需求

在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檢視報錯資訊,如下圖所示;

Centos系統安全防護配置-Selinux、Firewall-cmd(2)

關鍵資訊:

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和系統防火牆的配置,以便小夥伴根據此案例解決實際工作中遇到的問題。

以上總結,希望各位小夥伴有所收獲,不足之處,歡迎各位小夥伴留言指正。

繼續閱讀