修改SSH服务监听端口,引起服务启动失败原因分析
某天,对一台服务器修改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服务,一切正常
油腻中年人,左手盘串,右手鼠标