Address assignment
By default OpenVPN Access Server works with Layer 3 routing mode. In this mode a private subnet is configured for the VPN client subnet. This private subnet must be different from other subnets used in your networks, and clients automatically get IP addresses assigned from this subnet when they log on. This is automated. Usually it goes in a sequential order until it reaches the end of the portion of the subnet available to the OpenVPN daemon you get connected to, and then it starts reusing older addresses. This acts a little bit like DHCP but technically we don’t run a DHCP server in Access Server, just a sort of rough emulation to assign addresses automatically. The subnet that users get addresses from automatically is found in the Admin UI under VPN Settings, Dynamic IP Address Network.
Static IP addressing (without group subnets)
You can set up a second private subnet, a different one, in the VPN Settings page in the Admin UI, in the section titled Static IP Address Network (optional). Set up a unique subnet there and the Access Server will then have a subnet it can use for static IP address assignment. See the picture below to see what this looks like:
Next go to User Permissions and select a user you want to assign a static IP address. Click show to reveal more options for this particular user, and then set Select IP addressing to use static. Now a field is revealed where you can enter an IP address that falls within the static IP address network that you specified in the VPN Settings page. Now save settings and update running servers.
That’s It! Your user will now be assigned the specified static address by OpenVPN Access Server.
Notes about subnets
The first and last IP address of each subnet in Access Server for VPN clients is always taken by Access Server itself. So if you specify the subnet 10.1.100.0/24 like in the example pictures shown above, then you should avoid assigning 10.1.100.1 and 10.1.100.254 to VPN clients.
We do not support public IP subnets for VPN client IP address assignment. We never have. OpenVPN Access Server is a virtual private network solution, meaning its VPN clients operate in a private network. If you know what you’re doing and you set up routing in specific ways, then yes, you can indeed force public IP addresses into the Access Server’s configuration, but that is a solution not supported by us.
Notes about groups
It is also possible to use group subnets instead. If you create a group, and assign it a subnet, by default that subnet is for static IP address assignment. Any users in a group that has a group subnet configured that you want to set a static IP address for, must get an IP address assigned from that group subnet. So if for example your group has a subnet 192.168.44.0/24 then users assigned to that group can get static IP addresses in that range. Note that the first and last IP address are reserved (192.168.44.1 and 192.168.44.254) by Access Server itself and so should not be assigned to VPN users.
If you want dynamic address assignment, then assuming the example just discussed, you can take a portion (or all) of the 192.168.44.0/24 and set a dynamic range for it in the group’s properties. To do this use the second field in the group to specify a range for dynamic addressing. This could be defined as 192.168.44.2-192.168.44.150. This way you can use a single subnet but have a portion use automatic assignment, and a portion for static IP address. You could also define it as 192.168.44.2-192.168.44.253 so all of it is used for dynamic assignment.
Regarding Layer 2 bridging
Static IP address assignment in Layer 2 mode is done by setting the IP address on the virtual network adapter of the client system.
Если вы используете OpenVPN для организации частной виртуальной сети, то возможно захотите, чтобы у ваших клиентов были статические IP адреса. Это достаточно удобно для того чтобы иметь возможность быстро получить доступ к нужному устройству.
Добавится такого эффекта можно двумя способами. С помощью файла ipp.txt или директории ccd. В этой статье мы рассмотрим оба способа как сделать статический IP клиента OpenVPN.
1. Настройка ipp.txt
Название ipp расшифровывается как ifconfig pool persist. Для того чтобы IP адреса из этого файла работали необходимо добавить такую строчку в конфигурационный файл сервера:
sudo vi /etc/openvpn/server.conf
ifconfig-pool-persist ipp.txt
Затем нужные IP адреса можно добавить в файле /etc/openvpn/ipp.txt. Синтаксис этого файла такой:
имя_клиента,ip_адрес
Обратите внимание, что 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.112
Для применения изменений необходимо перезапустить сервер OpenVPN:
sudo systemctl restart openvpn@server
2. Настройка 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.
3. Проверка IP адреса клиента
В независимости от выбранного вами метода, надо проверить применились ли изменения. Для этого на клиентском устройстве выполните команду:
ip -br a
Выводы
В этой небольшой статье мы рассмотрели как сделать статические IP адреса клиентов OpenVPN. Как видите, это довольно просто и удобно.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
Я уже не раз рассказывал как сконфигурировать собственный OpenVPN сервер. Пользователи подключаются по сертификатам и им динамически выдаются свободные ip-адреса из заданного диапазона. Встала задача выдавать некоторым клиентам постоянные ip-адреса, чтобы была возможность подключаться к ним тоже.
Собственно, решается это довольно просто, если знать как. В файл конфигурации сервера OpenVPN нужно добавить буквально пару строк:
client-to-client ifconfig-pool-persist ipp.txt
- client-to-client — разрешаем клиентам видеть друг-друга в сети
- ifconfig-pool-persist ipp.txt — наличие этой строки указывает, что перед тем как выдать клиенту свободный адрес из пула, сервер должен свериться с файлом ipp.txt, в котором прописывается привязка имени пользователя к ip-адресу.
Файл ipp.txt должен иметь следующий формат:
username1,ip-address username2,ip-address username3,ip-address
username1, username2 и username3 соотвествуют именам выданных сертификатов пользователей.
Подписывайтесь на канал
Яндекс.Дзен
и узнавайте первыми о новых материалах, опубликованных на сайте.
По умолчанию клиенты 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
При использовании 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. Синтаксис этого файла такой:
имя_клиента,ip_адрес
Обращаем внимание на то, что 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.112
Для применения изменений необходимо перезапустить сервер 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.