По умолчанию клиенты OpenVPN при подключении получают динамический IP из DHCP диапазона, который вы задали в конфигурационном файле server.ovpn сервера OpenVPN: server network netmask
(например, server 10.24.1.0 255.255.255.0
). В некоторых случаях вам нужно, чтобы определенные клиенты OpenVPN при каждом подключении получали один и тот же статический IP адрес.
Для этого, добавьте в файл server.conf строку:
client-config-dir /etc/openvpn/ccd
Создайте каталог:
# mkdir /etc/openvpn/ccd
Содержимое каталога /etc/openvpn/ccd должно быть доступно на чтение пользователю OpenVPN.
# chmod 744 /etc/openvpn/ccd
Если OpenVPN запускается под nobody:
# chown -R nobody:nogroup /etc/openvpn/ccd
В этом каталоге создайте файл с именем клиента (имя клиента/имя файла должно соответствовать имени сертификата клиента – Common Name). Например, ваш в сертификате пользователя указано testuser1 (subject=CN=testuser1), значит нужно создать файл точно с таким же именем:
# nano /etc/openvpn/ccd/testuser1
Если это клиент OpenVPN с Windows, нужно добавить в файл такую конфигурацию:
#ifconfig-push clientIP serverIP ifconfig-push 10.24.1.10 10.24.1.1
Если это Linux клиент OpenVPN:
#ifconfig-push clientIP Netmask ifconfig-push 10.24.1.11 255.255.255.0
Перезапустите службу OpenVPN сервера:
# systemctl restart network.service
Подключитесь к OpenVPN серверу с клиента и проверьте, что он получил указанный вами IP адрес.
Например, на клиенте OpenVPN в Linux выполните команду:ip add show tun0
и проверьте что интерфейсу tun0 назначен IP адрес 10.24.1.11.
Также можно задать список статических IP адресов для клиентов OpenVPN с помощью файла ipp.txt.
Для этого добавьте в конфигурационный файл /etc/openvpn/server.conf строку:
ifconfig-pool-persist ipp.txt
Затем заполните список клиентов и статических IP в файле /etc/openvpn/ipp.txt:
Имя_клиента, ip_адресс testuser1,10.24.1.11 testuser2,10.24.1.14 gw1,10.24.1.5