Hi,
sometimes you have to set a static IP Address for some VPN Clients. Because they provide some server services which always must be reached at the same IP Address.
The client configuration do not provide any option to do that, set a static IP Address on the adapter itself is also always being overwritten when the client establish a connection to the OpenVPN server.
Solution: Define a client specific script at the server.
In this example the openvpn server’s OS is linux (tap Interface IP 10.1.134.62), the client runs at Windows (static IP 10.1.134.1).
Define a directory where the client scripts should be stored , e.g. /etc/openvpn/staticclients and create the directory
mkdir /etc/openvpn/staticclients
Add this directory as option to your openvpn configfile at the server:
client-config-dir /etc/openvpn/staticclients
For each client you have to create a file. The filename must match the “common name” attribute that was specified at the X509 certificate of the client.This command gets the CN from the computers certificate:
root@devdeb~ > openssl x509 -in /etc/openvpn/yourClientCertificate.cer -noout -subject | sed -e 's/.*CN=\(.*\)\/.*/\1/'
TESTCLIENT
This example pushs the IP Address 10.1.134.1/255.255.255.192 to the Client with the common name TESTCLIENT and also pushes a additional route for subnet 10.1.135.0.
cat /etc/openvpn/staticclients/TESTCLIENT
ifconfig-push 10.1.134.1 255.255.255.192
push "route 10.1.135.0 255.255.255.0
10.1.134.62"
# push "dhcp-option WINS addr"
# push "dhcp-option DNS addr"
Michael
My Knowledgebase for things about Linux, Windows, VMware, Electronic and so on…
This website uses cookies to improve your experience and to serv personalized advertising by google adsense. By using this website, you consent to the use of cookies for personalized content and advertising. For more information about cookies, please see our Privacy Policy, but you can opt-out if you wish. Accept Reject Read More
Здравствуйте гуру OpenVPN !
Есть OpenVPN server поднятый под Windows. Подскажите, как сделать так чтобы Server OpenVPN определенным клиентам выдавал те IP которые мне надо. Под линукс нашел много инструкций а под windows нет.
-
Вопрос задан
-
8599 просмотров
в конфиге сервераifconfig-pool-persist ip.txt
ifconfig-pool-persist ip.txt — это сработало. Но перестала работать маршрутизация.
Решил проблему двумя экземплярами файлов «OpenVPN.ovpn»
Пригласить эксперта
Войдите, чтобы написать ответ
-
Показать ещё
Загружается…
Минуточку внимания
При использовании OpenVPN для организации частной виртуальной сети часто возникает необходимость, чтобы у клиентов были статические IP адреса. Это достаточно удобно для того, чтобы быстро получить доступ к нужному устройству. Добавится этого можно двумя способами. С помощью файла ipp.txt или директории ccd. В статье рассмотрим оба способа как сделать статический IP клиента OpenVPN.
Название 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
Вариант с 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 -br a
Мы рассмотрели несколько способов как сделать статические IP адреса клиентов OpenVPN.
Если вы используете OpenVPN для организации частной виртуальной сети, то возможно захотите, чтобы у ваших клиентов были статические IP адреса. Это достаточно удобно для того чтобы иметь возможность быстро получить доступ к нужному устройству.
Добавится такого эффекта можно двумя способами. С помощью файла ipp.txt или директории ccd. В этой статье мы рассмотрим оба способа как сделать статический IP клиента OpenVPN.
Содержание статьи
- Статический 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. Как видите, это довольно просто и удобно.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Об авторе
Веб разработчик. Создал losst 9 лет назад. Увлекаюсь открытым программным обеспечением, программрованием, Linux, DevOps. Люблю узнавать что-то новое. В качестве основной ОС сейчас использую Fedora.
By default, when connecting, OpenVPN clients receive a dynamic IP from the DHCP range that you set in the OpenVPN server configuration file (server.ovpn) server network netmask
(for example, server 10.24.1.0 255.255.255.0
). In some cases, you want certain OpenVPN clients to get the same static IP address every time they connect.
To do this, add the following line to the server.conf file:
client-config-dir /etc/openvpn/ccd
Create a directory:
# mkdir /etc/openvpn/ccd
The contents of the /etc/openvpn/ccd directory must be readable by the OpenVPN user.
# chmod 744 /etc/openvpn/ccd
If OpenVPN is running under nobody:
# chown -R nobody:nogroup /etc/openvpn/ccd
In this directory, create a file with the name of the client (the client file name must match the name of the client in the certificate Common Name). For example, for your user with certificate testuser1 (subject=CN= testuser1
), you need to create a file with exactly the same name:
# nano /etc/openvpn/ccd/testuser1
If this is an OpenVPN client with Windows, you need to add the following configuration to the file:
#ifconfig-push clientIP serverIP
ifconfig-push 10.24.1.10 10.24.1.1
If it’s a Linux OpenVPN client:
#ifconfig-push clientIP Netmask
ifconfig-push 10.24.1.11 255.255.255.0
Restart the OpenVPN server service:
# systemctl restart network.service
Connect to the OpenVPN server from the client and check that it has received the IP address you specified.
For example, on a Linux OpenVPN client, run the command ip add show tun0
and check that the tun0 interface is assigned the IP address 10.24.1.11.
You can also set a list of static IP addresses for OpenVPN clients using the ipp.txt file.
To do this, add the following line to the /etc/openvpn/server.conf configuration file:
ifconfig-pool-persist ipp.txt
Then fill in the list of clients and static IPs in the /etc/openvpn/ipp.txt file:
testuser1,10.24.1.11
testuser2,10.24.1.14
gw1,10.24.1.5