Необходимые знания по 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
}
}