У меня возникли некоторые трудности с реализацией этого freeradius за виртуальным IP-адресом keepalived. Мне нужен keepalived, потому что мне нужна избыточность для этого сервера двухфакторной аутентификации.
Radius обрабатывает двухфакторную аутентификацию в Juniper VPN. Итак, все работает хорошо, пока VPN не попытается поговорить с сервером RADIUS по виртуальному IP. VPN отправляет Access-Request на сервер RADIUS на виртуальном IP-адресе, установленном keepalived. Radius отвечает Access-Challenge реальным IP-адресом сервера. Здесь VPN разорвет соединение, поэтому пользователь не сможет пройти аутентификацию.
Что мне сделать, чтобы радиус использовал виртуальный IP-адрес для ответов? Стоит ли менять некоторые маршруты?
Обычно, чтобы использовать VIP таким образом, вы должны использовать NAT, поэтому IP-адрес назначения пакета перезаписывается во внутренний IP-адрес сервера RADIUS, а исходный IP-адрес пакета перезаписывается в адрес маршрутизатора.
Если вы не можете настроить это на Juniper и нашли способ пересылки пакетов на сервер RADIUS с неповрежденным IP-адресом источника/назначения, то вы можете заставить FreeRADIUS использовать определенный адрес источника, когда отвечает.
Сначала вам нужно добавить VIP в качестве псевдонима IP, как описано здесь:https://support.kemptechnologies.com/hc/en-us/articles/203861685-Configuring-DSR
Затем вам нужно будет добавить следующий фрагмент в конфигурацию вашего виртуального сервера:
server {
post-auth {
update control {
Packet-Src-IP-Address := <VIP address>
}
}
}
Это гарантирует, что адрес src в пакетах, отправляемых из FreeRADIUS, соответствует VIP.