- Created by Pavel Golubnichiy, last modified by Maksim Kuzmov on Jul 22, 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