修改SSH默认端口并配置防火墙限制SSH访问来源

在 centos 中,修改 SSH 默认端口并配置防火墙限制 SSH 访问来源是提升系统安全性的重要措施。以下是详细的操作步骤:

1. 修改 SSH 默认端口

默认情况下,SSH 使用 22 端口,这容易被攻击者扫描和攻击。修改为其他端口可以减少被扫描的风险。

操作步骤:

编辑 SSH 配置文件 /etc/ssh/sshd_config:

sudo vi /etc/ssh/sshd_config

找到以下行(默认是注释的):

#Port 22

取消注释并修改端口号(例如改为 2222):

Port 2222

注意:端口号范围是 1-65535,避免使用常见端口(如 80、443 等)。

保存并退出编辑器。

重启 SSH 服务使配置生效:

sudo systemctl restart sshd

验证新端口是否生效:

sudo ss -tuln | grep 2222

如果看到类似以下输出,说明配置成功:

LISTEN 0 128 0.0.0.0:2222 0.0.0.0:*

重要:在关闭当前 SSH 会话之前,先测试新端口是否可以连接:

ssh -p 2222 username@your_server_ip

确保可以正常登录后再关闭当前会话。

2. 配置防火墙限制 SSH 访问来源

通过防火墙限制 SSH 访问来源,可以只允许特定的 IP 地址或 IP 段访问 SSH 服务,进一步提升安全性。

操作步骤:

确保防火墙(firewalld)已启用并运行:

sudo systemctl enable firewalld

sudo systemctl start firewalld

添加新的 SSH 端口到防火墙:

sudo firewall-cmd --permanent --add-port=2222/tcp

移除默认的 SSH 端口(22):

sudo firewall-cmd --permanent --remove-service=ssh

限制 SSH 访问来源(例如只允许 192.168.1.0/24 网段访问):

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="2222" protocol="tcp" accept'

如果需要允许单个 IP 地址(如 203.0.113.10):

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.10" port port="2222" protocol="tcp" accept'

重新加载防火墙配置:

sudo firewall-cmd --reload

查看防火墙规则,确认配置是否生效:

sudo firewall-cmd --list-all

输出应包含类似以下内容:

ports: 2222/tcp

rich rules:

rule family="ipv4" source address="192.168.1.0/24" port port="2222" protocol="tcp" accept

3. 测试配置

从允许的 IP 地址尝试连接 SSH:

ssh -p 2222 username@your_server_ip

确保可以正常登录。

从不允许的 IP 地址尝试连接 SSH:

ssh -p 2222 username@your_server_ip

应该无法连接,提示超时或拒绝连接。

4. 其他注意事项

备份配置文件:在修改 SSH 或防火墙配置之前,建议备份相关文件:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

sudo cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak

多端口支持:如果需要同时支持多个 SSH 端口(如 22 和 2222),可以在 /etc/ssh/sshd_config 中添加多行 Port 配置:

Port 22

Port 2222

SELinux 配置:如果启用了 SELinux,需要允许新端口:

sudo semanage port -a -t ssh_port_t -p tcp 2222

总结

通过修改 SSH 默认端口和配置防火墙限制访问来源,可以显著提升 CentOS 系统的安全性,减少 SSH 服务被攻击的风险。建议定期审查防火墙规则和 SSH 配置,确保系统安全。