基本上所有 VPS 商家的 SSH 端口都是默认的 22,有时候就会出现被暴力 SSH 破解的问题,为了解决这个问题,比较方便快捷的方法就是修改默认的 SSH 端口。今天老王照常修改 SSH 端口时,提示错误:error: Bind to port 1024 on 0.0.0.0 failed: Permission denied.,这个错误是由于 selinux 导致的,本文分享下解决办法。
一、问题描述与原因
如何修改 SSH 端口可以参考这篇教程:《Linux修改SSH默认22端口,指定SSH端口的方法》
今天老王在一台 Linode 的 VPS 上修改完 sshd_config 后(CentOS 7 系统),在操作 service sshd restart
重启 SSH 服务时,提示错误:
Job for sshd.service failed because the control process exited with error code. See "systemctl status sshd.service" and "journalctl -xe" for details.
运行 journalctl -xe
查看错误日志如下:
-- Unit sshd.service has begun starting up. sshd[12291]: error: Bind to port 1024 on 0.0.0.0 failed: Permission denied. sshd[12291]: error: Bind to port 1024 on :: failed: Permission denied. sshd[12291]: fatal: Cannot bind any address. systemd[1]: sshd.service: main process exited, code=exited, status=255/n/a systemd[1]: Failed to start OpenSSH server daemon.
这个问题是由于 selinux 引起的,需要修改 selinux 中的 SSH 端口。
二、解决办法
解决办法就是修改 selinux 中的 SSH 端口,解决步骤如下:
1、安装修改工具
yum -y install policycoreutils-python
2、查看 selinux 中的 SSH 端口(输出默认的端口 22)
semanage port -l | grep ssh
3、新增目标端口
semanage port -a -t ssh_port_t -p tcp 1024
4、重启 SSH 服务
service sshd restart
这样就可以重启 SSH 服务成功了,SSH 端口也就修改成功了。