centos7 限制ssh被不停攻击登录

要限制CentOS 7系统上不同IP地址和不同用户的攻击登录尝试,可以采用以下方法:

  1. 安装并配置fail2ban:
    fail2ban是一个通过扫描日志文件,并在检测到多次失败登录尝试后封禁IP地址的工具。

    • 首先,安装EPEL源:

      sudo yum install epel-release
      
    • 接下来,安装fail2ban:

      sudo yum install fail2ban
      
    • 创建fail2ban的本地配置文件:

      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
      
    • 编辑/etc/fail2ban/jail.local文件,设置[DEFAULT]部分的参数,例如:

      [DEFAULT]
      bantime = 3600
      findtime = 600
      maxretry = 3
      action = iptables-multiport[name=%(__name__)s, port="ssh", protocol=tcp]
      backend = auto
      usedns = warn
      enabled = true
      
    • 启动fail2ban服务并设置为开机自启动:

      sudo systemctl start fail2ban
      sudo systemctl enable fail2ban
      
  2. 禁用或限制root登录:
    修改 /etc/ssh/sshd_config 文件,找到 PermitRootLogin 这一行,把它改成下面这样:

    PermitRootLogin no
    

    或者限制只允许特定用户登录:

    AllowUsers user1 user2
    

    保存文件并重启SSH服务:

    sudo systemctl restart sshd
    
  3. 使用SSH密钥对而非密码进行认证:
    禁用基于密码的SSH登录可以有效减少暴力破解尝试。

    • 在客户端生成SSH密钥对:

      ssh-keygen
      
    • 把公钥复制到服务器上的~/.ssh/authorized_keys文件中:

      ssh-copy-id user@your_server_ip
      
    • 编辑 /etc/ssh/sshd_config 文件,找到 PasswordAuthentication 这一行,把它改成下面这样:

      PasswordAuthentication no
      
    • 保存文件并重启SSH服务:

      sudo systemctl restart sshd
      

通过以上方法,CentOS 7系统应该能在很大程度上抵御不同IP地址和不同用户的攻击登录尝试。

下面是每个参数的详细解释:

  • bantime: 封禁IP地址的时长(单位:秒)。例如,设置为3600表示被封禁的IP地址将在1小时(3600秒)后自动解封。
  • findtime: 用于指定在多长时间内检测失败登录尝试(单位:秒)。例如,设置为600表示在10分钟(600秒)内检查失败登录尝试。
  • maxretry: 允许的最大失败登录尝试次数。当在findtime指定的时间内,一个IP地址的失败登录尝试超过maxretry次时,该IP地址将被封禁。例如,设置为3表示允许最多3次失败登录尝试。
  • action: 当检测到恶意行为时执行的操作。在这个例子中,使用iptables-multiport操作来阻止对应IP地址的SSH连接请求。 %(__name__)s 是一个占位符,表示当前监控规则的名称。
  • port: 需要保护的端口。在这里,我们设定了 "ssh" 这个预定义值,表示默认的 SSH 端口(通常是22)。
  • protocol: 使用的网络协议(如:“tcp” 或 “udp”)。
  • backend: 指定日志处理方式。auto表示让fail2ban自动选择最合适的日志处理方式。
  • usedns: 用于指定是否通过DNS (域名系统) 解析来查找IP地址。warn表示在无法解析IP对应的主机名时发出警告,但不影响封禁功能。
  • enabled: 是否启用此规则。true表示启用,false表示禁用。

通过这些参数配置,fail2ban可以按照指定的规则来检测失败登录尝试并采取相应的封禁措施,从而提高服务器的安全性。

查看日志:

要查看由fail2ban拦截和封禁的日志,你可以查看/var/log/fail2ban.log文件。这个文件包含了关于被拦截的IP地址、时间以及解封操作等相关信息。

要实时查看fail2ban日志,可以使用以下命令:

sudo tail -f /var/log/fail2ban.log

该命令会持续打印日志文件的最新内容,直到你按下Ctrl + C停止。

此外,你还可以使用fail2ban-client命令来获取关于封禁情况的统计数据和其他信息。例如,以下命令列出了所有启用的监控规则:

sudo fail2ban-client status

要查看特定监控规则(如:sshd)的详细信息,可以使用以下命令:

sudo fail2ban-client status sshd

此命令会显示与sshd规则相关的统计数据,包括被封禁的IP地址列表。通过这些信息,你可以更好地了解服务器的安全状况,并及时采取措施应对潜在的威胁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不仙520

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值