Так что я не собираюсь брать кредит на этот скрипт, но мне нужно немного помочь с этим. Я новичок в PS, поэтому, пожалуйста, извините глупые вопросы.Добавить исключение из сценария брандмауэра
Мне нужно добавить исключения к этому скрипту, например, «192.168»./"10.0." ассортимент.
Я знаю, что это будет примерно так: IF remoteaddress = "blah", затем пропустите.
Но я не знаю, как отформатировать его для PowerShell.
Если кто-то может показать мне или указать мне в правильном направлении?
#Checks for IP addresses that used incorrect password more than 10 times
#within 24 hours and blocks them using a firewall rule 'BlockAttackers'
#Check only last 24 hours
$DT = [DateTime]::Now.AddHours(-24)
#Select Ip addresses that has audit failure
$l = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DT | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }
#Get ip adresses, that have more than 10 wrong logins
$g = $l | group-object -property IpAddress | where {$_.Count -gt 10} | Select -property Name
#Get firewall object
$fw = New-Object -ComObject hnetcfg.fwpolicy2
#Get firewall rule named 'BlockAttackers'
$ar = $fw.rules | where {$_.name -eq 'BlockAttackers'}
#Split the existing IPs into an array so we can search it for existing IPs
$arRemote = $ar.RemoteAddresses -split(',')
#Only collect IPs that aren't already in the firewall rule
$w = $g | where {$_.Name.Length -gt 1 -and !($arRemote -contains $_.Name + '/255.255.255.255') }
#Add the new IPs to firewall rule
$w| %{
if ($ar.RemoteAddresses -eq '*') {
$ar.remoteaddresses = $_.Name
}else{
$ar.remoteaddresses += ',' + $_.Name
}
}
#Write to logfile
if ($w.length -gt 1) {
$w| %{(Get-Date).ToString() + ' ' + $_.Name >> '.\blocked.txt'}
}
Эй, спасибо за ответ. Я хотел бы использовать wail2ban, но ограничения GFIMAX не позволят мне развертывать его в массовом масштабе. (50+ серверов), поэтому мы просто хотим сделать очень простой скрипт. как и тот, который был опубликован. потому что мы знаем, какие IP-адреса собираются получить доступ к серверу, как только постоянное раздражение приходить утром и увидеть 5000 попыток на одном сервере. – Tr1cky
Я не уверен, что GFIMAX ограничивает вас, но я создал wail2ban для флота подобного масштаба. Первоначально он просто проверял каждые X минут, если было слишком много событий по параметрам, но я изменил его для прослушивания новых событий журнала, для простоты. В идеале это может быть услуга, но это было не то, что я успел сделать. Если вы прочитаете хотя README, вы сможете хотя бы увидеть логику в том, что она пытается сделать, а затем применить в своем собственном скрипте. – glasnt