Присвоение статических адресов клиента OpenVP
-
Добрый день! Подскажите как можно присваивать постоянные статические адреса клиентам OpenVPN.
Привязка адреса должна быть связана с логином пользователя. -
В разделе OpenVPN: Client Specific Override
добавил пользователя и добавил в Advanced ifconfig-push 192.168.120.210 192.168.120.1;
Ip адрес стал присваиваться - но соединение не устанавливается, у клиента пишет TUN_SETUP_FAILED tun_prop_error; ifconfig addresses are not in the same /30 subnet. хотя адрес OpenVPN 192.168.120.1 и обычным клиентам присваивается начиная с 192.168.120.2 -
.210 и .1 не попадают в одну /30 подсеть. Используйте topology subnet в Advanced сервера, если sever mode не Peer to Peer ( Shared Key ), но будет ли работать - зависит от клиента.
-
Спасибо да помогло
Попробовал ip 192.168.120.2 - работает. не понял но как поменять маску на другую -
Привязка адреса должна быть связана с логином пользователя
Использовал это:
https://forum.pfsense.org/index.php?topic=98884.0#msg550937OpenVPN->Client Specific Override->Tunnel Network
задаем клиенту подсеть /30
192.168.2.8/30 (клиент получит адрес .10)
192.168.2.12/30 (клиент получит адрес .14)
192.168.2.16/30 (клиент получит адрес .18)
192.168.2.20/30 (клиент получит адрес .22)
192.168.2.24/30 (клиент получит адрес .26)
…......192.168.2.0/24 - IPv4 Tunnel Network в настройках сервера.
Однако способ не понравился тем, что невозможен смешанный режим - чтобы кто-то получал динамический адрес, а кто-то - зарезервированный. Клиент может пытаться получить адрес, а сервер его уже кому-то ранее выдал. Как сделать пул зарезервированных адресов написано тут:
http://www.sergeysl.ru/freebsd-openvpn-client-static-ip/
http://kickself.com/openvpn-privyazka-ip-klienta-k-cn-ego-sertifikata-ip-to-certificate-binding/ifconfig-pool-persist /usr/local/etc/openvpn/ipp.txt 0
и в файле написать
имя_сертификата,(!)адрес
samara1,10.6.63.6
samara2,10.6.63.10
samara3,10.6.63.14
samara4,10.6.63.18
samara5,10.6.63.22
samara6,10.6.63.26Но сам не пробовал
-
Как сделать пул зарезервированных адресов было бы интересно самому..
Есть же документация от OpenVPN. Находим описание ifconfig-pool-persist ipp.txt, пробуем. В advance добавляем:
ifconfig-pool-persist /conf/ovpns1.ipp
И работает… Единственное что мне не понятно, почему у меня привязка с CN сертификата пользователя?
И нужно ли переводить лист в режим только для чтения(ifconfig-pool-persist /conf/ovpns1.ipp 0) -
Всем спасибо!
Все получилось -
-
Сервер с topology subnet
Добавил в Advanced сервера;ifconfig-pool-persist /../../ips.list
В ips.list:
user1,10.11.11.20
user2,10.11.11.77В логе OVPN появилось следующее:
openvpn[64176]: ifconfig_pool_read(), in='user1,10.11.11.20', TODO: IPv6
Apr 7 09:49:51 openvpn[64176]: succeeded -> ifconfig_pool_set()
Apr 7 09:49:51 openvpn[64176]: ifconfig_pool_read(), in='user2,10.11.11.77', TODO: IPv6
Apr 7 09:49:51 openvpn[64176]: succeeded -> ifconfig_pool_set()Т.е сервер, похоже, реально резервирует адреса.
user1 и user2 стали получать назначенные адреса.
Адреса остальных пользователей автоматически добавляются сервером в ips.list при подключении и, вероятно, закрепляются за ними.
Редактировать ips.list можно при остановленном экземпляре OVPN-сервера\при гарантированном отсутствии подключений. Иначе при запущенном сервере получить ошибку - порт занят, сервер падает и не запускается (видно в логе). Помогает перезагрузка pfSense.И нужно ли переводить лист в режим только для чтения(ifconfig-pool-persist /conf/ovpns1.ipp 0)
Вероятно - нужно. Мануал говорит так:
–ifconfig-pool-persist file [seconds]
Persist/unpersist ifconfig-pool data to file, at seconds intervals (default=600), as well as on program startup and shutdown.The goal of this option is to provide a long-term association between clients (denoted by their common name) and the virtual IP address as‐signed to them from the ifconfig-pool. Maintaining a long-term association is good for clients because it allows them to effectively use the –persist-tun option.
file is a comma-delimited ASCII file, formatted as <common-name>,<ip-address>.
If seconds = 0, file will be treated as read-only. This is useful if you would like to treat file as a configuration file.
Однако:Note that the entries in this file are treated by OpenVPN as suggestions only, based on past associations between a common name and IP address. They do not guarantee that the given common name will always receive the given IP address. If you want guaranteed assignment, use
--ifconfig-push</ip-address></common-name>