Необходимые знания по Firewall User Authentication:
Firewall User Authentication (FUA) это механизм который позволяет запрашивать имя пользователя и пароль перед тем как предоставить доступ к определенному сервису.
C помощью FUA можно разрешить или запретить доступ конкретному пользователю или группе пользователей.
Пользователи могут аутентифициваться с помощью:
Общая схема работы.
Доступно два метода запроса пользователя и пароля:
Этот тип аутентификации применим для telnet, ftp и http трафика.
Когда пользователь обращается к telnet, ftp или http ресурсу srx (в случае если удовлетворяются условия политики безопасности) перехватывает сессию и передает пользователю форму для для ввода имени и пароля. Если аутентификация прошла успешно srx разрешает прохождения трафика через политику безопасности, весь последующий трафик с таким же ip адресом источника так же сможет проходить через srx. Если трафик не ходил в течении 10 минут (дефолтное значение) процесс аутентификации надо будет повторить, значение таймаута можно изменить в пределах от 10 минут до 24 часов (1440 мин.).
[edit access] root@srx# show profile FUA-PROFILE { client test-client { firewall-user { password "$9$wXY2aZGikqf"; ## SECRET-DATA } } session-options { client-idle-timeout 11; } }
[edit access] root@srx# show ... firewall-authentication { pass-through { default-profile FUA-PROFILE; http { banner { login "Come on,try it"; success "BRO!"; fail "HA-HA! LOooser!!"; } } } }
[edit security zones security-zone VPN] root@srx# show interfaces { gr-0/0/0.99 { host-inbound-traffic { system-services { ping; http; } } } }
[edit security policies from-zone VPN to-zone PX] root@srx# show ... policy VPN-TO-PX-PERMIT-LENTA { match { source-address test-net; destination-address lenta.ru; application [ junos-icmp-ping junos-http ]; } then { permit { firewall-authentication { pass-through { access-profile FUA-PROFILE; } } } } } ...
Так же в этом разделе конфигурации можно указать конкретных пользователей которым надо разрешить доступ.
root@srx> show security firewall-authentication users Firewall authentication data: Total users in table: 1 Id Source Ip Src zone Dst zone Profile Age Status User 1 10.20.20.2 VPN PX FUA-PROF 0 Success test-clien
root@srx> show security firewall-authentication history History of firewall authentication data: Authentications: 2 Id Source Ip Date Time Duration Status User 0 10.20.20.2 2015-08-03 18:39:35 0:01:02 Failed 1 10.20.20.2 2015-08-03 18:40:53 0:01:47 Success test-client
root@srx> clear security firewall-authentication users identifier 1 root@srx> show security firewall-authentication users Firewall authentication data: Total users in table: 0
Этот тип аутентификации применим для любого типа трафика.
Перед началом работы пользователь сам должен пройти процедуру аутентификации на srx.
Пользователь по http обращается к srx, получает форму ввода имени и пароля и вводит свои данные. Если все правильно, то srx разрешает прохождение трафика через политику безопасности к которой применяется данный тип аутентификации. Доступ открывается для ip адреса с которого прошла аутентификация. Если трафик не ходил в течении 10 минут (дефолтное значение) процесс аутентификации надо будет повторить, значение таймаута можно изменить.
[edit access] admin@srx# show profile WA-PROFILE { client test-client2 { firewall-user { password "$9$MSSWNb4oGiqfZU/C"; ## SECRET-DATA } } client test-client3 { firewall-user { password "$9$Nf-YoDjqfQnk.O1"; ## SECRET-DATA } } session-options { client-idle-timeout 60; } }
firewall-authentication { web-authentication { default-profile WA-PROFILE; banner { success "Welcome! Dude."; } } }
[edit] admin@srx# show security zones security-zone TRUST interfaces { fe-0/0/0.166 { host-inbound-traffic { system-services { ping; ssh; http; } } } ... [edit] admin@srx# show system services ssh; web-management { http { interface fe-0/0/0.166; } } ... [edit] admin@srx# show interfaces fe-0/0/0 { description to_superswitch1/p167; vlan-tagging; unit 166 { description uservlan; vlan-id 166; family inet { address 10.166.12.2/24 { web-authentication http; } } }
[edit security policies from-zone TRUST to-zone PX] admin@srx# show ... policy TR-TO-PX-PERMIT-LENTA { match { source-address test-net; destination-address lenta.ru; application [ junos-icmp-ping junos-http ]; } then { permit { firewall-authentication { web-authentication { client-match test-client2; } } } } }
Пользователей которых заводят локально на srx можно для удобства определять в группы.
Один пользователь может состоять в нескольких группах.
profile TEST-PROFILE { client test-client { firewall-user { password "$9$wXY2aZGikqf"; ## SECRET-DATA } } client test-client2 { client-group TEST-GROUP; firewall-user { password "$9$K8Evxd2gJDHmaZn/"; ## SECRET-DATA } } session-options { client-idle-timeout 11; } }
[edit security policies from-zone VPN to-zone PX] root@srx# show ... policy VPN-TO-PX-PERMIT-LENTA { match { source-address test-net; destination-address lenta.ru; application [ junos-icmp-ping junos-http ]; } then { permit { firewall-authentication { pass-through { client-match [ TEST-GROUP test-client ];; } } } } }
Это делается для того, что бы была воможность собрать всех пользователей в одном профиле.
[edit] root@srx# show access ... profile DEFAULT-PROFILE { session-options { client-group [ TEST-GROUP TEST-GROUP2 ]; } } ...
Еще раз обращаю внимание, процесс аутентификации идет с привязкой к ip адресу источника.
Если есть два пользователя которые имеют одинаковый ip адрес, то в случае успешной аутентификации одного пользователя, второй пользователь будет иметь доступ к ресурсу, но уже без аутентификации.
Помимо локальной базы (password) информацию о пользователях и группах можно брать из внешних источников.
Поддерживаются следующие способы внешней аутентифиции:
Одновременно можно использовать только один внешний источник. Если внешний источник не доступен, то можно посмотреть в локальной базе.
Если со стороны внешнего источника пришел отказ в аутентификации, то доступ запрещается, дополнительно в локальную базу не смотрят.
[edit access] admin@srxr# show profile FUA-PROFILE { authentication-order [ radius password ]; client test-client { firewall-user { password "$9$wXY2aZGikqf"; ## SECRET-DATA } } client test-client2 { client-group TEST-GROUP; firewall-user { password "$9$K8Evxd2gJDHmaZn/"; ## SECRET-DATA } } session-options { client-idle-timeout 11; } radius-server { 1.2.3.4 secret "$9$HmQntu1IhrfTRSeK7Ns24ZGiqmT6/t5Q"; ## SECRET-DATA } }