Присвоение статических адресов клиента 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#msg550937

    OpenVPN->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

    Но сам не пробовал



  • @pigbrother:

    Как сделать пул зарезервированных адресов было бы интересно самому..

    Есть же документация от OpenVPN. Находим описание ifconfig-pool-persist ipp.txt, пробуем. В advance добавляем:

    
    ifconfig-pool-persist /conf/ovpns1.ipp
    
    

    И работает… Единственное что мне не понятно, почему у меня привязка с CN сертификата пользователя?
    И нужно ли переводить лист в режим только для чтения(ifconfig-pool-persist /conf/ovpns1.ipp 0)



  • Всем спасибо!
    Все получилось



  • @olnn:

    Всем спасибо!
    Все получилось

    Как именно ? Можно ли описать. Спасибо.



  • Сервер с 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>


Log in to reply