普通网友 2024-04-02 13:18 采纳率: 0%
浏览 99

ssh怎么超出失败次数后禁止登录

SSH
 工作端口为2021。
 只允许用户user01,密码ChinaSkill23登录到router。其他用户(包括root)不能登录,创建一个新用户,新用户可以从本地登录,但不能从ssh远程登录。
 通过ssh登录尝试登录到RouterSrv,一分钟内最多尝试登录的次数为3次,超过后禁止该客户端网络地址访问ssh服务。
 记录用户登录的日志到/var/log/ssh.log,日志内容要包含:源地址,目标地址,协议,源端口,目标端口。

  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2024-04-02 13:18
    关注

    下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    要实现以上要求,可以按照以下步骤操作:

    1. 只允许用户user01登录到router,禁止其他用户登录

      • 修改SSH配置文件,一般为/etc/ssh/sshd_config,找到#PermitRootLogin行并将其修改为PermitRootLogin no,禁止root用户登录。
      • 找到#AllowUsers行并将其修改为AllowUsers user01,只允许user01用户登录。
      • 重启SSH服务使配置生效。
    2. 创建新用户,仅允许本地登录,禁止SSH远程登录

      • 使用adduser命令创建新用户,例如newuser
      • 修改新用户的登录shell,使用usermod命令将新用户的shell修改为/bin/false,这样新用户无法登录。
      • 如果需要该用户在本地可以登录,可以将shell修改为其他能够登录的shell,如/bin/bash
    3. 限制每分钟最多尝试登录次数,超过后禁止客户端访问SSH服务

      • 安装fail2ban软件。在大多数Linux发行版中可以使用包管理工具直接安装,如apt install fail2banyum install fail2ban
      • 配置fail2ban,编辑/etc/fail2ban/jail.conf文件,添加以下内容:
      [sshd]
      enabled = true
      maxretry = 3
      findtime = 1m
      bantime = 1h
      
      • maxretry表示最大尝试登录次数,这里设置为3次。
      • findtime表示查找登录失败的时间窗口,这里设置为1分钟。
      • bantime表示禁止访问的时间,这里设置为1小时。
      • 重启fail2ban服务使配置生效。
    4. 记录用户登录日志到/var/log/ssh.log

      • 修改SSH配置文件/etc/ssh/sshd_config,找到#SyslogFacility行并将其修改为SyslogFacility AUTH,使SSH日志输出到认证日志文件。
      • (可选)修改rsyslog配置文件/etc/rsyslog.conf,取消注释或添加以下行使认证日志写入单独的日志文件(在此例中是/var/log/ssh.log):
      auth.* /var/log/ssh.log
      
      • 重启SSH服务和rsyslog服务使配置生效。

    注意:在操作前请备份相关配置文件,以免操作失误导致系统不可用。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月2日