- Created by Pavel Golubnichiy on Oct 14, 2022
Схема размещения компонентов
При большом количестве одновременно открытых сессий целесообразно добавить дополнительные серверы доступа.
Пусть их имена будут gw2 gw3 gw4 и т.д., настройка производится аналогично.
IP адреса HAProxy и дополнительных серверов доступа необходимо перечислить в настройках Indeed PAM Core в файле
C:\inetpub\wwwroot\pam\core\appsettings.json в секции Auth:
"PamGatewayIpAddresses": "192.168.10.140, 192.168.10.145, 192.168.10.146, 192.168.10.147, 192.168.10.148 ",
В Management Console в разделе Системные настройки в секциях Настройки подключения к Gateway и Настройки SSH Proxy необходимо ввести адрес балансировщика.
Настройки HAProxy в случае с четырьмя серверами представлены в примере:
global log /dev/haproxy/log local0 # см https://en.wikipedia.org/wiki/Syslog#Facility log /dev/haproxy/log local1 notice # notice - уровень ошибки. весь список: emerg, alert, crit, err, warning, notice, info, debug chroot /var/lib/haproxy # изменяем директорию выполнения для защиты от атак, папка пуста и нет прав maxconn 256 # максимальное количество одновременных подключений. stats socket /run/haproxy/admin.sock mode 660 level admin # связывает сокет с admin.sock stats timeout 3s user haproxy group haproxy daemon # Запустить процесс в фоновом режиме defaults log global # параметры лога берутся из секции global mode tcp # режим работы экземпляра HAProxy option dontlognull # отключить логи для фиктивных подключений timeout connect 5000 timeout client 1h timeout server 1h retries 3 # кол-во попыток до того, как понизить статус сервера balance roundrobin # выбор сервера перебором по порядку # Статистика frontend stats mode http bind *:8888 ssl crt /etc/haproxy/haproxy.pem stats enable # включение вывода статистики timeout client 5m timeout server 5m stats hide-version # скрытие версии HAProxy на странице статистики stats realm HAProxy\ Statistics # установка authentication realm stats uri /haproxy # установка ссылки на страницу статистики stats auth stat:stat # логин и пароль от страницы статистики frontend frontend_gw mode tcp bind 192.168.10.140:3389 # Адрес и порт на HAProxy для подключения клиентов timeout client 1h log global option tcplog # настройка логов TCP подключений с состояниями и таймерами tcp-request inspect-delay 2s # установка максимального времени анализа входящего соединения tcp-request content accept if RDP_COOKIE # сессия открывается при наличии RDP протокола default_backend backend_gw # название backend, обрабатывающего запросы frontend frontend_sshp mode tcp bind 192.168.10.140:22 timeout client 30m option tcplog default_backend backend_sshp backend backend_sshp mode tcp timeout server 30m timeout connect 5s balance leastconn option tcp-check server gw4 192.168.10.148:22 weight 10 check port 22 inter 5000 server gw3 192.168.10.147:22 weight 10 check port 22 inter 5000 server gw2 192.168.10.146:22 weight 10 check port 22 inter 5000 server gw1 192.168.10.145:22 weight 10 check port 22 inter 5000 backend backend_gw mode tcp balance leastconn # выбор сервера с наименьшим числом активных соединений timeout server 1h timeout connect 4s log global option tcp-check # Выполнить проверку доступности по TCP, tcp-check connect port 3389 ssl # открывая зашифрованное соединение на порт 3389. stick-table type ip size 1m expire 12h # настраиваем таблицу привязки по ip размером 1 млн записей и временем жизни записи 12 часов stick on src # использовать ip-адрес клиента для привязки default-server inter 3s rise 2 fall 3 # Установить интервал проверки у серверов backend 3 сек. Сервер будет считаться активным после 2 успешных проверок и недоступным после 3 неудачных проверок. server gw4 192.168.10.148:3389 weight 10 check verify required ####################### server gw3 192.168.10.147:3389 weight 10 check verify required #Сервера PAM Gateway server gw2 192.168.10.146:3389 weight 10 check verify required #веса серверов равны относительно друг друга server gw1 192.168.10.145:3389 weight 10 check verify required #проверка доступности включена, сертификат не проверяется
- No labels