Итак, обещанный сценарий, с комментариями
О том как его использовать, можно прочитать здесь.
Итак, обещанный сценарий, с комментариями
О том как его использовать, можно прочитать здесь.
Не знаю как вам, а мне уже давно надоело получать от своего ISA Server’а оповещения о сканировании портов в виде совершенно неинформативного сообщения такого вида:
ISA Server detected a port scan attack from Internet Protocol (IP) address 77.41.105.127. A well-known port is any port in the range of 1-2048.
Что это за IP адрес, чей он? Может быть это гугл пытается проиндексировать что то хитрым способом, а может это китайские скрипт киддис веером пытаются отсканировать пол интернета в поисках подходящей уязвимости? Были ли уже сканирования с этого IP или этого блока ранее? Когда? Может быть Вася Пупкин, пользуясь динамическими адресами местного провайдера пытается запутать следы?
С другой стороны и игнорировать такую информацию тоже не хочется. Интересно знать заранее если кто-то интересуется моей сетью и конфигурацией файрволла
Поэтому я всё таки собрался, и написал относительно простенький скриптик на PowerShell, благодаря которому я теперь получаю вот такие вот, полезные сообщения
Приглашаю всех желающих посмотреть вебкаст
Краткий обзор возможностей Windows PowerShell и практические примеры применения
20 февраля 2008 г. (среда)
12:00 — 13:00 (GMT+03:00 Москва)
Рекомендуемая аудитория: ИТ-специалистыВ этой веб-трансляции мы будем говорить о том, чем Powershell может помочь ИТ-специалисту в его повседневной работе. На протяжении веб-трансляции основное внимание будет уделено приобретению практических навыков работы с Powershell.
Так же будут освещены следующие темы:
• Обзор полезных дополнений для PowerShell от сторонних производителей
• Работа с COM объектами на примере управления ISA Server
• Способы использования системных .Net объектов
• Примеры работы с WMI подсистемой
• Сравнение скриптов PowerShell с аналогами на VB Script
Докладчики:
Андрей Бешков – эксперт по информационной инфраструктуре (Microsoft)
Василий Гусев – ваш покорный слуга
В касте будет много интересных (надеюсь
) примеров скриптов для решения разных административных задач. Ну и кроме того буду рад ответить на вопросы
Записываться тут – перед началом трансляции вам придет ссылка для подключения. Рекомендую подключиться немного раньше начала, чтобы при необходимости установить Live Meeting 2007 Client, либо поставить его заранее.
Кроме резервирования правил иногда бывает полезно делать отчеты по ним, для того чтобы представить начальству, или чтобы самому получше ориентироватся.Точное определение правила в отчете не нужно, достаточно показать основные характеристики и краткое описание.
Эта функция берет на вход объект $isa (isa array, можно получить с помощью Get-IsaArray)
function Get-ISARules($Isa)
{
$Isa.ArrayPolicy.PolicyRules |
?{!$_.system} |
select Order, Name, Enabled,
@{Name="Rule Type"; Expression={switch($_.type){0 {"Access"}; 1 {"Server Publishing"}; 2 {"Web Publishing"}}}},
@{Name="Action"; Expression={if($_.action -eq 0){"Allow"}else{"Deny"}}}, EnableLogging, Description
}
Используем так:
PS D:\PowerShell> $isa = Get-ISAArray "IsaServ" PS D:\PowerShell> $rules = Get-ISARules $isa PS D:\PowerShell> $rules | ConvertTo-Html | Set-Content report.html PS D:\PowerShell> .\report.html
Или можно просто посмотреть в консоли:
PS D:\PowerShell> $rules | Format-Table -AutoSize
Order Name Enabled Type Action EnableLogging Description
----- ---- ------- ---- ------ ------------- -----------
1 ALLOW ALL False Access Allow True Временное правил...
2 RDP-Temporary False Publishing Allow True Временное правил...
3 Allow Remote Management True Access Allow True Позволяет подклю...
4 RemoteTS-Test True Access Allow True Подключение к уд...
5 DNS query True Access Allow True Разрешает DNS за...
...
Ну и естественно можно всячески фильтровать и изменять вывод, например:
PS D:\PowerShell> $rules |where {$_.enabled}| Format-Table name, description
Тут лучше поиграться самостоятельно
По мотивам предидущей записи, набросал скриптик для регулярного экспорта конфига, и рулезов отдельно:
#---ExportIsaRules.ps1---#
$ExportFolder="E:\ISA_Backups"
$date = get-date -f "yyyy-MM-dd"
$comp = $env:computername
$root = New-Object -com "fpc.root"
$ISA = $root.Arrays.Connect("")
$ISA.ExportToFile("$ExportFolder\$comp-Full-$date.xml",0,"","Full export, $date")
$ISA.ArrayPolicy.ExportToFile("$ExportFolder\$comp-Policy-$date.xml",0,"","Policy export, $date")
#---ExportIsaRules.ps1---#
Суем скрипт в ExportIsaRules.ps1, а в шедулер добавляем:
C:\WINDOWS\system32\windowspowershell\v1.0\powershell.exe -NoProfile -NonInteractive -Command E:\Scripts\BackupISALogs.ps1