加入收藏 | 设为首页 | 会员中心 | 我要投稿 宜春站长网 (https://www.0795zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

windows – 基于X次登录尝试失败的禁止IP地址?

发布时间:2021-05-25 02:30:28 所属栏目:Windows 来源:网络整理
导读:在X次登录尝试 Windows服务器失败后是否可以禁用IP地址?不是特定的帐户,我知道该怎么做,而是整个机器. 我们在试图猜测用户名的暴力攻击时会受到相当大的打击,所以这真的有助于减轻服务器的负担. 您可以使用powershell和任务管理器执行此操作.它可能不是完美

在X次登录尝试 Windows服务器失败后是否可以禁用IP地址?不是特定的帐户,我知道该怎么做,而是整个机器.

我们在试图猜测用户名的暴力攻击时会受到相当大的打击,所以这真的有助于减轻服务器的负担.

您可以使用powershell和任务管理器执行此操作.它可能不是完美的解决方案,但它运行良好,我在两个月内有大约100个被阻止的IP地址.我编写了脚本,从EventLog指定的事件中选择(“审计失败”).如果来自任何IP地址的登录失败很多,则会将其添加到名为“BlockAttackers”的防火墙规则(手动创建)中,该规则会阻止指定IP地址的任何流量.

PS1脚本:

$DT = [DateTime]::Now.AddDays(-1) # check only last 24 hours

$l = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DT | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} } # select Ip addresses that has audit failure 
$g = $l | group-object -property IpAddress  | where {$_.Count -gt 20} | Select -property Name # get ip adresses,that have more than 20 wrong logins

$fw = New-Object -ComObject hnetcfg.fwpolicy2 # get firewall object

$ar = $fw.rules | where {$_.name -eq 'BlockAttackers'} # get firewall rule named 'BlockAttackers' (must be created manually)

$arRemote = $ar.RemoteAddresses -split(',') #split the existing IPs into an array so we can easily search for existing IPs

$w = $g | where {$_.Name.Length -gt 1 -and  !($arRemote -contains $_.Name + '/255.255.255.255') } # get ip addresses that are not already in firewal rule. Include the subnet mask which is automatically added to the firewall remote IP declaration.

$w| %{$ar.remoteaddresses += ',' + $_.Name} # add IPs to firewall rule

在调度程序中创建任务并将触发器设置为事件4625(包括终端服务的Windows登录).但你可以设置触发器来运行,例如每小时两次,以避免不必要的加载服务器.

并在触发器运行powershell脚本之后.您还必须设置更高的权限才能运行此脚本,否则它将因安全性异常而失败.

您还可以将此脚本绑定到其他安全事件.

(编辑:宜春站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读