Комментарии 16
Еще можно парсить логи асы. В части SVC они достаточно информативны, их много и они имеют соответсвующие ID, что облегчает процесс получения только необходимых сообщений.
Такой вариант уменьшает шансы возникновения приступа паранойи: можно не переживать, что в системе где то лежит файл скрипта, в котором в открытом виде хранятся креденшелы для подключения к центральному мэ по SNMP. Не надо ничего выдумывать для получения логина пользователей. И не надо ничего запускать каждые 30 секунд, пусть даже через crone — достаточно натравить скрипт парсера на файлы логов и запустить его в фоне.
пример некоторых сообщений
Jan 23 2017 23:50:32: %ASA-6-734001: DAP: User privetkakdela, Addr 289.123.44.12, Connection AnyConnect: The following DAP records were selected for this connection: DfltAccessPolicy
Jan 23 2017 23:50:32: %ASA-6-113039: Group <GroupPolicy_CBS> User < privetkakdela> IP <289.123.44.12> AnyConnect parent session started.
Jan 22 2017 23:53:25: %ASA-4-113019: Group = CBS, Username = privetkakdela, IP = 289.123.44.12, Session disconnected. Session Type: AnyConnect-Parent, Duration: 0h:05m:28s, Bytes xmt: 12562, Bytes rcv: 921, Reason: User Requested
Такой вариант уменьшает шансы возникновения приступа паранойи: можно не переживать, что в системе где то лежит файл скрипта, в котором в открытом виде хранятся креденшелы для подключения к центральному мэ по SNMP. Не надо ничего выдумывать для получения логина пользователей. И не надо ничего запускать каждые 30 секунд, пусть даже через crone — достаточно натравить скрипт парсера на файлы логов и запустить его в фоне.
Изначально хотел сделать через парсинг логов, но когда настроил phplogcon чтобы посмотреть что и как там происходит — не увидел в логах ни единого упоминания об IP адресе, выдаваемого клиенту. Может плохо смотрел.
Креденшелы только на чтение. К тому же можно ограничить выдаваемые ветки для этого пользователя.
Креденшелы только на чтение. К тому же можно ограничить выдаваемые ветки для этого пользователя.
мда, а вот radius для AAA не катит?
Катит. Он и настроен. Вся авторизация проходит через Active Directory. Не пойму что Вы предлагаете.
Не пойму что Вы предлагаете.
Складывать логи радиуса в SQL?
нативно :)
но велосипеды выгодно отличаются простотой/удобством/скоростью
но велосипеды выгодно отличаются простотой/удобством/скоростью
Я писал скрипт на powershell который запускался когда пользователь логинится, в логе венды есть и адрес откуда пользователь пришёл.
В этом же скрипте не большое HTML тело, которое отправляется на почту пользователю и СБ, там видно кто, когда, откуда пришёл.
Завтра могу показать рыбу скрипта если надо
скрипт по крону, али на IAS изобразили, или в скуле какой-то триггер?
sql не используется.
шедулер на радиус сервере запускается как только в логе появляется событие, и запускает скрипт, который хватает это событие и раскладывает на нужные нам поля.
А дальше полученные переменные вставляются в симпатичную html страницу, которая отправляется почтой пользовалю + СБ
шедулер на радиус сервере запускается как только в логе появляется событие, и запускает скрипт, который хватает это событие и раскладывает на нужные нам поля.
вот так выглядит начало скрипта:
$event = Get-WinEvent -FilterHashtable @{Logname='Security';Id=6272} -MaxEvents 1
$eventXML = [xml]$Event.ToXml()
$ipaddrr = ((($eventXML.Event.EventData.Data) | ? Name -eq 'CallingStationID').("#text"))
$userx = ((($eventXML.Event.EventData.Data) | ? Name -eq 'SubjectUserSid').("#text"))
$mailx = (get-aduser $userx -properties *).mail
$namex = (get-aduser $userx -properties *).name
$logonname = (get-aduser $userx -properties *).SamAccountName
А дальше полученные переменные вставляются в симпатичную html страницу, которая отправляется почтой пользовалю + СБ
у нас безопасник настроил OSSIM (парсит логи ASA, которые ему пересылаются syslog-ом) грамотно:
On 2017-01-23 05:18:10 (UTC time) user dmitriy.budylin connected to prd environment via AnyConnect VPN from 93.хх.20.х2 as a member of GroupPolicy_AnyConnect_ADMINS access group
User: dmitriy.хххlin
Src: 93.хх.20.х2 — #внешний IP клиента
Group: GroupPolicy_AnyConnect_ADMINS
Alert detail:
* userdata2: GroupPolicy_AnyConnect_ADMINS
* userdata3: 10.хх.12.хх # выданный внутр. IP
* userdata1: ASA-4-722051
* protocol: tcp
* rep_rel_dst: 0
* context_id: 8639cea8-58b0-11e6-ххх-a71c969e53c4
* actions: 3
* reliability: 2
* plugin_sid: 722051
* rep_prio_src: 0
* priority: 1
* src_port: 0
* event_id: e12b11e6-81de-0015-5d03-2b0f4ce08bac
* src_ip: 93.хх.20.х2
* backlog_id: 5d032b0f-e12b-11e6-a547-00154ce75ab8
* plugin_id: 1636
* sensor: 10.х.5х.8
* username: dmitriy.budylin
* risk: 0
* rep_prio_dst: 0
* date: 2017-01-23 08:18:10
* type: event
* rep_rel_src: 0
* dst_port: 0
* dst_ip: 0.0.0.0
* policy_id: dd932f97-da98-хххх-425c-32be769455bc
Недавно делал менее красивое решение, но для заббикса.
В конце — ссылка на скрипт и шаблон, если кому нужно.
В конце — ссылка на скрипт и шаблон, если кому нужно.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Логирование VPN-подключений на Cisco ASA