Как заполнять файл ipp txt
Перейти к содержимому

Как заполнять файл ipp txt

  • автор:

как задать статичный Ip клиенту на связке openvpn + freeradius ?

Подскажите, пожалуйста, вот такой момент. Хочу настроить статические ip для каждого конкретного клиента на openvpn. у На freeradius сделал юзера user1, проверяю, всё работает, коннекчусь норрмально под каким-то рандомным Ip из 10.8.0.0/24.

В интернетах написано, что это неважно, где создаётся клиент (например, читал тут http://safesrv.net/simple-guide-to-assign-openvpn-users-static-ips/) — хоть на радиусе, хоть где. Поэтому наличие радиуса я во внимание не принял.

Судя по мануалу openvpn, есть два варианта назначать статичный ip.

Вариант первый: В конфиге сервера прописать директиву с указанием директории, где хранятся настройки клиентов:

client-config-dir /etc/openvpn/ccd

и в этой директории создать файл с именем нужного клиента, в моём случае это /etc/openvpn/ccd/user1

ifconfig-push 10.8.0.9 10.8.0.10

рестартую сервер, подключаюсь опять с рандомным ip.

Вариант второй: В конфиге сервера прописать директиву с указанием файла, в котором будут имена и айпишники юзеров. ifconfig-pool-persist /etc/openvpn/ipp.txt

user1,10.8.0.9

рестартую сервер, подключаюсь опять с рандомным ip.

Не уверен, что я всё делаю правильно, но, вот не получается чего-то.

ip указываю верные, в мануале там указано, какие ip могут иметь клиенты.

В логах Openvpn ошиблок нет. Права попробовал дать 777 на указанные файлы и папки; не помогло. Да у меня и так Openvpn от рута.

вот конфиг сервера:

local x.x.x.x #server ip port 1194 proto tcp dev tun0 ca ca.crt cert server.crt key server.key # This file should be kept secret dh dh2048.pem server 10.8.0.0 255.255.255.0 push "route 10.8.0.0 255.255.255.0" push "redirect-gateway def1" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log log openvpn.log verb 6 tcp-queue-limit 256 status /etc/openvpn/openvpn-status.log plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf client-cert-not-required script-security 3 # client-config-dir ccd ifconfig-pool-persist ipp.txt 

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

client dev tun proto tcp remote x.x.x.x 1194 # – server IP and OpenVPN Port nobind persist-key persist-tun ca ca.crt auth-user-pass comp-lzo reneg-sec 0 verb 3 

Слетает привязка IP-адреса в Openvpn, как исправить?

Проблема в том, что спустя какое-то время в этот файл в рандомное место (. ) дублируются те же филиалы, но с другими IP адресами, старые при этом не удаляются (. ). В итоге ломается весь обмен через веб-сервисы, потому что в главном координаторе прописаны адреса филиалов.
Конфиг клиента:

client dev tun proto udp # Адрес и порт сервера remote ХХХХХХХХХХХХХХ # Ключи должны лежать в папке с конфигом ca keys/ca.crt cert keys/rossosh.crt key keys/rossosh.key cipher AES-128-CBC nobind comp-lzo persist-key persist-tun verb 3

В чем может быть причина?

  • Вопрос задан более трёх лет назад
  • 2739 просмотров

Комментировать
Решения вопроса 1
AlexeySetevoi @AlexeySetevoi

На моей памяти ifconfig-pool-persist ipp.txt изначально задуман для того, чтобы раздавать айпишники из пула аналогично dhcp без обязательных привязок, и по истечению какого-то таймаута считает айпишник свободным и может его раздать.

Если вам именно статично назначать, может проще и лучше через ccd(client-config-dir) сделать отдельные статические настройки на каждого клиента — они точно не меняются софтом?

Либо если вам пул мил и дорог — у него есть третий параметр — число секунд. Ставите 0 — и openvpn не будет его обновлять.
Однако, в оф.мануале никто не гарантирует что openvpn обязан руководствоваться этим файлом, он их как предложения рассматривает.

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

OpenVPN

Свободная реализация технологии (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами.

Установка

apt install openvpn

Для Debian 11 (Bullseye):

apt install -t bullseye-backports openvpn

Настройка

Варианты управление ключами и сертификатами:

Настоятельно рекомендуется все операции с ключами производить на отдельном компьютере. Файл ca.key позволяет создавать ключи и сертификаты поэтому должен быть только у Администратора!

TAP — эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. Используется для создания сетевого моста. Если же у вас стоит задача объединить удаленные сети в единое адресное пространство, например сделать и в офисе и в филиале единую сеть 192.168.10.0/24, то тогда бы мы использовали tap интерфейс и указывали бы на компьютерах в обоих сетях не пересекающиеся адреса из одной подсети.

TUN — сетевой туннель, работает на сетевом уровне модели OSI, оперируя IP пакетами. Используется для маршрутизации.

Изменение пароля к клиентскому ключу

Change passphrase for private key

openssl rsa -des3 -in client.key -out client_new.key
set OPENSSL="C:\Program Files\OpenVPN\bin\openssl" %OPENSSL% rsa -des3 -in "C:\Program Files\OpenVPN\config\old.key" -out "C:\Program Files\OpenVPN\config\new.key"

Файлы

ca.crt

ta.key

Ключ шифрования начала сессии

dh.pem

Параметры Диффи — Хеллмана для шифрования со стороны сервера

server.crt

server.key

crl.pem

Список отозванных сертификатов

client.crt

client.key

ta.key

Ключ шифрования начала сессии

Сервер

systemctl start openvpn@server
systemctl status openvpn@server
systemctl start openvpn@server
systemctl stop openvpn@server

server.conf

Путь к настройкам: /etc/openvpn/server

local IP_АДРЕС_СЕРВЕРА port 1194 dev tun proto udp tun-mtu 1280 ca /etc/openvpn/server/ca.crt cert /etc/openvpn/server/server.crt key /etc/openvpn/server/server.key # This file should be kept secret dh /etc/openvpn/server/dh2048.pem crl-verify /etc/openvpn/server/crl.pem server 192.168.168.0 255.255.255.0 ifconfig-pool-persist /etc/openvpn/ipp.txt connect-retry-max 5 #auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env #script-security 3 system ;client-config-dir ccd ;route 192.168.40.128 255.255.255.248 push "route 192.168.168.0 255.255.255.0" push "route 10.1.0.0 255.255.255.0" push "dhcp-option DNS 192.168.168.1" push "dhcp-option DOMAIN domain.ru" keepalive 10 120 tls-auth /etc/openvpn/keys/ta.key 0 # This file is secret comp-lzo max-clients 5 user nobody group nogroup persist-key persist-tun status openvpn-status.log log-append /var/log/openvpn.log verb 3 mute 20 #client-connect /etc/openvpn/client-connect.sh

ipp.txt

client01,192.168.168.22 client02,192.168.168.26 client03,192.168.168.30 client04,192.168.168.34

Особенности ipp.txt в OpenVPN версии 2.4.0

Для выдачи нужных адресов используем такую конструкцию:

N002,10.1.0.2 N003,10.1.0.3 Client-01,10.1.0.4 Client-02,10.1.0.5 Client-03,10.1.0.6 N007,10.1.0.7 N008,10.1.0.8 N009,10.1.0.9 N010,10.1.0.10 Client-04,10.1.0.11 Client-05,10.1.0.12 Client-06,10.1.0.13

где N002 , N003 , N007 , N008 , N009 и N010 это несуществующие клиенты для резервирования неиспользуемых адресов.

ipp-restart.sh

Скрипт для обновления /etc/openvpn/server/ipp.txt , новый файл: /etc/openvpn/server/ipp.txt-new

#!/bin/bash systemctl stop openvpn@server sleep 3 cp /etc/openvpn/server/ipp.txt-new /etc/openvpn/server/ipp.txt sleep 3 systemctl start openvpn@server systemctl status openvpn@server

Особенности работы с MS Windows клиентами

OpenVPN выделяет для каждого клиента подсеть с маской /30 для обеспечения совместимости с клиентами MS Windows из-за ограничения режима эмуляции TUN драйвера TAP-Win32 .

Если к серверу OpenVPN не будут подключаться клиенты MS Windows, то можно отключить такой порядок выделения адресов указав в настройках сервера директиву ifconfig-pool-linear

192.168.1.4/30
192.168.1.4 Сетевой адрес (network address)
192.168.1.5 Адрес виртуального маршрутизатора, шлюза, в качестве которого выступает сервер OpenVPN (virtual IP address in the OpenVPN Server)
192.168.1.6 Адрес выдаваемый клиенту (assigned to the client)
192.168.1.7 Широковещательный адрес (broadcast address)

Драйвер TAP-Win32 включает DHCP-сервер, который назначает клиенту адрес 192.168.1.6 , а адрес 192.168.1.5 определяется как адрес DHCP-сервера.

Такой подход приводит к потере части IP-адресов, но это лучший способ обеспечения совместимости с всеми клиентами OpenVPN.

Выполнение команд при подключении клиента

Нужно задать имя скрипта:

client-connect /etc/openvpn/client-connect.sh

Пример кода скрипта:

case $ in Client01) sudo /usr/sbin/etherwake 00:11:22:33:44:55 ;; Client02) sudo /usr/sbin/etherwake 55:44:33:22:11:00 ;; esac exit 0
nobody ALL = (ALL) NOPASSWD:/usr/sbin/etherwake

logrotate

Настройка ротации протокола с помощью logrotate:

/var/log/openvpn.log

Клиент

Папка с ключами должна быть внутри папки config

Список ключей и сертификатов клиента:

Как сделать статический 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:

Как сделать статический IP клиента OpenVPN.

Е сли вы хотите чтобы для клиента raspberrypi использовался IP адрес 10.8.0.112 необходимо добавить такую строчку в файл ipp.txt:

Как сделать статический IP клиента OpenVPN.

Для применения изменений необходимо перезапустить сервер 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

Как сделать статический IP клиента OpenVPN.

Дальше необходимо перезапустить OpenVPN

Проверяем IP адреса клиентов

Независимо от выбранного вами метода, надо проверить применились ли изменения. На устройстве клиента вводим команду:

Как сделать статический IP клиента OpenVPN.

Мы рассмотрели несколько способов как сделать статические IP адреса клиентов OpenVPN.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *