为了防止 CentOS SFTP 服务器遭受暴力破解攻击,您可以采取以下措施:
使用强密码策略:确保所有用户都使用强密码,包括大写字母、小写字母、数字和特殊字符。您可以通过修改 /etc/pam.d/system-auth
和 /etc/pam.d/password-auth
文件来实现这一目标。
限制登录尝试次数:编辑 /etc/pam.d/sshd
文件,添加以下内容以限制登录尝试次数:
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600
这将限制每个用户在 5 分钟内尝试登录失败次数不超过 5 次。超过限制的用户将被锁定 600 秒(10 分钟)。
启用公钥认证:使用 SSH 密钥对进行身份验证,而不是依赖密码。这将大大提高安全性。要配置公钥认证,请按照以下步骤操作:
a. 在客户端生成 SSH 密钥对(如果尚未生成):
ssh-keygen -t rsa -b 4096
b. 将客户端的公钥添加到服务器上的 ~/.ssh/authorized_keys
文件中。
c. 确保服务器上的 ~/.ssh
目录和 authorized_keys
文件具有正确的权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
d. 编辑服务器上的 /etc/ssh/sshd_config
文件,确保以下设置已启用:
PubkeyAuthentication yes
PasswordAuthentication no
e. 重启 SSH 服务以应用更改:
systemctl restart sshd
更改默认 SSH 端口:将 SSH 服务的默认端口从 22 更改为其他端口,以减少自动攻击工具的成功率。要更改端口,请编辑 /etc/ssh/sshd_config
文件并修改 Port
设置,然后重启 SSH 服务。
使用 Fail2ban:Fail2ban 是一个用于防止暴力破解攻击的工具,它可以监控日志文件并根据配置的规则阻止恶意 IP 地址。要安装和配置 Fail2ban,请按照以下步骤操作:
a. 安装 Fail2ban:
yum install fail2ban
b. 创建一个新的 Fail2ban 配置文件:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
c. 编辑 /etc/fail2ban/jail.local
文件,启用 SFTP 监控并配置阻止策略。例如:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 5
d. 启动 Fail2ban 服务并设置为开机启动:
systemctl start fail2ban
systemctl enable fail2ban
通过采取这些措施,您可以大大提高 CentOS SFTP 服务器的安全性,降低遭受暴力破解攻击的风险。