Openvpn linux конфигурационный файл

OpenVPN

OpenVPN — свободная реализация технологии Виртуальной Частной Сети (VPN) с открытым исходным кодом для создания зашифрованных каналов типа точка-точка или сервер-клиенты между компьютерами. Она позволяет устанавливать соединения между компьютерами, находящимися за NAT-firewall, без необходимости изменения их настроек.

Варианты применения данной статьи

Хотим соединить в одну виртуальную сеть несколько локальных сетей в офисах, географически расположенных в разных местах, посредством Интернета.

Имея сервер с белым IP есть желание выходить в сеть с этого IP (например если этот IP за пределами страны или сети, в которой блокируются определенные ресурсы в Интернете)

Исходные данные

Локальная сеть 1

192.168.1.0/24 192.168.1.1 Белый внешний IP (здесь будет сервер OpenVPN) Внутренний IP сервера OpenVPN - 192.168.1.100

Локальная сеть 2

192.168.0.0/24 192.168.0.1 Динамический IP (или даже серый - не важно для клиента OpenVPN) Внутренний IP клиента OpenVPN - 192.168.0.100. Клиент в данном случае будет являться шлюзом для устройств в своей подсети.

Настройка OpenVPN

Установка

И на сервере и на клиенте ставим один и тот же пакет.

Создание сервера

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

Защита соединения в OpenVPN в данном случае строится на использовании сертификатов и ключей для сервера и для клиентов.

mkdir /etc/openvpn/easy-rsa cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa/2.0

Переходим в созданную директорию, где и займёмся генерацией ключей и сертификатов

Редактируем файл переменных

Здесь можно заполнить например так:

# Почти в самом низу файла, заполняем информацию о сертификатах по умолчанию (ваши значения). export KEY_COUNTRY="RU" export KEY_PROVINCE="Amur Region" export KEY_CITY="Blagoveschensk" export KEY_ORG="Organization" export KEY_EMAIL="vash@email.tut" export KEY_OU="MyOrganizationalUnit" # PKCS11 я не использовал, поэтому оставил без изменений. Кто шарит нафига эта штука, допишите статью. export PKCS11_MODULE_PATH=changeme export PKCS11_PIN=1234 #Добавить export KEY_ALTNAMES="VPNsRUS"
cp openssl-1.0.0.cnf openssl.cnf

Очищаем от старых сертификатов и ключей папку keys и создаем серийный и индексные файлы для новых ключей

Читайте также:  Linux find files in terminal

Создаем сертификат. По умолчанию поля будут заполняться данными, введенными ранее в vars, поэтому можно ничего не менять.

FIXME

A challenge password []: Если вы решили ввести challenge password, то необходимо убедиться, что сохранили этот пароль в безопасном месте. Если вам понадобится когда-нибудь переустановить этот сертификат, то потребуется ввести этот пароль снова.

В конце соглашаемся с запросом на подпись и добавление сертификата в базу.

Можно сразу создать ключи для клиента, перейдя в соответствующую часть статьи. Я вынес в отдельный раздел, т.к. ключи клиента могут генерироваться не один раз, чтобы было понятнее с чего начать в том случае когда нужно добавить клиента

Создаем ключ Диффи-Хеллмана

Cоздаем ключ для tls-аутификации

openvpn --genkey --secret keys/ta.key
cp -r /etc/openvpn/easy-rsa/2.0/keys/ /etc/openvpn/

Создание файла конфигурации сервера

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ cd /etc/openvpn gunzip -d /etc/openvpn/server.conf.gz nano /etc/openvpn/server.conf
port 1194 # Протокол может быть UDP или TCP, я выбрал 1-й вариант. proto udp # Если вы выберите протокол TCP, здесь должно быть устройство tap. Однако, это вариант я не проверял, поэтому ищите информацию отдельно. FIXME dev tun # Указываем где искать ключи ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key # This file should be kept secret dh /etc/openvpn/keys/dh2048.pem # Для 12.04 dh1024.pem # Задаем IP и маску виртуальной сети. Произвольно, но если не уверены лучше делайте как показано здесь server 10.8.0.0 255.255.255.0 # Указыем, где хранятся файлы с настройками IP-адресов клиентов (создадим ниже) client-config-dir /etc/openvpn/ccd # Запоминать динамически выданные адреса для VPN-клиентов и при последующих подключениях назначать те же значения. ifconfig-pool-persist /etc/openvpn/ipp.txt # Указываем сети, в которые нужно идти через туннель (сеть-клиента). route 192.168.0.0 255.255.255.0 # Включаем TLS tls-server tls-auth /etc/openvpn/keys/ta.key 0 tls-timeout 120 auth SHA1 cipher AES-256-CBC # Если нужно, чтобы клиенты видели друг друга раскомментируйте ;client-to-client keepalive 10 120 # Сжатие трафика. Для отключения используйте на сервере и клиенте comp-lzo no comp-lzo # Максимум клиентов max-clients 10 user nobody group nogroup # Не перечитывать ключи, не закрывать и переоткрывать TUN\TAP устройство, после получения SIGUSR1 или ping-restart persist-key persist-tun status openvpn-status.log log /var/log/openvpn.log # Детальность логирования verb 3 # Защита от повторов (максимум 20 одинаковых сообщений подряд) mute 20 # Файл отозванных сертификатов. Разремить, когда такие сертификаты появятся. ;crl-verify /etc/openvpn/crl.pem

