为了防止 CentOS 上的 SFTP 服务被暴力破解,您可以采取以下措施:
使用强密码策略:确保所有用户的密码都足够复杂,包括大小写字母、数字和特殊字符。避免使用常见密码或容易猜到的密码。
限制登录尝试次数:通过修改 SSH 配置文件(/etc/ssh/sshd_config),限制用户在一定时间内的登录尝试次数。例如,您可以设置以下选项:
MaxAuthTries 3
LoginGraceTime 10
这将限制每个用户在 10 秒内最多尝试 3 次登录。超过限制的用户将被暂时锁定。
启用公钥认证:使用 SSH 密钥对进行身份验证,而不是依赖密码。这可以大大提高安全性,因为攻击者需要破解私钥才能登录。要设置公钥认证,请按照以下步骤操作:
a. 在客户端生成 SSH 密钥对(如果尚未生成)。 b. 将客户端的公钥添加到服务器上用户的 authorized_keys 文件中。 c. 确保服务器上的 authorized_keys 文件权限设置正确(通常为 600)。 d. 在服务器的 SSH 配置文件(/etc/ssh/sshd_config)中启用公钥认证:
PubkeyAuthentication yes
Port 2222
然后重启 SSH 服务以应用更改。
使用 Fail2ban:Fail2ban 是一个用于监控日志文件并根据特定规则阻止恶意 IP 地址的工具。您可以配置 Fail2ban 以监视 SFTP 登录尝试,并在检测到多次失败尝试后阻止攻击者的 IP 地址。要安装和配置 Fail2ban,请按照以下步骤操作:
a. 安装 Fail2ban:
sudo yum install fail2ban
b. 创建一个新的 Fail2ban 配置文件,例如 /etc/fail2ban/jail.local,并添加以下内容:
[DEFAULT]
bantime = 600
findtime = 600
maxretry = 3
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/secure
这将设置 Fail2ban 在 10 分钟内检测到 3 次失败尝试后,阻止攻击者的 IP 地址 10 分钟。
c. 启动 Fail2ban 服务并设置为开机启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
通过采取这些措施,您可以大大提高 CentOS 上 SFTP 服务的安全性,降低被暴力破解的风险。