插件窝 干货文章 Linux 怎么防止 ssh 被暴力破解

Linux 怎么防止 ssh 被暴力破解

sudo sshd 端口 SSH 428    来源:    2025-04-13

防止 SSH 暴力破解的 Linux 安全措施

SSH 暴力破解是常见的安全威胁,以下是几种有效的防护方法:

1. 修改默认端口

# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config

# 修改Port行(建议使用1024-65535之间的端口)
Port 2222  # 示例端口号

# 重启SSH服务
sudo systemctl restart sshd

注意:修改后需在防火墙开放新端口,并确保客户端连接时指定新端口。

2. 禁用root登录

# 在sshd_config中添加或修改
PermitRootLogin no

3. 使用密钥认证替代密码

# 本地生成密钥对
ssh-keygen -t rsa -b 4096

# 将公钥上传到服务器
ssh-copy-id -p [端口] user@server_ip

# 在sshd_config中禁用密码认证
PasswordAuthentication no

4. 启用fail2ban

# 安装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

5. 限制登录IP(可选)

# 在sshd_config中添加
AllowUsers user@192.168.1.* user@203.0.113.5

6. 使用TCP Wrappers

# 编辑hosts.allow文件
sudo nano /etc/hosts.allow

# 添加允许的IP
sshd: 192.168.1.0/24
sshd: 203.0.113.5

7. 启用两步验证(可选)

# 安装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

8. 定期更新SSH

sudo apt update && sudo apt upgrade openssh-server  # Debian/Ubuntu
sudo yum update openssh-server  # CentOS/RHEL

实施建议

  1. 先保持一个活动会话,测试新配置后再断开
  2. 组合使用多种防护措施效果更佳
  3. 定期检查/var/log/auth.log或journalctl -u sshd查看登录尝试

这些措施可以显著提高SSH服务的安全性,有效防止暴力破解攻击。