在CentOS上安全使用SSH,可以遵循以下步骤和建议:
确保你的CentOS系统是最新的,以修复已知的安全漏洞。
sudo yum update -y
将SSH端口更改为非标准端口(例如2222)可以减少自动化攻击的风险。
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
Port 22
改为:
Port 2222
保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
为了防止root用户直接通过SSH登录,可以在sshd_config文件中禁用root登录。
sudo vi /etc/ssh/sshd_config
找到并修改以下行:
PermitRootLogin yes
改为:
PermitRootLogin no
保存并退出编辑器,然后重启SSH服务:
sudo systemctl restart sshd
使用公钥认证代替密码认证可以提高安全性。
在本地机器上生成SSH密钥对:
ssh-keygen -t rsa -b 4096
将生成的公钥复制到服务器的~/.ssh/authorized_keys文件中:
ssh-copy-id user@remote_host
编辑/etc/ssh/sshd_config文件,确保以下行未被注释:
PubkeyAuthentication yes
PasswordAuthentication no
保存文件并退出编辑器,然后重启SSH服务以应用更改:
sudo systemctl restart sshd
使用firewalld或iptables配置防火墙规则,仅允许特定IP地址或网络访问SSH端口。
sudo firewall-cmd --permanent --zone=public --add-port=2222/tcp
sudo firewall-cmd --reload
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save
sudo service iptables restart
Fail2Ban可以防止暴力破解攻击。
sudo yum install fail2ban -y
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
编辑Fail2Ban配置文件/etc/fail2ban/jail.local,添加以下内容:
[ssh]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 600
确保SSH软件包是最新的,以修复已知的安全漏洞。
sudo yum update openssh-server -y
定期检查SSH日志文件/var/log/secure,监控异常登录尝试。
sudo tail -f /var/log/secure
如果系统启用了SELinux,确保它正确配置以增强安全性。
sudo setenforce 1
sudo vi /etc/selinux/config
将SELINUX=enforcing设置为SELINUX=enforcing。
通过以上步骤,你可以显著提高CentOS系统上SSH的安全性。