При использовании OpenVPN для организации частной виртуальной сети часто возникает необходимость, чтобы у клиентов были статические IP адреса. Это достаточно удобно для того, чтобы быстро получить доступ к нужному устройству. Добавится этого можно двумя способами. С помощью файла ipp.txt или директории ccd. В статье рассмотрим оба способа как сделать статический IP клиента OpenVPN.
Настраиваем IPP.TXT
Название ipp расшифровывается как ifconfig pool persist. Для того чтобы IP адреса из этого файла работали необходимо добавить такую строчку в конфигурационный файл сервера:
$ sudo vi /etc/openvpn/server.conf
$ ifconfig-pool-persist ipp.txt
Затем нужные IP адреса можно добавить в файле /etc/openvpn/ipp.txt. Синтаксис этого файла такой:
user_name, ip_address
Обращаем внимание на то, что IP адрес должен быть в диапазоне выдаваемых адресов OpenVPN сервером. Посмотреть диапазон можно найдя строчку server в конфигурационном файле сервера:
server 10.8.0.0 255.255.255.0
Здесь используются IP адреса от 10.8.0.1 до 10.8.0.255. Причём первый адрес присваивается самому серверу. Можно посмотреть какой адрес присвоен серверу сейчас и из той же подсети выдавать адреса клиентам. Узнать адрес сервера можно посмотрев IP адрес сетевого интерфейса tun0:
$ ip -br a | grep tun

Если вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:
$ sudo vi /etc/openvpn/ipp.txt
raspberrypi,10.8.0.11

Для применения изменений необходимо перезапустить сервер OpenVPN:
$ sudo systemctl restart openvpn@server
Настраиваем CCD
Вариант с ipp.txt легкий. Если необходимо больше настроек, то можно воспользоваться ccd. Это расшифровывается как client config dir. С помощью этой возможности можно для каждого клиента задавать отдельную конфигурацию, в том числе и IP адрес. Чтобы это работало надо добавить в конфигурационный файл такую строчку:
$ sudo vi /etc/openvpn/server.conf
client-config-dir /etc/openvpn/ccd
В папке /etc/openvpn/ccd можно создавать конфигурационные файлы с именем клиента и прописывать туда настройки, которые будут применены конкретно для этого клиента при подключении.Если вы хотите чтобы для клиента raspberrypi выдавался IP адрес 10.8.0.112. Нужно создать файл /etc/openvpn/ccd/raspberrypi с таким содержимым:
$ sudo vi /etc/openvpn/ccd/raspberrypi
ifconfig-push 10.8.0.112 255.255.255.0

Дальше необходимо перезапустить OpenVPN
Проверяем IP адреса клиентов
Независимо от выбранного вами метода, надо проверить применились ли изменения. На устройстве клиента вводим команду:
$ ip -br a

Мы рассмотрели несколько способов как сделать статические IP адреса клиентов OpenVPN.