Table of Contents
JN0-332: Junos Security Policies
Необходимые знания по Security Policies:
- Identify the concepts, benefits and operation of security policies
- Policy types (default policy)
- Policy components
- Policy ordering
- Host inbound traffic examination
- Transit traffic examination
- Scheduling
- Rematching
- ALGs
- Address books
- Applications
- Demonstrate knowledge of how to configure, monitor and troubleshoot security policies
- Policies
- ALGs
- Address books
- Custom applications
- Monitoring and troubleshooting
Политика безопасности (Security Policies) это фактически инструкция для srx что делать с транзитным трафиком который подпадает под критерии описанные в политике.
Тезисно политики безопасности:
- “Направление действия” политики определяется директивами from-zone и to-zone и в терминологии juniper это называется контекст.
- У каждой политики должны быть критерии
- У каждой политики должно быть действие которое выполняется при условии выполнения всех критериев.
- Порядок политик в контексте важен, политики применяются сверху вниз.
Составные части политики безопасности
Критерии политики
- source-address & source-address-excluded
- destination-address & destination-address-excluded
- application
- source-identity
Действия политики
- permit - разрешаем трафик и создаем сессии.
- firewall-authenication - прикручиваем авторизацию для доступа к какому-либо сервису (JN0-332: Firewall User Authentication).
[edit security policies from-zone TRUST to-zone UNTRUST] root@bluebox# set policy TR-TO-UNT-P-ALL then permit firewall-authentication ? Possible completions: + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > pass-through Pass-through firewall authentication settings > web-authentication Web-authentication settings
- tunnel - заворачиваем попавший под политику трафик в ipsec туннель (policy based ipsec).
[edit security policies from-zone TRUST to-zone UNTRUST] root@bluebox# set policy TR-TO-UNT-P-ALL then permit tunnel ? Possible completions: + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups ipsec-group-vpn Enable dynamic IPSEC group with name ipsec-vpn Enable VPN with name pair-policy Policy in the reverse direction, to form a pair
- destination-address
[edit security policies from-zone TRUST to-zone UNTRUST] root@bluebox# set policy TR-TO-UNT-P-ALL then permit destination-address ? Possible completions: <[Enter]> Execute this command + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups drop-translated Drop the policy if NAT translated drop-untranslated Drop the policy if NAT untranslated | Pipe through a command
- application-services - передаем трафик на анализ системе предотвращения вторжений. Заворачиваем трафик в антивирус, в системы филтрации контента и сайтов.
[edit security policies from-zone TRUST to-zone UNTRUST] root@bluebox# set policy TR-TO-UNT-P-ALL then permit application-services ? Possible completions: > application-firewall Application firewall services + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups gprs-gtp-profile Specify GPRS Tunneling Protocol profile name gprs-sctp-profile Specify GPRS stream control protocol profile name idp Intrusion detection and prevention redirect-wx Set WX redirection reverse-redirect-wx Set WX reverse redirection > uac-policy Enable unified access control enforcement of policy utm-policy Specify utm policy name
- reject - дропаем трафик и отправляем icmp unrechable для UPD трафика и RST для TCP трафика.
- deny - тихо дропаем трафик.
- log - записываем информацию о создании и о закрытии сессии (session-init, session-close).
- count - считаем статистику по сессии которую можно увидеть выполнив команду “> show security policy”
Адресные книги
В критерии политик нельзя писать произвольный ip адрес или доменное имя. Сначала надо все нужные адреса внести в адресную книгу.
Адресная книга настраивается или на уровне [edit security address-book]
или на уровне [edit security zones security-zone ZONE-NAME address-book].
Адреса могут задаваться в виде dns имени или в виде ip адреса.
dns-name
set security address-book UNTRUST-BOOK address operator.leadermt.ru dns-name operator.leadermt.ru ipv4-only
ip-address
set security address-book global address MSK-08-PAYSYS-NET 10.13.35.48/28
Global policy
Есть возможность писать глобальные политики безопасности не привязываясь к контексту. Нужно это для того, что бы можно было для нескольких контекстов написать одну глобальную политику, а не писать для каждого контекста отдельную политику.
Настраивается на уровне [edit security policies global], контекст не указываем а дальше все как обычно.
host-inbound-traffic
Если трафик предназначен непосредственно самому устройству, то разрешенные протоколы и сервисы описываются в директиве host-inbound-traffic на уровне [edit security zones security-zone ZONE-NAME interfaces INTERFACE-NAME].
Можно разрешить следующие сервисы:
{primary:node0}[edit security zones security-zone vpn interfaces st0.31] admin@srx650-master# set host-inbound-traffic system-services ? Possible completions: all All system services any-service Enable services on entire port range bootp Bootp and dhcp relay-agent service dhcp Dynamic Host Configuration Protocol dhcpv6 Enable Dynamic Host Configuration Protocol for IPv6 dns DNS service finger Finger service ftp FTP http Web management service using HTTP https Web management service using HTTP secured by SSL ident-reset Send back TCP RST to IDENT request for port 113 ike Internet Key Exchange lsping Label Switched Path ping service netconf NETCONF service ntp Network Time Protocol service ping Internet Control Message Protocol echo requests r2cp Enable Radio-Router Control Protocol service reverse-ssh Reverse SSH service reverse-telnet Reverse telnet service rlogin Rlogin service rpm Real-time performance monitoring rsh Rsh service snmp Simple Network Management Protocol service snmp-trap Simple Network Management Protocol traps ssh SSH service telnet Telnet service tftp TFTP traceroute Traceroute service webapi-clear-text Webapi service using http webapi-ssl Webapi service using HTTP secured by SSL xnm-clear-text JUNOScript API for unencrypted traffic over TCP xnm-ssl JUNOScript API service over SSL
и протоколы:
{primary:node0}[edit security zones security-zone vpn interfaces st0.31] admin@srx650-master# set host-inbound-traffic protocols ? Possible completions: all All protocols bfd Bidirectional Forwarding Detection bgp Border Gateway Protocol dvmrp Distance Vector Multicast Routing Protocol igmp Internet Group Management Protocol ldp Label Distribution Protocol msdp Multicast Source Discovery Protocol nhrp Next Hop Resolution Protocol ospf Open Shortest Path First ospf3 Open Shortest Path First version 3 pgm Pragmatic General Multicast pim Protocol Independent Multicast rip Routing Information Protocol ripng Routing Information Protocol next generation router-discovery Router Discovery rsvp Resource Reservation Protocol sap Session Announcement Protocol vrrp Virtual Router Redundancy Protocol
Если сервис или протокол разрешен, то пакет принимается действием permir.
Если сервис или протокол не разрешен, то пакет молча отбрасывается действием deny.
Default security policy
System-default security policy
По дефолту srx запрещает прохождение транзитного трафика между зонами безопасности (для бранченвых srx чутка не так, см ниже).
Дефолтное поведение описывается на уровне [edit security policies default-policy] и может быть deny-all или permit-all.
Factory-default security policy at branch srx
На бренчовых по дефолту настроены для транзитного трафика след. политики безопасности:
- trust-to-trust - разрешен весь трафик внутри зоны trust (это проверить надо, не помню что бы так было)
- trust-to-untrust - разрешен весь трафик из зоны trust в зону untrust
- untrust-to-trust - запрещен весь трафик из зоны untrust в зону trust
Policy ordering
Тезисно:
- Порядковый номер политики безопасности имеет значение
- Новая политика встает в конец списка, но перед system-default security policy.
- Менять позицию политики в списке можно командой insert
- system-default security policy всегда последняя.
Application
ALG
ALG (Application layer gateway) это механизм который позволяет “дооткрывать” новые сессии для трафика определенного типа (например ftp, sip,), что бы впустить обратный трафик.
Список сервисов под которые есть ALG:
admin@msk-01-srx2# run show security alg status ALG Status : DNS : Enabled FTP : Disabled H323 : Enabled MGCP : Enabled MSRPC : Disabled PPTP : Enabled RSH : Enabled RTSP : Enabled SCCP : Enabled SIP : Disabled SQL : Enabled SUNRPC : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
- DNS - dns alg в трафике ищет ответ от dns сервера и если ответ пришел, то сразу закрывает сессию и не ждет 60 секунд стандартного таймаута для udp.
- FTP - ftp alg следит за командами PORT (переход в активный режим - клиент сообщает серверу к какому адресу и к какому порту надо подключаться) и PASV (переход в пассивный режим - сервер говорит клиенту к какому адресу и порту надо подключаться, код ответа 227) и временными политиками безопасности разрешает создание сессии с адресами и портами которые передавались в командах. При работе через ipv6 alg ftp дополнительно следит за командами EPRT, EPSV и 229 ответом.
- H.323 - h323 alg просматривает сообщения протокола, ищет информацию о используемых адресах и портах и открывает дырки в политиках для обратного трафика. Если используется NAT, то alg правит сообщения и меняет в них приватные адреса на публичные.
- IKE - ike alg мониторит ike трафик между клиентом и сервером и разрешает только разовый обмер IKE Phase2 между каждой парой сервера и клиента. По дефолту ike alg отключено.
Policy scheduling
Тезисно:
- Расписание определяет когда политики безопасности активна.
- Если расписания нет, то политика всегда активна.
- К одной политике безопасности можно применять только одно расписание.
- Одному расписанию может подчиняться несколько политик безопасности.
Расписание настраивается на уровне [edit schedulers].
[edit schedulers] admin@kem-01-srx2# set scheduler TEST-SCH ? Possible completions: + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups > daily Everyday; can be overwritten by specific weekday description Text description of scheduler > friday Every Friday > monday Every Monday > saturday Every Saturday > start-date Start date and time ([YYYY-]MM-DD.hh:mm) > sunday Every Sunday > thursday Every Thursday > tuesday Every Tuesday > wednesday Every Wednesday
И применяется на уровне настройки самой политики безопасности командой scheduler-name:
admin@kem-01-srx2# set security policies from-zone trust to-zone untrust policy 1-TR-TO-UNT-P-TSGW-RESCUE ? Possible completions: + apply-groups Groups from which to inherit configuration data + apply-groups-except Don't inherit configuration data from these groups description Text description of policy > match Specify security policy match-criteria scheduler-name Name of scheduler > then Specify policy action to take when packet match criteria
Способы задания времени действия политики:
- Time Slot - указывается время начала и окончания действия политики безопасности в формате [YYYY-]MM-DD.hh:mm.
Расписание срабатывает разово, если не указать год, то скорее всего срабатывать будет раз в год (не проверял). - Daily - указывается время в формате hh:mm, можно указать конкретный день когда должно расписание сработать. Можно указать все дни и часть дней исключить.
Policy rematching
По дефолту, после внесения изменений в политику безопасности, srx не проверяет уже разрешенные сессии на соответствие поправленной политики безопасности. Трафик по сессиям бегает. Что бы srx перепроверял уже работающие сессии надо дать команду:
[edit] admin@kem-01-srx2# set security policies policy-rematch
Таблица действий.
Действие | Rematchin | |
---|---|---|
Включено | Выключено | |
Удалили политику безопасности | Дропаются все существующие сессии разрешенные удаленной политикой |
|
Поменяли действие политики с permit на deny или reject | Дропаются все существующие сессии которые были разрешенные измененной политикой | Сессии продолжают работать |
Поменяли адреса в политике | Существующие сессии еще раз прогоняются через измененную политику | Сессии продолжают работать |
Поменяли application в политике | Существующие сессии еще раз прогоняются через измененную политику | Сессии продолжают работать |
Важно помнить, что при включенном policy-rematch сессии перепрогоняются только через политики безопасности которые были изменены. Если перед какой-либо разрешающей политикой, командой insert, вставить “уточняющую” запрещающую политику, то сессии, которые которые были ранее разрешены, продолжат работать. Новая зарещающая политика будет применять только к вновь создаваемым сессиям.
Applications
Application это один из критериев политики безопасности с помощью которого описываются порты и протоколы по которым бегает трафик. Есть пачка предустановленных приложений, посмотреть их моно командой show configuration groups junos-defaults applications.
Вывод:
admin@kem-01-srx2> show configuration groups junos-defaults applications # # File Transfer Protocol # application junos-ftp { application-protocol ftp; protocol tcp; destination-port 21; } # # Trivial File Transfer Protocol # application junos-tftp { application-protocol tftp; protocol udp; destination-port 69; } # # Real Time Streaming Protocol # application junos-rtsp { application-protocol rtsp; protocol tcp; destination-port 554; } ... etc ...
В таком же стиле можно писать свои application, объединять их в сеты и т.д.:
admin@kem-01-srx2> show configuration applications application VIPNET-PORT { term t1 protocol udp destination-port 55777; } application TCP-6810-6820 { term t1 protocol tcp destination-port 6810-6820; } application TCP-7000-7030 { term t1 protocol tcp destination-port 7000-7030; } application junos-syslog inactivity-timeout 6; application TCP-9443 { term t1 protocol tcp destination-port 9443; } application TCP-48999 { protocol tcp; destination-port 48999; } application-set SET-ZENIT-POS-PORTS { application TCP-7000-7030; application TCP-6810-6820; }