<div class="aui-message error aui-message-error">
<p class="title">
<span class="aui-icon icon-error"></span>
<strong>Comala Metadata License Details</strong>
</p>
<p>Invalid commercial evaluation license with a expired error. Please click <a href="https://marketplace.atlassian.com/plugins/org.andya.confluence.plugins.metadata" target="_blank">here</a> to purchase a commercial license.</p>
</div>
Product Versions |
Eltex-RADIUS 1.7+ |
---|
В eltex-radius есть возможность проксирования на сторонний сервер. По умолчанию только запросов авторизации и только на один сервер. В статье описано как настроить проксирование и авторизации, и аккаунтинга, на один и более серверов.
Конфигурация по умолчанию
По умолчанию в eltex-radius общие настройки проксирования находятся в файле /etc/eltex-radius/local.conf
и выглядят так:
# Proxying proxy_auth=0 proxy_domain_regex="^(.+\.)?enterprise\.root$" proxy_host="127.0.0.1" proxy_port=18121 proxy_secret="eltex"
proxy_auth
– статус проксирования, 0 или 1, по умолчанию 0, выключеноproxy_domain_regex
– регулярное выражение, по которому определяется, запросы авторизации в каких доменах будут проксированы
для проксирования всех можно установить в"^(.+\.)?root$"
proxy_host
– адрес сервера, на который будут проксироваться запросыproxy_port
– порт сервераproxy_secret
– секрет, заданный для сервера eltex-radius на сервере, на который будет осуществляться проксирование
нужно помнить, что в такой конфигурации eltex-radius будет выступать в роли NAS
Более тонкие настройки находятся в файле /etc/eltex-radius/proxy.conf
и выглядят следующим образом:
proxy server { default_fallback = no } home_server auth_proxy { type = auth ipaddr = "${proxy_host}" port = "${proxy_port}" secret = "${proxy_secret}" response_window = 20 # # Start "zombie_period" after this many responses have # timed out. # # response_timeouts = 1 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 max_outstanding = 65536 } home_server_pool auth_proxy_failover { type = fail-over home_server = auth_proxy } realm auth_proxy { auth_pool = auth_proxy_failover } realm LOCAL { # If we do not specify a server pool, the realm is LOCAL, and # requests are not proxied to it. }
Здесь важны секции
home_server
home_server_pool
realm auth_proxy
Проксирование авторизации на сторонний RADIUS-сервер
Самый простой случай проксирование запросов авторизации на один сторонний RADIUS-сервер. Для этого нужно отредактировать файл /etc/eltex-radius/local.conf
примерно следующим образом:
# Proxying proxy_auth=1 proxy_domain_regex="^(.+\.)?enterprise\.root$" proxy_host="10.10.10.11" proxy_port=1812 proxy_secret="topsecret"
В такой конфигурации все запросы авторизации в иерархии доменов enterprise.root
будут проксироваться на сервер с адресом 10.10.10.11 на порт 1812, при этом в качестве secret
будет использована фраза topsecret
.
Аккаунтинг в такой конфигурации будет по прежнему обрабатываться локально, т. е. eltex-radius.
Редактирование /etc/eltex-radius/proxy.conf
в этом случае не требуется.
Проксирование авторизации и аккаунтинга на сторонний RADIUS-сервер
Для проксирования аккаунтинг-запросов также, как и запросов авторизации необходимо внести изменения в файле /etc/eltex-radius/proxy.conf
В секции home_server
изменить значение параметра type
на auth+acct
:
home_server auth_proxy { type = auth+acct ipaddr = "${proxy_host}" port = "${proxy_port}" secret = "${proxy_secret}" response_window = 20 # # Start "zombie_period" after this many responses have # timed out. # # response_timeouts = 1 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 max_outstanding = 65536 }
В секции realm auth proxy
заменить параметр auth_pool
на pool
, значение оставить тем же:
realm auth_proxy { pool = auth_proxy_failover }
А также, в файле /etc/eltex-radius/servers/default
в секцию preacct
после preprocess
добавить строку proxy_auth
:
preacct { preprocess proxy_auth acct_counters64 acct_unique acct_ciscoavpair # Parse common cisco-avp ('domain' for example) common_ciscoavpair rewrite_called_station_id if (${pcrf_enabled} == 0) { fill_ap_domain fill_ssid_security } files }
Проксирование авторизации и аккаунтинга на группу сторонних RADIUS-серверов
Этот вариант требует значительной модификации конфигурационных файлов. Будет рассмотрено проксирование на 2 сторонних RADIUS-сервера, но но предложенным методом можно масштабировать и далее.
Отредактировать /etc/eltex-radius/local.conf, добавив индивидуальные параметры host, port и secret для каждого из серверов, на которые осуществляется проксирование:
# Proxying proxy_auth=1 proxy_domain_regex="^(.+\.)?root$" proxy1_host="10.10.10.11" proxy1_port=1812 proxy1_secret="topsecret" proxy2_host="10.10.10.12" proxy2_port=1812 proxy2_secret="topsecret"
Согласно этим настройкам модифицировать /etc/eltex-radius/local.conf. Для каждого сервера должна быть добавлена и описана секция home_server с уникальным именем.
Все home_server должны быть добавлены в пул home_server_pool, который, в свою очередь должен быть указан в realm auth_proxy. Так как проксировать предполагается и аккаунтинг, и авторизацию, параметр указывающий на пул должен называться pool.
home_server auth_proxy1 { type = auth+acct ipaddr = "${proxy1_host}" port = "${proxy1_port}" secret = "${proxy1_secret}" response_window = 20 # # Start "zombie_period" after this many responses have # timed out. # # response_timeouts = 1 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 max_outstanding = 65536 } home_server auth_proxy2 { type = auth+acct ipaddr = "${proxy2_host}" port = "${proxy2_port}" secret = "${proxy2_secret}" response_window = 20 zombie_period = 40 revive_interval = 120 status_check = status-server check_interval = 30 check_timeout = 4 num_answers_to_alive = 3 max_outstanding = 65536 } home_server_pool auth_proxy_failover { type = fail-over home_server = auth_proxy1 home_server = auth_proxy2 } realm auth_proxy { pool = auth_proxy_failover }
В файле /etc/eltex-radius/servers/default
в секцию preacct
после preprocess
добавить строку proxy_auth
, как описано в предыдущем разделе.
Приведенная конфигурация настраивает проксирвоание в режиме failover, что задается параметром type в секции home_server_pool. Также доступен режим балансировки нагрузки между серверами, о чем подробнее можно узнать по второй ссылке 2 из раздела Источники.
Отключение проверки status-server встречного сервера
При работе проксирования по умолчанию работает механизм проверки статуса встречного сервера . Если до сервера на который идет проксирование пропала на некоторое время связь, а потом восстановилась, то требуется чтобы этот сервер ответил на запрос status-server - только после этого проксирование возобновится.
В ходе эксплуатации может возникнуть ситуация что встречный сервер не умеет отвечать на status-server, либо он не настроен должным образом. Тогда есть возможность отключить эту проверку на проксирующем сервере.
Для этого нужно внести следующие изменения в конфигурацию:
В файле /etc/eltex-radiu/proxy.conf:
в разделе home_server auth_proxy установить:
значение status_check = none , по умолчанию выставлено status-server
значение revive_interval = 60, по умолчанию 120
в разделе home_server_pool auth_proxy_failover установить:
значение type = fail-over, по умолчанию выставленоload-balance
После чего не обходимо перезапустить демон командой service eltex-radius restart
В итоге в случае прерывания связи между серверами, после восстановления связности сервис станет доступен в течении 60 секунд.