Аутентификация пользователей xl2tpd на Freeradius

Обновлено и опубликовано Опубликовано:

В данной инструкции пойдет речь только о настройке связки xl2tpd + Freeradius, которая позволит отправлять запросы проверки логинов и паролей на сервер по протоколу RADIUS. Для настройки самого сервера VPN можно воспользоваться инструкциями Настройка сервера L2TP VPN на CentOS 8 или Установка и настройка L2TP VPN-сервера на Ubuntu Server. Для настройки сервера RADIUS — Установка сервера Freeradius на Linux CentOS 8 (настраиваем сервер для хранения пользователей в MySQL/MariaDB).

Установка freeradius client

Установку клиента будем выполнять из исходника. Рассмотрим процесс установки на Linux CentOS или Ubuntu.

Устанавливаем gcc, необходимый для сборки клиента.

а) на Linux CentOS:

yum install gcc

б) на Linux Ubuntu:

apt-get install gcc

Скачиваем исходник клиента:

wget https://github.com/FreeRADIUS/freeradius-client/archive/master.tar.gz

Распаковываем скачанный пакет:

tar zxvf master.tar.gz

Переходим в распакованный каталог:

cd freeradius-client-master/

Конфигурируем исходник:

./configure --prefix=/

Собираем его и устанавливаем:

make

make install

Настройка клиента radius

На сервере Freeradius мы должны добавить клиента xl2tpd. О том, как это делать рассказано в инструкции Установка сервера Freeradius на Linux CentOS 8.

Открываем на редактирование файл:

vi /etc/radiusclient/servers

Добавляем в него:

192.168.1.10         passpass

* где 192.168.1.10 — IP-адрес сервера Freeradius; passpass — клиентский пароль для подключения к серверу RADIUS.

Открываем настройки клиента:

vi /etc/radiusclient/radiusclient.conf

С конфигом по умолчанию у меня не заработал xl2tpd — удаляем все содержимое и вставляем:

auth_order radius,local
login_tries 4
login_timeout 60
nologin /etc/nologin
issue /etc/radiusclient/issue
authserver 192.168.1.10
acctserver 192.168.1.10
servers /etc/radiusclient/servers
dictionary /etc/radiusclient/dictionary
login_radius /usr/sbin/login.radius
seqfile /var/run/radius.seq
mapfile /etc/radiusclient/port-id-map
default_realm
radius_timeout 10
radius_retries 3
login_local /bin/login

* где 192.168.1.10 — IP-адрес сервера Freeradius;

Следующим этапом настроим словари — открываем на редактирование:

vi /etc/radiusclient/dictionary

В моем случае, xl2tpd отказался работать со следующими строками (комментируем их):

...
#ATTRIBUTE      Framed-IPv6-Prefix      97      ipv6prefix
...
#ATTRIBUTE      Framed-IPv6-Address     168     ipv6addr
#ATTRIBUTE      DNS-Server-IPv6-Address 169     ipv6addr
#ATTRIBUTE      Route-IPv6-Information  170     ipv6prefix
...

Также добавляем в самый низ:

INCLUDE /etc/radiusclient/dictionary.microsoft

Загружаем словарь dictionary.microsoft:

wget https://www.dmosk.ru/files/dictionary.microsoft -O /etc/radiusclient/dictionary.microsoft

Настройка xl2tpd

Открываем файл с настройками ppp:

vi /etc/ppp/options.xl2tpd

* точный путь до данного файла нужно посмотреть в конфиге /etc/xl2tpd/xl2tpd.conf.

Добавляем:

plugin radius.so
plugin radattr.so

Перезапускаем сервис xl2tpd:

systemctl restart xl2tpd

Создаем нового пользователя на сервере радиус (в базе данных):

mysql -u root -p -e "INSERT INTO radius.radcheck (username, attribute, op, value) VALUES ('vpn1', 'Cleartext-Password', ':=', 'vpn12345');"

* данной командой мы создадим пользователя vpn1 с паролем vpn12345.

Подключаемся к VPN.

# Linux # Безопасность # Интернет # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет