在CentOS上配置SSH防火墙规则,通常涉及使用firewalld
或iptables
。以下是使用这两种方法的详细步骤:
firewalld
启动并启用 firewalld
服务:
sudo systemctl start firewalld
sudo systemctl enable firewalld
允许SSH连接:
sudo firewall-cmd --permanent --add-service=ssh
重新加载防火墙规则:
sudo firewall-cmd --reload
验证SSH端口是否开放:
sudo firewall-cmd --list-all
你应该能看到类似以下的输出,表明SSH端口(默认是22)已经开放:
services: ssh
ports: 22/tcp
iptables
允许SSH连接:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
保存 iptables
规则:
CentOS 7及以上版本使用 firewalld
,但如果你使用的是CentOS 6或其他不支持 firewalld
的版本,可以使用以下命令保存规则:
sudo service iptables save
重启 iptables
服务:
sudo service iptables restart
验证SSH端口是否开放:
sudo iptables -L -n | grep 22
你应该能看到类似以下的输出,表明SSH端口(默认是22)已经开放:
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
更改默认SSH端口:为了增加安全性,可以考虑更改SSH的默认端口(22)。编辑 /etc/ssh/sshd_config
文件,找到 Port
行并修改为你选择的端口号,然后重启SSH服务:
sudo systemctl restart sshd
限制SSH访问:可以通过编辑 /etc/hosts.deny
和 /etc/hosts.allow
文件来限制SSH访问。例如,只允许特定IP地址访问SSH:
sudo echo "sshd: 192.168.1.1" >> /etc/hosts.deny
sudo echo "sshd: 192.168.1.2" >> /etc/hosts.allow
使用密钥认证:为了进一步提高安全性,建议使用SSH密钥认证而不是密码认证。生成密钥对并将其添加到远程服务器的 ~/.ssh/authorized_keys
文件中。
通过以上步骤,你可以在CentOS上配置SSH防火墙规则,并采取其他安全措施来保护你的SSH服务。