blog by ficti0n: Аудит подключений по VPN к Forefront TMG

четверг, 18 августа 2016 г.

Аудит подключений по VPN к Forefront TMG

При подключении к VPN серверу в журнале "Безопасности" пишутся события с ID 6278 и 6272. Ранее я писал как с помощью "Планировщика задач" можно эти события отловить и выполнить powershell скрипт, который отправить информацию на почтовый адрес.
Ниже текст скрипта.

#Поиск последней записи в WIndowsEventLog по ID, и запись значения в переменную Body
$HostName = HostName

$allevent = Get-WinEvent  -FilterHashtable @{LogName="Security";ID=6278,6272} | select-object -first 1 -ErrorAction SilentlyContinue
if ($allevent)
{
foreach ($event in $allevent){
$result = $type = $null 
           
    {           
        6278 { $result = "Подключение установлено."    }                
        6272 { $result = "Подключение установлено."    }
    }           

 $AboutEvents = New-Object -TypeName PSObject -Property @{ 
                    UserName = $event.Properties[1].Value           
                    ServerIP = $event.Properties[8].Value 
                    UserIP = $event.Properties[9].Value  
                    NasPort = $event.Properties[14].Value
                    AuthType = $event.Properties[21].Value
                    EAPType = $event.Properties[22].Value   
                    Result = $result        
       
                }    

#$BodyL - переменная для записи в текстовый лог-файл#
$BodyL = "`n"+$AboutEvents.TimeCreated +"`t"+ $AboutEvents.UserName + "`t"+ $AboutEvents.ServerIP + "`t"+ $AboutEvents.UserIP + "`t"+ $AboutEvents.NasPort + "`t"+ $AboutEvents.AuthType + "`t"+ $AboutEvents.EAPType + "`t"+ $AboutEvents.Result
#$Body - переменная для тела письма при отправке сообщения на почту и Jabber
$subj="VPN подключение. Пользователь: '" + $AboutEvents.UserName +"'.  "+$AboutEvents.Result
$Body = "`nВремя: "+$event.TimeCreated +"`nИмя пользователя: "+ $AboutEvents.UserName +"`nIP сервера: "+ $AboutEvents.ServerIP  +"`nIP пользователя: "+ $AboutEvents.UserIP +"`nNas port: "+ $AboutEvents.NasPort   +"`nТип аутентификации: "+ $AboutEvents.AuthType  +"`nТип EAP: "+ $AboutEvents.EapType +"`nРезультат: "+ $AboutEvents.Result


#Описание переменных для отправки e-mail сообщения о инциденте

$FromAddress ="mailFrom@domen.ru"
$ToAddress ="
mailTo@domen.ru"
$MessageSubject ="Сервер "+$HostName+": "+$subj+". Event ID:"+ $event.ID
$MessageBody ="$subj `n$Body"
$SMTPMessage =New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody
###Sets the mail values
$user = "user"
$pass = "userPass"
$serverSmtp = "mail.
domen.ru"
$port = 587
$SMTPClient = New-Object Net.Mail.SmtpClient($serverSmtp, $port)
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($user, $pass);
$SMTPClient.EnableSSL = $true
$SMTPClient.Send($SMTPMessage)


#Запись данных в текстовый лог-файл 

$BodyL | out-file "C:\audit\ConnectVPN.txt" -append
}
}

Комментариев нет:

Отправить комментарий