Параметр | Значение |
Метод аутентификации | EAP-MSCHAPv2 (IKEv2) |
Сервер аутентификации | FreeRADIUS |
VPN-шлюз | PT NGFW |
Identity Agent | СУ PT NGFW (порт 5570) |
Внешний адрес для подключения клиентов | 10.0.10.1 |
IP-пул клиентов | 192.168.10.0/24 |
Туннельный шлюз | 192.168.10.1/24 |
Шаг | Описание |
1 | Клиент отправляет NGFW AUTH request |
2 | Шлюз отправляет в ответ EAP Identity |
3 | Клиент присылает EAP Response |
4 | NGFW отправляет на СУ с Identity Agent запрос на аутентификацию |
5 | СУ запрашивает подтверждение у RADIUS-сервера |
6 | При успешной аутентификации RADIUS-сервер отправляет СУ Access-Accept |
7 | СУ подтверждает аутентификацию пользователя и отправляет информацию об этом на NGFW |
8 | NGFW создает VPN-туннель и назначает пользователю адрес из пула RA |
openssl genrsa -out root.key 4096 |
openssl req -x509 -new -nodes -key root.key -sha256 -days 3650 \ -out root.crt -subj "/CN= RA-TS-Root-CA" \ -addext "basicConstraints=critical,CA:TRUE" \ -addext "keyUsage=critical,keyCertSign,cRLSign" \ -addext "subjectKeyIdentifier=hash" |
Параметр | Значение / Описание |
CN | IP-адрес внешнего интерфейса (10.0.10.1) или его FQDN (ra.ts-test.local) |
basicConstraints | critical, CA:FALSE |
keyUsage | critical, digitalSignature, keyEncipherment |
extendedKeyUsage | serverAuth (1.3.6.1.5.5.7.3.1) IPsecIKE (1.3.6.1.5.5.7.3.17) |
subjectAltName | Должен содержать IP-адрес и (или) FQDN и должен совпадать с адресом NGFW на вкладке «Клиент / Адрес шлюза» в настройках удаленного доступа. В примере это: IP:10.0.10.1 DNS:ra.ts-test.local |
openssl genrsa -out ngfw.key 2048 |
openssl req -new -key ngfw. key -out ngfw. csr -subj «/CN=10.0.10.1» |
openssl x509 -req -in ngfw.csr -CA root.crt -CAkey root.key \ -CAcreateserial -out ngfw.crt -days 825 -sha256 -extfile ngfw.ext |
basicConstraints = critical, CA:FALSE keyUsage = critical, digitalSignature, keyEncipherment extendedKeyUsage = serverAuth, 1.3.6.1.5.5.7.3.17 subjectAltName = IP:10.0.10.1,DNS:ra.ts-test.local subjectKeyIdentifier = hash authorityKeyIdentifier = keyid, issuer |
cat ngfw.crt root.crt > chain.pem |
openssl verify -CAfile root.crt ngfw.crt |
openssl x509 -in ngfw.crt -text -noout | grep -A3 "Basic Constraints\|Extended Key\|Subject Alt" |
X509v3 Basic Constraints: critical CA:FALSE X509v3 Extended Key Usage: TLS Web Server Authentication, ipsec Internet Key Exchange X509v3 Subject Alternative Name: IP Address:10.0.10.1, DNS:ra.ts-test.local |
sudo nano /opt/pt-ngfw/ngfw-acco-agent/config/1/agent.cfg |
Параметр | Значение / Описание |
address | IP-адрес RADIUS-сервера |
nas_identifier | Идентификатор источника запросов в логах RADIUS |
shared_secret | Общий секрет. Должен совпадать с настройками клиента на RADIUS-сервере |
auth_port | UDP-порт RADIUS -сервера, на который агент отправляет запросы аутентификации (Access-Request). Стандарт: 1812 |
acco_port | Номер порта, используемого для отправки сообщений учета сессий. |
response_timeout_s | Таймаут ответа в секундах. Рекомендуется 3–5 для LAN, до 30 для WAN |
max_retries | Число повторных попыток при отсутствии ответа от RADIUS |
sudo nano /opt/pt-ngfw/ngfw-acco-agent/config/1/users.json |
sudo systemctl restart pt-ngfw-acco-agent |
sudo nano /opt/pt-ngfw/ngfw-core/etc/config/pt-ngfw.conf |
sudo systemctl restart pt-ngfw-core.service |
sudo cp /home/ngfw/root.crt /opt/pt-ngfw/ngfw-acco-agent/config/certs |
sudo nano /opt/pt-ngfw/ngfw-acco-agent/config/1/agent.cfg |
Параметр | Значение / Описание |
ldap_uri | URL-адрес LDAP-сервера. Поддерживается TLS и StartTLS. Нешифрованные подключения не поддерживаются. |
cafile | имя (путь) доверенного сертификата агента Identity Control. Путь должен быть относительным — ../certs/cert.pem. |
bind_dn | имя пользователя, используемое для аутентификации через операцию bind. |
bind_pwd | пароль пользователя. |
base_dn | базовый DN, с которого начинается поиск пользователей и групп. Поиск выполняется с областью subtree, то есть по данному DN и всем его вложенным подразделам. По умолчанию используется корень каталога (root DN). Объекты пользователей, не попавшие в область поиска, обрабатываться не будут.
Необязательный параметр. |
filter | фильтр для поиска пользователей. По умолчанию — sAMAccountType=805306368. Аналогичен LDAP-фильтру (&(objectclass=user)(objectclass=person)(!(objectClass=computer))). |
timeout_s | тайм-аут LDAP-соединения в секундах. |
ou_support | поддержка использования Organizational Unit в правилах в качестве «псевдогрупп». Сильно увеличивает расход оперативной памяти агентом Identity Control. Не рекомендуется включать. По умолчанию — false. |
winrm_uri | URL-адрес для подключения к службе WinRM. |
user | имя пользователя для аутентификации в WinRM. |
password | пароль пользователя. |
events_read_back_h | время в часах, за которое выполняется чтение информации о прошлых логинах для сопоставления пользователей и IP‑адресов. Операция может быть ресурсоемкой на загруженных серверах, поэтому рекомендуется указывать не более шести часов. |
frequency_s | максимальная частота обновления информации в секундах. Параметр контролируется в том числе сервером, поэтому возможны отклонения. |
log_source | имя источника журналов: Security или ForwardedEvents. По умолчанию — Security. Необязательный параметр. |
sudo systemctl restart pt-ngfw-acco-agent |
sudo systemctl restart pt-ngfw-acco-agent |
journalctl -u pt-ngfw-acco-agent -f |
apt-get update apt-get install -y freeradius freeradius-utils |
sudo nano /etc/freeradius/3.0/clients.conf |
sudo nano /etc/freeradius/3.0/mods-config/files/authorize |
ls /etc/freeradius/3.0/mods-enabled/mschap || \ ln -s /etc/freeradius/3.0/mods-available/mschap \ /etc/freeradius/3.0/mods-enabled/mschap |
systemctl enable freeradius systemctl restart freeradius |
freeradius -C |
radtest -t mschap 'user1' 'P@ssw0rd' 127.0.0.1 0 testing123 |
systemctl stop freeradius && freeradius -X |
Шаг | Описание |
1 | Клиент отправляет NGFW AUTH request |
2 | Шлюз отправляет в ответ EAP Identity |
3 | Клиент присылает EAP Response |
4 | NGFW отправляет на СУ с Identity Agent запрос на аутентификацию |
5 | СУ запрашивает подтверждение у сервера 2FA |
6 | Сервер 2FA запрашивает подтверждение у RADIUS-сервера |
7 | RADIUS-сервер отправляет СУ через сервер 2FA Accept-Challenge |
8 | СУ отправляет Access-Request с атрибутом State(24), полученным ранее от RADIUS-сервера |
9 | При успешной аутентификации RADIUS-сервер отправляет серверу 2FA Access-Accept |
10 | Сервер 2FA запрашивает второй фактор |
11 | Пользователь подтверждает вход в приложении |
12 | При успешном подтверждении 2FA RADIUS-сервер отправляет СУ Access-Accept |
13 | СУ подтверждает аутентификацию пользователя и отправляет информацию об этом на NGFW |
14 | NGFW создает VPN-туннель и назначает пользователю адрес из пула RA |
sudo nano /opt/pt-ngfw/ngfw-acco-agent/config/1/agent.cfg |
sudo nano /opt/multifactor/radius/ Multifactor.Radius.Adapter.v2.dll.config |
sudo nano /opt/multifactor/radius/clients/ptngfw.config |
sudo nano /etc/freeradius/3.0/clients.conf |
sudo nano /etc/freeradius/3.0/mods-config/files/authorize |
systemctl restart freeradius |