Я работаю над системой управления свободным радиусом, которую разрабатываю на языке PHP. моя система будет доступна в облаке, предположим, что есть компании company1 и company2, которые будут использовать нашу систему. company1 будет иметь базу данных1, которая будет содержать клиентов компании1, у компании2 есть база данных2, которая будет содержать клиентов компании2. теперь в чем польза от использования файла proxy.conf в свободном радиусе. Я прочитал его, но не понимаю. но я думаю, что этот файл связан с моей проблемой, не так ли? может ли кто-нибудь объяснить мне этот файл и как его использовать?
В proxy.conf
файл определяет области, которые являются адресатами для трафика RADIUS. Каждая область может содержать один или несколько наборов серверов. Серверы сгруппированы по тем, которые используются для обработки учетного трафика (Accounting-Requests), и по тем, которые используются для обработки аутентификационного трафика (Access-Requests).
Один из способов решения вашей проблемы - запустить три сервера RADIUS, один в качестве внешнего интерфейса, а два других - как серверных. Тогда один бэкэнд будет обслуживать company1, а другой - company2. Если вы хотите изолировать компании, это будет хороший способ сделать это.
Есть причины, по которым RADIUS-серверы компании остаются изолированными, помимо обеспечения безопасности - FreeRADIUS <= 3 полностью синхронен, за исключением прокси. Это означает, что если ваша база данных выходит из строя, а рабочие потоки зависают в ожидании ответов, новые запросы обрабатываться не будут. например Если база данных 1 переходит в автономный режим, могут быть затронуты запросы аутентификации к компании 2 (база данных 2).
Если вышеуказанные проблемы не имеют отношения к делу, то, вероятно, проще просто использовать несколько экземпляров модуля SQL для взаимодействия с разными базами данных.
В mods-available/sql
вы можете создать несколько экземпляров модуля sql, скопировав / вставив существующий текст в тот же файл и вставив имя экземпляра между именем модуля и открывающей фигурной скобкой, т.е. sql <instance> {
.
Затем вы можете обратиться к экземпляру в sites-available/default
.
Пример конфигурации виртуального сервера для выбора между базами данных на основе области:
server default {
authorize {
# Splits the incoming username on @
split_username_nai
switch &request:Stripped-User-Domain {
case 'company1' {
sql_database_1
}
case 'company2' {
sql_database_2
}
}
}
...
}