在Linux服务器上更改SSH端口是增强安全性的一种常见做法,可以帮助避免默认22端口被扫描和攻击。下面是一些关于修改SSH端口的步骤:
1. 修改SSH配置文件
打开SSH配置文件,使用文本编辑器(如vi或nano)编辑SSH配置文件/etc/ssh/sshd_config:
sudo vi /etc/ssh/sshd_config
找到Port行并修改,(如果没有,添加一行):
#Port 22
修改为你想使用的新端口号,例如2222:
Port 2222
确保删除行首的#以取消注释此行。
保存并退出编辑器,在vi中,可以按 Esc 键,然后输入:wq保存并退出。
2. 更新防火墙设置,修改服务器的防火墙规则,允许新的SSH端口号通过。
使用UFW
如果你的系统使用的是ufw(Uncomplicated Firewall):
添加新端口
sudo ufw allow 2222/tcp
删除旧端口(可选)
sudo ufw delete allow 22/tcp
重启UFW
sudo ufw reload
使用iptables
如果你的系统使用的是iptables:
添加新规则
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
保存iptables规则
不同的Linux发行版可能使用不同的命令来保存iptables规则:
# 对于基于Debian的系统
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
# 对于基于RedHat的系统
sudo service iptables save
删除旧规则(可选)
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
3. 重启SSH服务,更改配置文件后,必须重启SSH服务以应用更改。
在某些系统中,服务名称可能是ssh而不是sshd:
sudo service ssh restart
4. 测试新的SSH端口
使用新端口进行SSH连接测试:
ssh -p 2222 username@your_server_ip
5. 更新SELinux配置(可选)
如果系统启用了SELinux,可能需要更新SELinux策略以允许SSH使用新端口:
sudo semanage port -a -t ssh_port_t -p tcp 2222
如果semanage命令不可用,可以通过以下命令安装相关工具:
sudo yum install policycoreutils-python-utils # 对于CentOS/RHEL
sudo apt install policycoreutils-python-utils # 对于Debian/Ubuntu
注意事项
选择非标准端口:选择一个不常用的端口(如1024到65535之间的端口),以降低被攻击的风险。
避免常见端口:不要选择像80、443等常见端口,以免与其他服务发生冲突。
保持会话:在测试新端口之前,不要关闭现有的SSH会话,以防止无法连接的情况。
备份配置文件:在修改之前备份原始sshd_config文件,以便在出错时恢复。
检查开放端口:使用netstat或ss命令确认新端口是否处于监听状态:
sudo netstat -tuln | grep 2222
或者:
sudo ss -tuln | grep 2222
请注意,无论哪种 Linux 发行版,修改 SSH 端口后需要确保防火墙已经配置允许 SSH 连接到新端口,如果是云服务器, 还需要注意 是否从安全组放行端口。通过以上步骤,你应该能够成功地在Linux服务器上修改SSH远程连接的端口。