SSH 暴力破解是常见的安全威胁,以下是几种有效的防护方法:
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
# 修改Port行(建议使用1024-65535之间的端口)
Port 2222 # 示例端口号
# 重启SSH服务
sudo systemctl restart sshd
注意:修改后需在防火墙开放新端口,并确保客户端连接时指定新端口。
# 在sshd_config中添加或修改
PermitRootLogin no
# 本地生成密钥对
ssh-keygen -t rsa -b 4096
# 将公钥上传到服务器
ssh-copy-id -p [端口] user@server_ip
# 在sshd_config中禁用密码认证
PasswordAuthentication no
# 安装fail2ban
sudo apt install fail2ban # Debian/Ubuntu
sudo yum install fail2ban # CentOS/RHEL
# 配置SSH防护(编辑或创建)
sudo nano /etc/fail2ban/jail.local
# 添加以下内容
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
# 在sshd_config中添加
AllowUsers user@192.168.1.* user@203.0.113.5
# 编辑hosts.allow文件
sudo nano /etc/hosts.allow
# 添加允许的IP
sshd: 192.168.1.0/24
sshd: 203.0.113.5
# 安装Google Authenticator
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo yum install google-authenticator # CentOS/RHEL
# 配置sshd_config
ChallengeResponseAuthentication yes
UsePAM yes
# 编辑PAM配置
sudo nano /etc/pam.d/sshd
# 添加 auth required pam_google_authenticator.so
sudo apt update && sudo apt upgrade openssh-server # Debian/Ubuntu
sudo yum update openssh-server # CentOS/RHEL
这些措施可以显著提高SSH服务的安全性,有效防止暴力破解攻击。