centos

如何防止CentOS SFTP被暴力破解

小樊
47
2025-07-12 16:36:46
栏目: 智能运维

为了防止 CentOS 上的 SFTP 服务被暴力破解,您可以采取以下措施:

  1. 使用强密码策略:确保所有用户的密码都足够复杂,包括大小写字母、数字和特殊字符。避免使用常见密码或容易猜到的密码。

  2. 限制登录尝试次数:通过修改 SSH 配置文件(/etc/ssh/sshd_config),限制用户在一定时间内的登录尝试次数。例如,您可以设置以下选项:

MaxAuthTries 3
LoginGraceTime 10

这将限制每个用户在 10 秒内最多尝试 3 次登录。超过限制的用户将被暂时锁定。

  1. 启用公钥认证:使用 SSH 密钥对进行身份验证,而不是依赖密码。这可以大大提高安全性,因为攻击者需要破解私钥才能登录。要设置公钥认证,请按照以下步骤操作:

    a. 在客户端生成 SSH 密钥对(如果尚未生成)。 b. 将客户端的公钥添加到服务器上用户的 authorized_keys 文件中。 c. 确保服务器上的 authorized_keys 文件权限设置正确(通常为 600)。 d. 在服务器的 SSH 配置文件(/etc/ssh/sshd_config)中启用公钥认证:

PubkeyAuthentication yes
  1. 更改默认 SSH 端口:将 SSH 服务的默认端口从 22 更改为其他端口,以减少自动攻击工具的成功率。要更改端口,请在 /etc/ssh/sshd_config 文件中添加或修改以下行:
Port 2222

然后重启 SSH 服务以应用更改。

  1. 使用 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 服务的安全性,降低被暴力破解的风险。

0
看了该问题的人还看了