Cygwin SSHd 自动阻止登录失败

ANa*_*imi 20 automation security windows-server-2008 ssh audit

我在 Windows Server 2008 机器上运行带有 SSH 守护进程的 Cygwin。我在查看事件查看器时注意到,在过去一周左右的时间里,来自不同 IP 的每秒多达 5 到 6 次失败的登录尝试(蛮力)。

如何自动阻止这些 IP,而不是手动一个一个地阻止它们?

谢谢,艾哈迈德

Eva*_*son 34

几年前,我编写了一个程序来阻止 IP 地址,就像您几年前所要求的那样,但它是为作为受雇工作的客户而做的。由于我今晚有一些“空闲”时间,所以我选择从头开始重新实现整个事情,编写一些有用的文档,并且通常使它成为一个可展示的程序。因为我从很多人那里听说这将是一件很方便的事情,所以它似乎值得花时间。希望您和社区的其他成员可以从中受益。


Windows sshd_block

sshd_block 是一个 VBScript 程序,它充当 WMI 事件接收器以接收由 sshd 记录的 Windows 事件日志条目。它解析这些日志条目并按如下方式对其进行操作:

  • 如果 IP 地址尝试使用标记为“立即禁止”的用户名登录,则该 IP 地址将立即被禁止。

  • 如果 IP 地址尝试登录的频率高于给定时间段内允许的登录频率,则该 IP 地址将被禁止。

与重复登录尝试相关的“立即禁止”用户名和阈值可在脚本的“配置”部分进行配置。默认设置如下:

  • 立即禁止用户名 - 管理员、root、来宾
  • 允许登录尝试 - 120 秒内 5 次(2 分钟)
  • 禁令持续时间 - 300 秒(5 分钟)

一秒钟内,所有在禁令期间被禁止的 IP 地址都会被取消禁止(通过从路由表中删除黑洞路由)。


您可以在此处下载该软件并可以在此处浏览存档。

编辑:

截至 2010 年 1 月 20 日,我已经更新了代码以支持在 Windows Vista / 2008 / 7 / 2008 R2 上使用“高级防火墙”,通过创建防火墙规则(这更符合“fail2ban”的行为)。我还添加了一些额外的匹配字符串来捕获“无效用户”而不是“非法用户”的 OpenSSH 版本。

  • 我很欣赏您所做的工作,并认为这是一个绝妙的主意,但是是否有可能对其进行修改以与 RDP 尝试一起使用?我的 Windows 服务器不断受到在线攻击和帐户锁定,尽管半有效确实需要解锁才能让该用户再次工作,打开备份用户帐户以再次锁定。 (2认同)