Создадим директорию для клиентских конфигов

Читайте также:  Gnome theme kali linux

Можно запускать наш сервер OpenVPN

Смотрим список интерфейсов

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

значит VPN-сервер завелся. Если нет, то смотрим лог

Настройка маршрутизации на стороне сервера

Если сервер имеет «белый» IP то никакой маршрутизации на стороне сервера настраивать не нужно. Если сервер находится в локальной сети за NAT роутера то необходимо настроить маршрутизацию.
Для того, чтобы клиенты могли достучаться до сервера нужно пробросить порты с роутера на сервер. В разных моделях это делается по разному. Суть в том, чтобы стучась на внешний порт, например 12345 1) , клиенты попадали на порт OpenVPN-сервера 1194 (или другой, который мы задали для нашего сервера). Кроме того устройствам в локальной сети нужно сообщить, что для доступа к сети за OpenVPN-сервером нужно обращаться к нему. Но проще задать этот маршрут на роутере, который обслуживает локалку.

Создаем файл в каталоге ccd с тем же именем, что и ключ для клиента, т.е. /etc/openvpn/ccd/client

# Маршрут в сеть клиента. Требуется для доступа к сетевым устройствам в сети клиента. Если не требуется - не прописывайте. iroute 192.168.0.0 255.255.255.0 # Задаем маршрут для клиента, чтобы он видел сеть за OpenVPN-сервером. # Если маршрут требуется для всех подключаемых клиентов, достаточно эту # строку прописать в конфигурационный файл сервера server.conf push "route 192.168.1.0 255.255.255.0"

Включаем ipv4_forwarding

В /etc/sysctl.conf расскомментируем #net.ipv4.ip_forward=1 после чего

Источник

Настройка и использование OpenVPN на Ubuntu

Обновлено

Обновлено: 05.03.2023 Опубликовано: 23.01.2019

Тематические термины: VPN, Ubuntu, OpenVPN. В инструкции рассмотрим процесс установки и настройки VPN сервера OpenVPN на Linux Ubuntu.

Читайте также:  Подключиться к консоли линукс

Подготовка Ubuntu

* в данном примере московское время. Если в нашей системе используется брандмауэр, открываем порт, на котором будет слушать OpenVPN:

* в данной инструкции предполагается, что мы настроим VPN-сервер на UDP-порту 443, однако, по-умолчанию, OpenVPN работает на порту 1194. Для сохранения правила используем iptables-persistent:

Установка, настройка и запуск VPN-сервера

Обязательные шаги для развертывания сервиса — установка программного обеспечения, генерация сертификатов, настройка OpenVPN. Рассмотрим эти процессы по шагам.

Установка OpenVPN

Создание сертификатов

export KEY_COUNTRY=»RU»
export KEY_PROVINCE=»Sankt-Petersburg»
export KEY_CITY=»Sankt-Petersburg»
export KEY_ORG=»DMOSK COMPANY»
export KEY_EMAIL=»master@dmosk.ru»
export KEY_CN=»DMOSK»
export KEY_OU=»DMOSK»
export KEY_NAME=»name-openvpn-server.dmosk.ru»
export KEY_ALTNAMES=»name-openvpn-server»

* где KEY_CN и KEY_OU: рабочие подразделения (например, можно указать название отдела); KEY_NAME: адрес, по которому будет выполняться подключение (можно указать полное наименование сервера); KEY_ALTNAMES — альтернативный адрес. Следующие действия будут записеть от версии OpenVPN. Более новая позволяет создавать сертификаты на основе Easy RSA 3, старая работает на базе 2-й версии. Понять, какой вариант наш можно посмотрев на содержимое каталога easy-rsa:

Либо мы увидим в нем утилиту easyrsa (новая версия), либо набор утилит, начинающихся на build. Рассмотрим процесс формирования сертификата с использованием как RSA3, так и RSA2. а) Если используется новая версия (утилита easyrsa) 1. Инициализируем PKI:

* после вводим дважды пароль, который хотим использовать для ключа центра сертификации. На запрос «Common Name» можно просто нажать Enter:

* nopass можно упустить, если хотим повысить безопасность с помощью пароля на сертификат. На запрос «Common Name» можно просто нажать Enter:

Источник

Оцените статью
Adblock
detector