SSH 服务器通常使用默认的 22 端口,这使得攻击者可以轻松识别并试图攻击 SSH 服务。为了增加服务器的安全性,建议更改默认的 SSH 端口。本文将向您展示如何在 Linux 系统上更改 SSH 服务端口。
1. 检查开放端口
在更改 SSH 端口之前,首先应检查所需的新端口是否已经被其他服务占用。您可以使用以下命令来检查某个端口是否已被占用:
sudo netstat -tuln | grep [PORT_NUMBER]
将 [PORT_NUMBER]
替换为您想要使用的新端口号。如果没有输出结果,表示该端口是空闲的。
2. 编辑 SSH 配置文件
SSH 服务器的配置文件通常位于 /etc/ssh/sshd_config
。使用您喜欢的文本编辑器(例如 vi
或 nano
)打开该文件:
sudo vi /etc/ssh/sshd_config
找到文件中的以下行:
#Port 22
取消注释(删除前面的 #
),并将 22
修改为您想要使用的新端口号。例如,将 SSH 端口更改为 4444:
Port 4444
保存并退出文件。
3. 修改防火墙规则
如果您的服务器使用了防火墙(如 iptables
或 firewalld
),您需要允许新的 SSH 端口通过防火墙。
对于 firewalld
:
sudo firewall-cmd --permanent --zone=public --add-port=4444/tcp
sudo firewall-cmd --reload
对于 iptables
:
sudo iptables -A INPUT -p tcp --dport 4444 -j ACCEPT
sudo service iptables save
sudo service iptables restart
4. 重启 SSH 服务
更改完成后,需要重启 SSH 服务以使更改生效:
sudo systemctl restart sshd
在 CentOS 或 RHEL 系统上,您可能需要使用以下命令:
sudo service sshd restart
5. 测试新端口
在进行这些更改后,请确保测试新端口,以确认 SSH 服务正常运行。
您可以使用以下命令通过新端口连接到服务器:
ssh -p 4444 username@your_server_ip
如果能够成功连接,说明更改已正确应用。
6. 更新现有的防火墙规则(可选)
如果您不再需要通过默认的 22 端口访问 SSH,可以将防火墙规则中的端口 22 删除:
对于 firewalld
:
sudo firewall-cmd --permanent --zone=public --remove-port=22/tcp
sudo firewall-cmd --reload
对于 iptables
:
sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT
sudo service iptables save
sudo service iptables restart
总结
通过更改默认的 SSH 端口,您可以增加服务器的安全性并减少潜在的攻击风险。虽然这并不是一个完全的安全解决方案,但它可以有效地降低被扫描和攻击的可能性。记得在更改端口后,更新所有相关配置和规则以确保服务的正常运行。