20150726

Логирование информации о проходящем через Juniper SRX трафике.

Точка съема информации.
Снимать информацию о трафике можно как минимум с двух точек:
-- Правила файрвола, уровень [edit firewall ] 
Тут видно просто факт прохождение пакета через фильтр, действие примененное к пакету, ip адреса и порты, протокол и  интерфейс.

-- Правила политик безопасности, уровень [edit security policies] 
На этом уровне можно получить гораздо больше информации. Здесь можно посмотреть номер сессии, ip адреса до и после ната, имена политик безопасности и пр.

Формат логов файрвола.
На syslog сервер логи приходят в таком формате:
Jul 24 04:50:49 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   D  tcp 1.1.1.1 9.9.9.9 53291 33434 (1 packets)
Jul 24 04:50:50 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   R udp 2.2.2.2 9.9.9.9 53971 5060
 (1 packets)
Jul 24 04:50:52 srx srx PFE_FW_SYSLOG_IP: FW: fe-0/0/3.0   A  tcp 3.3.3.3 9.9.9.9  47321 443 (1 packets)

* Код (тип) сообщения = PFE_FW_SYSLOG_IP:, удобно использовать для настройки фильтров на syslog сервере.
* Указатель на источник сообщений = FW:, сообщения которые были получены в соответствии с настройками фильтров файрвола.
* Интерфейс на котором висит фильтр = fe-0/0/3.0.
* Действие = D, R, A (discard, reject, accept).
* Протокол = tcp, udp, ospf и пр.
* Адрес источника = 1.1.1.1 
* Адрес назначение = 9.9.9.9
* Порт источника = 53291
* Порт назначения = 33434
* Количество пакетов = (1 packets), не припомню что бы было больше.

Формат логов политик безопасности.
Сообщения от политик безопасности могут быть трех видов:
-- создание сессии, указатель RT_FLOW_SESSION_CREATE
-- запрет сессии, указатель RT_FLOW_SESSION_DENY
-- закрытие сессии, указатель RT_FLOW_SESSION_CLOSE

Логи снимались с srx на котором работает AppFW. 
AppFW добавляет в лог несколько полей.

RT_FLOW_SESSION_CREATE
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:35.408+03:00 srx RT_FLOW:  RT_FLOW_SESSION_CREATE: session created 10.90.80.50/55871->87.240.131.99/80 junos-http 9.9.9.9/29419->87.240.131.99/80 src-nat-rule1 None 6 DEBUG-DENY-ANY-LOG VPN PX 21949 N/A(N/A) gr-0/0/0.14 HTTP INCONCLUSIVE No

###Стандартные поля###
* Код (тип) сообщения = RT_FLOW
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Адрес источника после nat (nat-source-address) = 9.9.9.9
* Порт источника после nat (nat-source-port) = 29419
* Адрес назначение после nat (nat-destination-address) = 87.240.131.99
* Порт назначение после nat (nat-destination-port) = 80
* Имя правила по которому делался source nat (src-nat-rule-name) = src-nat-rule1
* Имя правила по которому делался destination nat (dst-nat-rule-name) = None
###N/A т.к. в данном случае srx не делает destination nat###
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Номер сессии (session-id-32) = 21949
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
###Поля AppFW###
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = INCONCLUSIVE
###srx пока не разобрался что это за приложение и ставит тип incocnclusive т.к. прошел только syn пакет###
* Шифрование (encrypted) = No

RT_FLOW_SESSION_DENY
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:35.461+03:00 srx RT_FLOW: RT_FLOW_SESSION_DENY: session denied 10.90.80.50/55871->87.240.131.99/80 junos-http 6(0) DEBUG-DENY-ANY-LOG VPN PX HTTP VKONTAKTE N/A(N/A) gr-0/0/0.14 No appfw reject

