修改默认SSH端口
# 编辑SSH配置文件
vim /etc/ssh/sshd_config
# 修改Port配置为任意高位端口,例如
Port 2222
# 重启SSH服务
systemctl restart sshd
禁用Root用户登录
# 禁用Root登录
PermitRootLogin no
# 创建新用户
adduser username
passwd username
实施基于密钥的登录
ssh-keygen -t rsa -b 4096
## 复制公钥到远程服务器:
ssh-copy-id user@server_ip
## 然后编辑SSH配置文件禁用密码登录:
PasswordAuthentication no
部署自动拦截工具
DenyHosts和Fail2Ban是两款常用的防爆破软件。它们通过监控SSH日志,自动屏蔽频繁尝试密码的IP地址。例如,在CentOS中安装和配置DenyHosts:
# 安装DenyHosts
yum install -y denyhosts
## 编辑其配置文件/etc/denyhosts.conf,修改关键参数:
SECURE_LOG = /var/log/secure
DENY_THRESHOLD_INVALID = 5
HOSTS_DENY = /etc/hosts.deny
## 启动服务即可:
systemctl start denyhosts
systemctl enable denyhosts
设置IP访问白名单
限制SSH访问仅允许特定的IP,可以从根源上杜绝大多数攻击。配置防火墙规则,例如通过iptables设置白名单:
iptables -A INPUT -p tcp -s trusted_ip --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
定期分析日志
定期查看SSH日志能够帮助发现潜在威胁。通过命令查看失败的登录尝试: 发现异常IP时可以手动将其加入黑名单,或进一步优化防护策略。
grep "Failed password" /var/log/secure