某天,對一台服務器修改sshd.config文件,指定SSH服務監聽端口,然后重啟ssh服務,提示失敗。
是什么原因引起的呢,因為SSH服務沒有獨立日志文件,需要查看 /var/log/messages文件 ,/var/log/secure文件和journalctl -xe 進行分析。
在/var/log/messages文件中沒有提示具體原因。
但是通過journalctl -xe 命令可以明確看到提示權限不夠。
再次通過查看/var/log/secure文件,也看到權限不夠的記錄
為什么只修改了SSH服務的監聽端口,就會提示權限不夠呢?
因為SELinux進行權限管控,
通過semanage port -l | grep ssh 查看SELinux規則中SSH服務的監聽端口,看到SELinux默認配置的SSH服務端口為22,與ssh服務配置文件中的端口不一致,所以無法啟動服務。
( 如果提示沒有semanage命令通過yum install policycoreutils-python -y進行安裝)
通過 audit2why分析SELinux日志,可以看到相關的攔截記錄
現在知道是因為SELinux的原因引起服務不能啟動,那怎么辦?
很簡單,修改SELinux規則就可以了。
可以通過semanage命令調整ssh服務的端口
現在再次重啟SSH服務,一切正常