* Код (тип) сообщения = RT_FLOW
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Тип icmp (icmp-type)  = (0), указывает на тип icmp пакета который был отброшен.
###Если это был не icmp пакет, то в этом поле всегда будет стоять "(0)"###
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = VKONTAKTE
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
* Шифрование (encrypted) = No
* Указатель на то как и кем была отвергнута сессия (reason) = appfw reject
###В данном случае сессию закрыл AppFW действием reject.  Без  AppFW, в этом поле будет стоять просто deny или reject###

RT_FLOW_SESSION_CLOSE
На syslog сервер логи приходят в таком формате:
2015-07-25T10:49:37.211+03:00 srx RT_FLOW: RT_FLOW_SESSION_CLOSE:  session closed TCP RST: 10.90.80.50/55871->87.240.131.99/80 junos-http 9.9.9.9/29419->87.240.131.99/80 src-nat-rule1 None 6 DEBUG-DENY-ANY-LOG VPN PX 21948 3(440) 7(6830) 2 HTTP VKONTAKTE N/A(N/A) gr-0/0/0.14 No

* Причина закрытия сессии (reason) = ТCP RST, с обоих сторон был получен RST (??).
В данном случае RST послал srx.
###Остальные возможные причины см. ниже.###
* Адрес источника (source-address) = 10.90.80.50
* Порт источника (source-port) = 55871
* Адрес назначение (destination-address) = 87.240.131.99
* Порт назначение (destination-port) = 80
* Имя приложения (service-name) = junos-http
* Адрес источника после nat (nat-source-address) = 9.9.9.9
* Порт источника после nat (nat-source-port) = 29419
* Адрес назначение после nat (nat-destination-address) = 87.240.131.99
* Порт назначение после nat (nat-destination-port) = 80
* Имя правила по которому делался source nat (src-nat-rule-name) = src-nat-rule1
* Имя правила по которому делался destination nat (dst-nat-rule-name) = None
###N/A т.к. в данном случае srx не делает destination nat###
* Номер протокола (protocol-id) = 6, см. /etc/protocols (6 - tcp, 17 - udp, 1 - icmp)
* Имя политики безопасности (policy-name) = DEBUG-DENY-ANY-LOG
* Зона из которой идет трафик (source-zone-name) = VPN
* Зона в которую идет трафик (destination-zone-name) = PX
* Номер сессии (session-id-32) = 21949
* Количество пакетов от источника (packets-from-client) = 3
* Количество байт от источника (bytes-from-client) = (440)
* Количество пакетов от назначения (packets-from-server) = 7
* Количество байт от назначени (bytes-from-server) = (6830)
* Длительность сессии в секундах (elapsed-time) = 2
* Тип приложения (application) = HTTP
* Тип вложенного приложения (nested-application)  = VKONTAKTE
* Имя пользователя (username) = N/A
* Принадлежность пользователя  (roles) = N/A
###N/A т.к. на srx не настроено source-identity###
* Интерфейс через который пришел трафик (packet-incoming-interface) = gr-0/0/0.14
* Шифрование (encrypted) = No

Причины закрытия сессии:
** idle Timeout - сессия закрылась по таймауту. По дефолту таймаут для tcp составляет 1800 секунд, для udp 60 секунд.
** unset - невозможно открыть сессию из-за проблем на control-plane, например кончилась память.
** ТCP FIN - получен RST.
** ТCP FIN - получен FIN.
** response received - был полчен ответ, напримен был получен icmp-reply на ранее посланный icmp-echo.
** ICMP error - пришел icmp пакет с сообщение об ошибке.
** aged out - вышло время жизни активной сессии.
** ALG - сессию закрыло ALG.
** HA
** auth 
** IDP - внутренняя ошибка idp.
** synproxy failure 
** synproxy limit
** parent closed - закрылась родительская сессия.
** CLI - сессию закрыли комендой из cli.
** CP NACK
** CP delete
** policy delete
** fwd session
** multicast route change
** first path reroute, session recreated
** source NAT allocation failure
** other
** error create IKE pass-through template 
** IKE pass-through chils session ageout 
** sess timeout on panding state
** unknown - хз, чё=) 


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

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