Привязка ip к openvpn
Здравствуйте, поднял openvpn не могу выполнить привязку к ip.
Пробовал через ipp.txt. В конфиге сервера
ifconfig-pool-persist ipp.txt
При этом в файле ipp.txt при указании:
username,ip-address
ip адрес выдается другой и ip адреса выданные в файл ipp.txt не пишутся.
Дописывал в конфиг сервера
client-config-dir ccd
Создавал папку ccd в ней файл username с содержанием:
ifconfig-push ip-ip
Тоже самое, адрес произвольный.
Как выполнить привязку к ip?
Авторизация по логин/паролю с помощью openvpn-auth-pam.so
nixit ★★
07.09.13 04:35:38 MSK
Чего хочешь то? На пальцах объясни.
anonymous
( 07.09.13 05:04:33 MSK )
Ответ на: комментарий от anonymous 07.09.13 05:04:33 MSK
На пальцах: чтобы пользователю всегда выдавался один и тот же ip.
nixit ★★
( 07.09.13 05:12:11 MSK ) автор топика
Ответ на: комментарий от nixit 07.09.13 05:12:11 MSK
У меня все работает.
ccd/user.name
ifconfig-push 10.2.2.118 10.2.2.117
server.conf
.
mode server 10.2.2.0 255.255.255.0
client-config-dir ccd
username-as-common-name
.
zgen ★★★★★
( 07.09.13 11:14:54 MSK )
mode server tls-server proto tcp dev tap port 2400 daemon tls-auth /etc/openvpn/vpnet/keys/ta.key 0 ca /etc/openvpn/vpnet/keys/ca.crt cert /etc/openvpn/vpnet/keys/vpsrv.crt key /etc/openvpn/vpnet/keys/vpsrv.key dh /etc/openvpn/vpnet/keys/dh1024.pem server 10.0.0.0 255.255.255.0 ifconfig-pool-persist /etc/openvpn/vpnet/ipp.txt client-config-dir /etc/openvpn/vpnet/ccd keepalive 10 120 tls-timeout 3600 hand-window 3600 client-to-client persist-key persist-tun comp-lzo log /var/log/openvpn.log log-append /var/log/openvpn.log status /var/log/openvpn-status.log verb 3
tls-client proto tcp-client remote **** dev tap port 2400 cd /etc/openvpn/vpnet pull tls-auth /etc/openvpn/vpnet/client_keys/ta.key 1 ca /etc/openvpn/vpnet/client_keys/ca.crt cert /etc/openvpn/vpnet/client_keys/note.crt key /etc/openvpn/vpnet/client_keys/note.key keepalive 10 120 tls-timeout 3600 hand-window 3600 comp-lzo log /var/log/openvpn.log log-append /var/log/openvpn.log status /var/log/openvpn-status.log verb 3
router,10.0.0.2 downloader,10.0.0.3 note,10.0.0.4 work,10.0.0.5 home,10.0.0.6
важно, что ccd распознавает эти названия «router», «note» из CN клиентского ключа
Как сделать статический IP клиента OpenVPN.
При использовании 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 в конфигурационном файле сервера:
Здесь используются IP адреса от 10.8.0.1 до 10.8.0.255. Причём первый адрес присваивается самому серверу. Можно посмотреть какой адрес присвоен серверу сейчас и из той же подсети выдавать адреса клиентам. Узнать адрес сервера можно посмотрев IP адрес сетевого интерфейса tun0:
Е сли вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:
Для применения изменений необходимо перезапустить сервер 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 адреса клиентов OpenVPN.
Установка и настройка OpenVPN
Всё чаще Системные интеграторы задаются вопросом — есть ли альтернативы для Hamachi? Есть очень много вариантов софтового VPN, но в этой статье речь идёт об OpenVPN, как легко масштабируемый, кросплатформенный и универсальный инструмент.
Работает как клиент-сервер (бриджинг и роутинг не рассматриваем). Требования к схеме простые:
- Статический IP или глобальная запись в DNS для сервера.
- Открытый порт 1194 (или какой укажете сами) на сервере.
- Сгенерированные и действующие сертификаты. Срок годности сертификатов по указанной ниже технологии — 3650 дней (10 лет).
- Полное следование процессу установки.
- Наличие желания и отсутствие страха делать что-то новое.
Процесс установки
- Скачать Installer (32/64-bit), Windows Vista and later.
- Установить. При установке проверить чтобы были включены все компоненты.
- Подтвердить установку драйвера TAP-интерфейса.
- Открыть Центр управления сетями и общим доступом и переименовать «Подключение по локальной сети #», где адаптером является TAP в «OpenVPN».
- В брандмауэре добавить исключения для UDP порта 1194 на вход.
- Последовательно сгенерировать сертификаты (процедура выполняется только на сервере).
- После создания сертификатов скопировать папку C:\Program Files\OpenVPN\easy-rsa\keys на флэшку.
- Создать конфиг-файл client.ovpn или server.ovpn.
- Для установки автоматического старта вместе с загрузкой системы:
Мой компьютер => Панель управления => Администрирование => Службы => OpenVPN [Вручную=>Автоматически] => Запустить
После запуска службы в случае правильных настроек по команде ipconfig Вы получите статический IP для TAP-интерфейса, который привязан по сертификату. Связь с центральным сервером проверяется обычным ping’ом если разрешены ICMP-пакеты для сервера и его роутера.
По-необходимости в файле C:\Windows\system32\drivers\etc\hosts на сервере добавить запись для клиента.
Генерация сертификатов
1. Заполнить C:\Program Files\OpenVPN\easy-rsa\vars.bat.sample своими данными:
set KEY_COUNTRY=RU set KEY_PROVINCE=RU set KEY_CITY=Moscow set KEY_ORG=Microinvest set KEY_EMAIL=vpn@microinvest.net :: Реальное название ПК set KEY_CN=HostNameOfPC :: Имя пользователя, генерирующего сертификат set KEY_NAME=Alexander :: main server, subscriber1, pos1, manager, buh и т.п. уникальный идентификатор, чтобы понять что это за сертификат set KEY_OU=main server
2. Вызвать командную строку с правами администратора, cmd
cd "C:\Program Files\OpenVPN\easy-rsa" move vars.bat.sample vars.bat vars.bat clean-all
3. Генерация сертификата авторизации: C:\Program Files\OpenVPN\easy-rsa\build-ca.bat
WARNING: can't open config file: /etc/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key ..++++++ . ++++++ writing new private key to 'keys\ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [RU]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Microinvest]: Organizational Unit Name (eg, section) [main server]: Common Name (eg, your name or your server's hostname) [HostNameOfPC]: Name [Alexander]: Email Address [vpn@microinvest.net]:
4. Генерация сертификата для сервера: C:\Program Files\OpenVPN\easy-rsa>build-key-server.bat server
WARNING: can't open config file: /etc/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key . ++++++ ..++++++ writing new private key to 'keys\server.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [RU]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Microinvest]: Organizational Unit Name (eg, section) [main server]: Common Name (eg, your name or your server's hostname) [HostNameOfPC]: Name [Alexander]: Email Address [vpn@microinvest.net]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /etc/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'RU' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Microinvest' organizationalUnitName:PRINTABLE:'main server' commonName :PRINTABLE:'HostNameOfPC' name :PRINTABLE:'Alexander' emailAddress :IA5STRING:'vpn@microinvest.net' Certificate is to be certified until Nov 17 18:36:19 2024 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
5. Генерация сертификата для клиента с именем POS-1: C:\Program Files\OpenVPN\easy-rsa>build-key.bat POS-1
WARNING: can't open config file: /etc/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key . ++++++ . ++++++ writing new private key to 'keys\POS-1.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [RU]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Microinvest]: Organizational Unit Name (eg, section) [main server]:first subscriber Common Name (eg, your name or your server's hostname) [HostNameOfPC]:POS-1 Name [Alexander]: Email Address [vpn@microinvest.net]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /etc/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'RU' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Microinvest' organizationalUnitName:PRINTABLE:'first subscriber' commonName :PRINTABLE:'POS-1' name :PRINTABLE:'Alexander' emailAddress :IA5STRING:'vpn@microinvest.net' Certificate is to be certified until Nov 17 18:40:00 2024 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
6. Генерация сертификата для клиента с именем POS-2: C:\Program Files\OpenVPN\easy-rsa>build-key.bat POS-2
WARNING: can't open config file: /etc/ssl/openssl.cnf Loading 'screen' into random state - done Generating a 1024 bit RSA private key ..++++++ . ++++++ writing new private key to 'keys\POS-2.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [RU]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [Microinvest]: Organizational Unit Name (eg, section) [main server]:second subscriber Common Name (eg, your name or your server's hostname) [HostNameOfPC]:POS-2 Name [Alexander]: Email Address [vpn@microinvest.net]: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: WARNING: can't open config file: /etc/ssl/openssl.cnf Using configuration from openssl-1.0.0.cnf Loading 'screen' into random state - done Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'RU' stateOrProvinceName :PRINTABLE:'RU' localityName :PRINTABLE:'Moscow' organizationName :PRINTABLE:'Microinvest' organizationalUnitName:PRINTABLE:'second subscriber' commonName :PRINTABLE:'POS-2' name :PRINTABLE:'Alexander' emailAddress :IA5STRING:'vpn@microinvest.net' Certificate is to be certified until Nov 17 18:42:13 2024 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y Write out database with 1 new entries Data Base Updated
7. Генерация ключа Диффи-Хеллмана: C:\Program Files\OpenVPN\easy-rsa>build-dh.bat
WARNING: can't open config file: /etc/ssl/openssl.cnf Loading 'screen' into random state - done Generating DH parameters, 1024 bit long safe prime, generator 2 This is going to take a long time . . . +. +.+. . +. . +. +.. . +. +. . +. . +.+. +. . +. +. . . +. +. ..+. +. . +. +. . . ++*++*++*
Создание конфигов
Перейти в C:\Program Files\OpenVPN\config
Для центрального сервера:
- Создать папку C:\Program Files\OpenVPN\config\keys. Вставить в неё файлы с копии dh1024.pem, ca.crt, server.crt, server.key
- Создать файл C:\Program Files\OpenVPN\config\server.ovpn со следующими настройками:
dev tap #Тут ждём соединения (проще говоря, IP интерфейса, который смотрит в интернет) local 192.168.0.7 port 1194 proto udp dev-node OpenVPN ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem # Назначаем серверу 192.168.7.1 server 192.168.7.0 255.255.255.0 # В файле ipp.txt будут привязки в виде "имя сертификата, IP": # POS-1,192.168.7.10 # POS-2,192.168.7.20 # Файл можно править вручную, чтобы назначать IP после остановки службы с последующим запуском ifconfig-pool-persist ipp.txt route 192.168.7.0 255.255.255.0 keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log log-append openvpn.log verb 3 mute 20
Для клиента (POS-1) (на клиенте выполнить пункты 1-4 данного руководства):
- Создать папку C:\Program Files\OpenVPN\config\keys. Вставить в неё файлы с копии dh1024.pem, ca.crt, POS-1.crt, POS-1.key
- Создать файл C:\Program Files\OpenVPN\config\client.ovpn со следующими настройками:
client dev tap dev-node OpenVPN proto udp # IP или DNS-имя вашего центрального сервера # remote 123.123.123.123 1194 remote vpn.microinvest.net 1194 resolv-retry infinite nobind persist-key persist-tun ca keys/ca.crt cert keys/POS-1.crt key keys/POS-1.key dh keys/dh1024.pem ns-cert-type server comp-lzo verb 3 mute 20
Для другого клиента в настройках меняются только строки cert и key.
Добавление нового клиента
При добавлении нового клиента ему понадобится новый сертификат. Для этого копируем с флэшки папку в C:\Program Files\OpenVPN\easy-rsa\keys с заменой и запускаем командную строку с правами администратора:
cd "C:\Program Files\OpenVPN\easy-rsa" vars.bat
Там же запускаем генерацию сертификата для нового клиента:
build-key
После этого делаем новый бэкап папки keys на флэшку.
Проверить валидность созданного сертификата можно командой:
"C:\Program Files\OpenVPN\bin\openssl" verify -CAfile "C:\Program Files\OpenVPN\config\keys\ca.crt" "C:\Program Files\OpenVPN\config\keys\POS-1.crt"
Для простоты добавления следующих клиентов достаточно сделать 50-100 сертификатов сразу и закинуть на флэшку. Останется поменять в конфиг файле наименование сертификата.
Другие бесплатные VPN-решения
- https://www.radmin-vpn.com/ru/help/
- https://www.softether.org/
Некоторые полезные ресурсы
- Документация по всем продуктам;
- Форум технической поддержки Microinvest, где Вы сможете быстро получить ответ на интересующий вопрос;
- Примеры автоматизации ресторанов и торговли на базе Microinvest в России и странах СНГ;
- График предстоящих обучений в России и странах СНГ;
- Программы для автоматизации ресторанов и кафе бесплатные полнофункциональные демо-версии продуктов Microinvest для ресторанного бизнеса;
- Программы для автоматизации торговли и склада бесплатные полнофункциональные демо-версии продуктов Microinvest для магазинов;
- Автоматизация торговли под Linux;
- www.microinvest.tv Видеоуроки, обучения;
- Корпоративный блог — интересные события в мире Microinvest;
- Все статьи Базы Знаний;
- Скачать офф-лайн версию Базы Знаний на свой компьютер.
OpenVPN и статическая ip-адресация
Возникла необходимость назначать статические ip-адреса клиентам. Здесь на форуме нашел ветку, где идет обсуждение https://forum.pfsense.org/index.php?topic=106612.msg593940#msg593940
Но я там до конца не понял, как это настроить. Если нетрудно, подскажите по-шагово как настроить.
pigbrother
отредактировано
Что конкретно непонятно?
В последнем посте вроде все разжевано.
dirar
отредактировано
pigbrother,
все получилось. Спасибо. По этой статье https://fastinetserver.wordpress.com/2013/03/09/pfsense-openvpn-static-ip-for-clients/ сделал.
Только при соединении происходит задержка.
pigbrother
отредактировано
Мне не очень нравится этот вариант, хотя работать он будет. В нем сервер может выдать заданный адрес произвольному клиенту раньше, чем станет подключаться клиент, котрому вы назначили этот IP. Остановился на решении с ifconfig-pool-persist ipp.txt 0.
В нем можно резервировать пул адресов для списка клиентов, клиенты же не входящие в пул будут получать динамические адреса.
dirar
отредактировано
Эту строчку ifconfig-pool-persist ipp.txt добавляю в Advanced? Я правильно понял?
А файл ipp.txt где разместить в pfSense?
pigbrother
отредактировано
Эту строчку ifconfig-pool-persist ipp.txt добавляю в Advanced? Я правильно понял?
А файл ipp.txt где разместить в pfSense?
Да, с указанием пути к файлу.
например
ifconfig-pool-persist /cf/conf/ips.list 0
dirar
отредактировано
Эту строчку ifconfig-pool-persist ipp.txt добавляю в Advanced? Я правильно понял?
А файл ipp.txt где разместить в pfSense?
Да, с указанием пути к файлу.
например
ifconfig-pool-persist /cf/conf/ips.list 0 Создал файл ips.list в директории /cf/conf и добавил туда строчки
client1,10.5.0.201
client2,10.5.0.202
А в OpenVPN — Server — Advanced добавил
ifconfig-pool-persist /cf/conf/ips.list Но к сожалению, пока не работает.
pigbrother
отредактировано
Эту строчку ifconfig-pool-persist ipp.txt добавляю в Advanced? Я правильно понял?
А файл ipp.txt где разместить в pfSense?
Да, с указанием пути к файлу.
например
ifconfig-pool-persist /cf/conf/ips.list 0 Создал файл ips.list в директории /cf/conf и добавил туда строчки
client1,10.5.0.201
client2,10.5.0.202
А в OpenVPN — Server — Advanced добавил
ifconfig-pool-persist /cf/conf/ips.list Но к сожалению, пока не работает. Если сервер работает с типом сети net30 (НЕ стоит галка Topology) то адреса следует раздавать с шагом в 4 адреса, начиная с 6:
имя_сертификата,адрес
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 Адреса смените на свои
10.5.0.х
или перевести сервер в режим subnet (поставить галку Topology)
Адреса тогда можно раздавать со 2-го с шагом в единицу, как у вас. А в OpenVPN — Server — Advanced добавил
ifconfig-pool-persist /cf/conf/ips.list Надо
ifconfig-pool-persist /cf/conf/ips.list 0;