Улучшенные сообщения о сканировании портов от ISA Server 2004-2006

Итак, обещанный сценарий, с комментариями 🙂 О том как его использовать, можно прочитать здесь.

Читать далее…

Опубликовано в ISA. Метки: , , , . 3 комментария »

Улучшенные сообщения о сканировании портов от ISA Server 2004-2006

Не знаю как вам, а мне уже давно надоело получать от своего 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, благодаря которому я теперь получаю вот такие вот, полезные сообщения 🙂

Читать далее…

Опубликовано в ISA. Метки: , , , . Комментарии к записи Улучшенные сообщения о сканировании портов от ISA Server 2004-2006 отключены

Вебкаст о практическом применении PowerShell

welcome

Приглашаю всех желающих посмотреть вебкаст 🙂

Краткий обзор возможностей 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, Learn, PowerShell, Practice, Scripting, Tips. 1 Comment »

Get-ISARules

Кроме резервирования правил иногда бывает полезно делать отчеты по ним, для того чтобы представить начальству, или чтобы самому получше ориентироватся.Точное определение правила в отчете не нужно, достаточно показать основные характеристики и краткое описание.

Эта функция берет на вход объект $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

Тут лучше поиграться самостоятельно 🙂

Опубликовано в ISA, PowerShell, Practice, Scripting. Комментарии к записи Get-ISARules отключены

ISA — Export rules

По мотивам предидущей записи, набросал скриптик для регулярного экспорта конфига, и рулезов отдельно:

#---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

Get-ISAArray

Сейчас решал одну задачку по ISA, решил поработать с ним через PoSH, вот чего нарисовал походу 🙂

Небольшая функция для подключения к ISA Server:

Function Get-ISAArray ([string]$Name="*")
{
	$Root = New-Object -comObject "FPC.Root"
	if( $root.Arrays.Count -gt 0)
	{
		$root.Arrays|?{$_ -like $name}
	}
	else
	{
		if ($name -eq "*")
		{
			$name = read-host "Enter name of the ISA array"
		}
		$root.Arrays.Connect($name)
	}
}

Подключаемся:

$isa = Get-ISAArray MyISAServer

Смотрим что можно с ним сотворить:

PS D:\PowerShell> $isa | Get-Member


   TypeName: System.__ComObject#{cfceec97-7bc5-4890-aa02-35e4e48304a6}

Name                           MemberType Definition
----                           ---------- ----------
ApplyChanges                   Method     void ApplyChanges (bool, bool)
CancelWaitForChanges           Method     void CancelWaitForChanges ()
CanImport                      Method     bool CanImport (IUnknown, bool)
DiscardChanges                 Method     void DiscardChanges ()
...
AdminSecurity                  Property   IFPCAdminSecurity AdminSecurity () {get}
AdminVersionMajor              Property   int AdminVersionMajor () {get}
AdminVersionMinor              Property   int AdminVersionMinor () {get}
Alerts                         Property   IFPCAlerts Alerts () {get}
ArrayPolicy                    Property   IFPCArrayPolicy ArrayPolicy () {get}
Cache                          Property   IFPCCache Cache () {get}
ChangesMade                    Property   bool ChangesMade () {get}
...

Ну и дальше делаем чегонить нужное… 🙂

PS D:\PowerShell> $isa.ArrayPolicy.PolicyRules | Format-Table name, enabled, descr* -AutoSize

Name                                 Enabled Description
----                                 ------- -----------
DNS query                               True Разрешает DNS запросы в интернет. Необходимо для
Microsoft Newsgroups                   False Необходимо для возможности чтения групп новостей
Exchange 2003 Publishing SMTP Server    True Необходимо для отправки/получения почты в/из инт
Windows messenger                      False Временное правило для тестирования Windows Messe
Lotus Sametime                         False Временное правило для тестирования Lotus Sametim
...

Вроде доступно всё тоже что и через гуевую консоль и даже чуть больше 🙂

PS: Необязательно работать с самого ISA сервера, достаточно поставить консоль управления на клиентском компе, и указать имя сервера при вызове Get-ISAArray

Опубликовано в ISA, PowerShell, Practice, Scripting. Комментарии к записи Get-ISAArray отключены