Как открыть порт 1194 openvpn
Перейти к содержимому

Как открыть порт 1194 openvpn

  • автор:

OpenVPN требуется проброс порта

Не написали DNAT правило. И порт нужно разрешать в FORWARD.

mky ★★★★★
( 18.11.21 10:35:29 MSK )

iptables -t nat -A POSTROUTING -o eth0 -p tcp –dport 8082 -d 192.168.10.100 -j SNAT –to-source 192.168.10.1:8081

давным давно, когда у меня не было еще поднят OpenVPN я так обычно ломился из дома на сервер офисный

/sbin/iptables -t nat -A PREROUTING -p tcp -s $HOME -d $OFFICE --dport 3389 -j DNAT --to-destination $SI-NEW:3389 /sbin/iptables -A FORWARD -p tcp -d $SI-NEW --dport 3389 -j ACCEPT 

переменные понятны? Home и Office внешние IP, si-new внутренний ip сервера к которому пробрасываю.

alex_sim ★★★★
( 18.11.21 10:43:20 MSK )
Ответ на: комментарий от alex_sim 18.11.21 10:43:20 MSK

давным давно, когда у меня не было еще поднят OpenVPN я так обычно ломился из дома на сервер офисный

Во-во, давно, сейчас статический домашний IP даже за нормальные деньги заколебёшься получать 🙂

vodz ★★★★★
( 18.11.21 10:55:30 MSK )
Ответ на: комментарий от vodz 18.11.21 10:55:30 MSK

Во-во, давно, сейчас статический домашний IP даже за нормальные деньги заколебёшься получать 🙂

Ну видимо смотря где живешь, дома всегда был и сейчас есть белый IP за смешные деньги. Pоутер был DIR-300, поменял на микротик — поднял OpenVPN надобность в пробросе отпала.

alex_sim ★★★★
( 18.11.21 11:01:20 MSK )
Ответ на: комментарий от alex_sim 18.11.21 10:43:20 MSK

iptables -t nat -A PREROUTING -p tcp -d x.x.x.x --dport 8082 -j DNAT --to-destination 192.168.10.100:8081 iptables -A FORWARD -p tcp -d 192.168.10.100 --dport 8081 -j ACCEPT 

Не канает, + $HOME не может быть статикой.

Так тоже не канет:

iptables -t nat -A PREROUTING -d x.x.x.x -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.10.100:8081 iptables -t nat -A POSTROUTING -d 192.168.10.100 -p tcp -m tcp --dport 8081 -j SNAT --to-source 192.168.10.1 iptables -t nat -A OUTPUT -d x.x.x.x -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.10.100 iptables -I FORWARD 1 -d 192.168.10.100 -p tcp -m tcp --dport 8081 -j ACCEPT 

ramneak
( 18.11.21 11:09:04 MSK ) автор топика
Ответ на: комментарий от vodz 18.11.21 10:55:30 MSK

Во-во, давно, сейчас статический домашний IP даже за нормальные деньги заколебёшься получать 🙂

anc ★★★★★
( 18.11.21 11:23:18 MSK )
Ответ на: комментарий от ramneak 18.11.21 11:09:04 MSK

Не канает, + $HOME не может быть статикой.

HOME статика — мой конкретный случай

порты в POSTROUTING не надо указать (–to-source 192.168.10.1:8082) там NAT наверное

я правильно понимаю с 8082 бросается на 8081 значит и обратно надо указать, не?

alex_sim ★★★★
( 18.11.21 11:24:26 MSK )
Ответ на: комментарий от anc 18.11.21 11:23:18 MSK

Это еще Москва, у меня помоему 20 руб в месяц за белый

alex_sim ★★★★
( 18.11.21 11:27:57 MSK )
Ответ на: комментарий от ramneak 18.11.21 11:09:04 MSK

Показывайте все правила, выхлоп iptables-save

anc ★★★★★
( 18.11.21 11:53:46 MSK )
Ответ на: комментарий от alex_sim 18.11.21 11:27:57 MSK

Могу предположить, что зато у вас с юриков три шкуры дерут, а у нас нахаляву/почти-нахаляву 🙂 Я про белую статику.

anc ★★★★★
( 18.11.21 11:59:45 MSK )
Ответ на: комментарий от anc 18.11.21 11:59:45 MSK

Не знаю как у них, а у нас у юриков халява. Да и у физиков тоже, кроме пары провайдеров. У одного из них 1 рубль в день. Я тоже про белую статитку.

turtle_bazon ★★★★★
( 18.11.21 12:03:44 MSK )
Ответ на: комментарий от anc 18.11.21 11:59:45 MSK

Могу предположить, что зато у вас с юриков три шкуры дерут, а у нас нахаляву/почти-нахаляву 🙂 Я про белую статику.

В офисе платим 40 тыс сразу за год, нам включают максимальную скорость (85 Mps), на заводе тоже что то 4 тыс в месяц, но там помесячно и скорость (10Mps должна быть заводчанам хватало, но залез проверил тоже 85 админы лоханулись похоже)

Для юрика разве это 3 шкуры. Это вообще цена инета, сколько там статика стоит не знаю.

Чикагинск Челябинск, если что. 😉

alex_sim ★★★★
( 18.11.21 12:11:55 MSK )
Последнее исправление: alex_sim 18.11.21 12:15:43 MSK (всего исправлений: 2)

Ответ на: комментарий от turtle_bazon 18.11.21 12:03:44 MSK

Раньше, лет 5-12 назад также было?

anc ★★★★★
( 18.11.21 12:22:53 MSK )
Ответ на: комментарий от alex_sim 18.11.21 12:11:55 MSK

Я только про белую статику 🙂 Три шкуры забыл в кавычки взять, подразумевал что она платная 🙂

anc ★★★★★
( 18.11.21 12:27:34 MSK )
Ответ на: комментарий от anc 18.11.21 12:22:53 MSK

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

turtle_bazon ★★★★★
( 18.11.21 12:28:11 MSK )
Последнее исправление: turtle_bazon 18.11.21 12:28:31 MSK (всего исправлений: 1)

Ответ на: комментарий от turtle_bazon 18.11.21 12:28:11 MSK

Я про года не случайно написал, сталкивались с вариантами: «выделение адреса? дайте нцать денег». Причем именно за выделение.

anc ★★★★★
( 18.11.21 12:50:20 MSK )
Ответ на: комментарий от anc 18.11.21 11:53:46 MSK
ramneak
( 18.11.21 13:04:37 MSK ) автор топика
Ответ на: комментарий от anc 18.11.21 12:50:20 MSK

Я про года не случайно написал, сталкивались с вариантами: «выделение адреса? дайте нцать денег». Причем именно за выделение.

Скорее всего там было «дополнительного».

vodz ★★★★★
( 18.11.21 13:13:56 MSK )
Ответ на: комментарий от vodz 18.11.21 13:13:56 MSK

Нет. Один из примеров как ша помню был в Владике.

anc ★★★★★
( 18.11.21 13:16:09 MSK )
Ответ на: комментарий от ramneak 18.11.21 13:04:37 MSK

1. На будушее выкладывайте текстовый выхлоп сюда, а не скриншотами, отвечать на скриншот никакого удовольствия.
2. Я правильно догадался, это выхлоп с VPS ? Если да, то последнее правило SNAT ну совсем не по месту.

anc ★★★★★
( 18.11.21 13:21:06 MSK )
Ответ на: комментарий от anc 18.11.21 13:21:06 MSK

root@vps:~# iptables-save # Generated by iptables-save v1.8.4 on Thu Nov 18 17:36:48 2021 *filter :INPUT ACCEPT [105:7104] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [96:15328] -A INPUT -p tcp -m tcp --dport 1194 -j ACCEPT -A INPUT -p tcp -m tcp --dport 8082 -j ACCEPT -A INPUT -p udp -m udp --dport 8082 -j ACCEPT -A FORWARD -d 192.168.10.100/32 -p tcp -m tcp --dport 8081 -j ACCEPT -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -s 172.17.0.0/24 -j ACCEPT COMMIT # Completed on Thu Nov 18 17:36:48 2021 # Generated by iptables-save v1.8.4 on Thu Nov 18 17:36:48 2021 *nat :PREROUTING ACCEPT [17:995] :INPUT ACCEPT [16:796] :OUTPUT ACCEPT [6:456] :POSTROUTING ACCEPT [8:560] -A PREROUTING -d x.x.x.x/32 -p tcp -m tcp --dport 8082 -j DNAT --to-destination 192.168.10.100:8081 -A OUTPUT -d x.x.x.x/32 -p tcp -m tcp --dport 8081 -j DNAT --to-destination 192.168.10.100 -A POSTROUTING -s 172.17.0.0/24 ! -d 172.17.0.0/24 -j SNAT --to-source x.x.x.x COMMIT # Completed on Thu Nov 18 17:36:48 2021 root@vps:~# 

Почему не получается открыть порт для OpenVPN?

Недавно, после попытки установить VestaCP и её кривого удаления(осталось много пакетов, которые установились с ней) перестал работать OpenVPN(на порту 1194). Сканер портов показывает, что порт 1194 «filtered». Перепробовал уже кучу всего, не знаю что еще делать. Хелп, плс.

Вот правила файрвола AWS(виртуальная машина хостится там):

5afb6f418ed6f266492951.jpeg

Вот вывод ufw status

To Action From -- ------ ---- Postfix ALLOW Anywhere 1194/udp ALLOW Anywhere OpenSSH ALLOW Anywhere 22 ALLOW Anywhere 443 ALLOW Anywhere 8083 ALLOW Anywhere 80 ALLOW Anywhere Postfix (v6) ALLOW Anywhere (v6) 1194/udp (v6) ALLOW Anywhere (v6) OpenSSH (v6) ALLOW Anywhere (v6) 22 (v6) ALLOW Anywhere (v6) 80 (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6) 1194/tcp (v6) ALLOW Anywhere (v6)

Вот вывод netstat -ntulp

Здесь почему-то напротив порта 1194 нет строки LISTEN, может дело в этом? Если да, то почему и как исправить?

tcp 0 0 127.0.0.1:12301 0.0.0.0:* LISTEN 1555/opendkim tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 1441/dovecot tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 1441/dovecot tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 1954/exim4 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1512/vsftpd tcp 0 0 172.31.41.165:53 0.0.0.0:* LISTEN 1418/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1418/named tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1954/exim4 tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1418/named tcp 0 0 0.0.0.0:2525 0.0.0.0:* LISTEN 1954/exim4 tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 1441/dovecot tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 1440/zabbix_agentd tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 1441/dovecot tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 1954/exim4 tcp6 0 0 . 110 . * LISTEN 1441/dovecot tcp6 0 0 . 143 . * LISTEN 1441/dovecot tcp6 0 0 . 80 . * LISTEN 1660/apache2 tcp6 0 0 . 53 . * LISTEN 1418/named tcp6 0 0 . 3128 . * LISTEN 743/(squid-1) tcp6 0 0 ::1:953 . * LISTEN 1418/named tcp6 0 0 . 443 . * LISTEN 1660/apache2 tcp6 0 0 . 2236 . * LISTEN 1446/sshd tcp6 0 0 . 993 . * LISTEN 1441/dovecot tcp6 0 0 . 10050 . * LISTEN 1440/zabbix_agentd tcp6 0 0 . 995 . * LISTEN 1441/dovecot tcp6 0 0 . 3306 . * LISTEN 1518/mysqld udp 0 0 0.0.0.0:37120 0.0.0.0:* 743/(squid-1) udp 0 0 10.8.0.1:53 0.0.0.0:* 1418/named udp 0 0 172.31.41.165:53 0.0.0.0:* 1418/named udp 0 0 127.0.0.1:53 0.0.0.0:* 1418/named udp 0 0 0.0.0.0:68 0.0.0.0:* 1144/dhclient udp 0 0 0.0.0.0:1194 0.0.0.0:* 1492/openvpn udp6 0 0 . 55121 . * 743/(squid-1) udp6 0 0 . 53 . * 1418/named

Вывод iptables -L : https://pastebin.com/ApMia7fB
Заранее спасибо за ответы.

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

2 комментария

Простой 2 комментария

Как настроить OpenVPN на Debian 11. Часть 1

Когда вы настраиваете удалённый доступ, важно не только предоставить всем сотрудникам подключение к нужным сервисам, но и позаботиться о безопасности. В этом помогает VPN — виртуальная частная сеть. VPN‑сервер действует как единая точка входа: он аутентифицирует пользователей и создаёт зашифрованный туннель между их устройствами и частной сетью. А ещё он считается более гибким решением, чем, например, SSH Jump Server.

Вы можете использовать платный VPN или создать и администрировать собственный. В этой статье разбираем, как настроить OpenVPN на Debian 11.

Вам понадобится

  • два сервера Debian 11: один — для размещения OpenVPN, второй — для центра сертификации (Certificate Authority или CA);
  • пользователь с привилегиями sudo на обоих серверах;
  • Easy‑RSA на обоих серверах (это утилита, которую мы будем использовать для управления сертификатами VPN).

Хотя технически можно запустить CA с вашего OpenVPN‑сервера или локального компьютера, безопаснее хранить CA на отдельном сервере, который не подключен к интернету постоянно. Так у злоумышленников меньше шансов получить доступ к закрытому ключу и использовать его для подписания новых сертификатов.

Также обращаем внимание, что если вы отключите аутентификацию по паролю при настройке серверов, в дальнейшем можете столкнуться с трудностями при передаче файлов между ними. Чтобы решить эту проблему, вы можете повторно включить аутентификацию по паролю на каждом сервере. Или в качестве альтернативы — сгенерировать пару SSH‑ключей для каждого сервера, а затем добавить открытый SSH‑ключ OpenVPN‑сервера в файл authorized_keys и наоборот. Здесь подробнее о том, как настроить SSH‑ключи в Debian 11 для любого из этих решений.

Шаг 1: установка OpenVPN

Для начала обновите индекс пакета VPN‑сервера и установите OpenVPN. OpenVPN доступен в репозиториях Debian по умолчанию, поэтому вы можете использовать apt для установки:

sudo apt update sudo apt install openvpn

Поскольку мы уже установили Easy‑RSA на оба сервера в качестве предварительного условия и инициализировали CA, мы готовы сгенерировать сертификат VPN‑сервера.

Шаг 2: создание сертификата сервера, ключа и файлов шифрования

На сервере OpenVPN перейдите в каталог /easy-rsa и запустите сценарий easyrsa с параметром gen-req , за которым идёт общее имя компьютера. Хорошо, если вы сделаете это описательно. В рамках этой статьи общее имя OpenVPN‑сервера — «server». Не забудьте включить опцию nopass . В противном случае файл запроса будет защищен паролем, что впоследствии приведёт к проблемам с правами доступа:

Примечание: если выберете имя, отличное от «server», вам придётся изменить некоторые из приведенных ниже инструкций. Например, при копировании сгенерированных файлов в каталог /etc/openvpn придётся заменить имена. Позже также придётся изменить файл /etc/openvpn/server.conf , чтобы указать правильные .crt и .key .

cd ~/easyrsa ./easyrsa gen-req server nopass

Скрипт предложит ввести общее имя, которое вы хотите отобразить в запросе на подписание сертификата (CSR). По умолчанию в нём будет отображаться любое имя, которое вы передали в ./easyrsa gen-req . Введите ENTER , чтобы принять имя по умолчанию, или укажите другое.

Это создаст закрытый ключ для сервера и файл запроса сертификата с именем server.req . Скопируйте ключ сервера в каталог /etc/openvpn/ :

sudo cp ~/easy-rsa/pki/private/server.key /etc/openvpn/

Используя безопасный метод (например, SCP), перенесите файл server.req на свою машину CA:

scp ~/easy-rsa/pki/reqs/server.req sammy@your_CA_ip:/tmp

Затем на машине CA перейдите в каталог ~/easy-rsa :

cd ~/easy-rsa

Используя скрипт easyrsa , импортируйте файл server.req , следуя пути к файлу с общим именем, которое вы ввели при создании CSR:

./easyrsa import-req /tmp/server.req server

Затем подпишите запрос, запустив параметр easyrsa с помощью sign-req . Тип запроса может быть либо client , либо server . Для запроса сертификата OpenVPN-сервера обязательно используйте тип запроса server :

./easyrsa sign-req server server

В выходных данных вам предложат подтвердить, что запрос исходит из надёжного источника. Введите yes и нажмите ENTER , чтобы подтвердить это:

Если вы зашифровали ключ CA, следуя перечисленным в начале статьи инструкциям, на этом этапе вам будет предложено ввести пароль.

Далее нужно передать подписанный сертификат обратно на VPN-сервер с помощью безопасного метода:

scp pki/issued/server.crt sammy@your_server_ip:/tmp

Также нужно перенести на VPN-сервер файл ca.crt :

scp pki/ca.crt sammy@your_server_ip:/tmp

ca.crt нужен, чтобы OpenVPN знал, что может доверять сущности, подписавшей server.crt.

Затем на OpenVPN-сервере скопируйте файлы server.crt и ca.crt в каталог /etc/openvpn/ :

sudo cp /tmp/ /etc/openvpn/

Перейдите в каталог ~/easy-rsa :

cd ~/easy-rsa

Оттуда создайте надёжный ключ Diffie-Hellman, набрав:

./easyrsa gen-dh

Это может занять несколько минут. Далее сгенерируйте подпись HMAC, чтобы усилить возможности проверки TLS-сервера:

sudo openvpn --genkey secret ta.key

Когда команда завершится, скопируйте два новых файла в каталог /etc/openvpn/ :

sudo cp ~/easy-rsa/ta.key /etc/openvpn/ sudo cp ~/easy-rsa/pki/dh.pem /etc/openvpn/

Все файлы сертификатов и ключей, необходимые серверу, сгенерированы. Теперь можем переходить к созданию сертификатов и ключей, которые клиентский компьютер будет использовать для доступа к OpenVPN-серверу.

Шаг 3: генерация клиентского сертификата и пары ключей

Вы можете сгенерировать закрытый ключ и запрос сертификата на клиентской машине, а затем отправить его в CA для подписи, но в этой статье разберём процесс генерации запроса сертификата на VPN-сервере. Преимущество данного способа в том, что мы можем создать серверный скрипт, который автоматически сгенерирует файлы конфигурации клиента, содержащие все необходимые ключи, сертификаты и параметры в одном файле.

На этом шаге сначала сгенерируем пару клиентского ключа и сертификата. Если у вас более одного клиента, можете повторить этот процесс для каждого из них. Но, обратите внимание, что вам нужно будет передать скрипту уникальное значение имени для каждого клиента. На протяжении всей статьи первая пара сертификат/ключ упоминается как client1 .

На VPN-сервере начните с создания структуры каталогов в домашнем каталоге для хранения клиентского сертификата и файлов ключей:

mkdir -p ~/client-configs/keys

Поскольку вы будете хранить пары сертификатов/ключей ваших клиентов и файлы конфигурации в этом каталоге, следует заблокировать его разрешения в качестве меры безопасности:

chmod -R 700 ~/client-configs

Затем нужно вернуться в каталог ~/easy-rsa и запустить скрипт easyrsa с параметрами gen-req и nopass , а также общим именем для клиента:

cd ~/easy-rsa ./easyrsa gen-req client1 nopass

Нажмите ENTER , чтобы подтвердить общее имя. Затем скопируйте файл client1.key в каталог /client-configs/keys/ , который создали ранее:

cp pki/private/client1.key ~/client-configs/keys/

Перенесите файл client1.req на машину CA, используя безопасный метод:

scp pki/reqs/client1.req sammy@your_CA_ip:/tmp

На машине CA перейдите в каталог ~/easy-rsa и импортируйте запрос сертификата:

cd ~/easy-rsa ./easyrsa import-req /tmp/client1.req client1

Затем подпишите запрос, как делали это на предыдущем шаге. Но на этот раз обязательно укажите тип запроса client :

./easyrsa sign-req client client1

В командной строке введите yes , чтобы подтвердить, что вы готовы подписать запрос на сертификат и что он поступил из надёжного источника:

Если вы зашифровали свой ключ CA, вам будет снова предложено ввести пароль.

Это создаст файл сертификата клиента с именем client1.crt . Перенесите этот файл обратно на сервер:

scp pki/issued/client1.crt sammy@your_server_ip:/tmp

На OpenVPN-сервере скопируйте сертификат клиента в каталог /client-configs/keys/ :

cp /tmp/client1.crt ~/client-configs/keys/

Файлы ca.crt и ta.key также скопируйте в каталог /client-configs/keys/ :

sudo cp ~/easy-rsa/ta.key ~/client-configs/keys/ sudo cp /etc/openvpn/ca.crt ~/client-configs/keys/

Все сертификаты и ключи сгенерированы и хранятся в соответствующих каталогах. Есть ещё несколько действий, которые необходимо выполнить с этими файлами, но они появятся в следующих шагах. А пока перейдём к настройке OpenVPN на сервере.

Шаг 4: настройка OpenVPN

Начните с копирования образца файла конфигурации OpenVPN в каталог конфигурации, который будет использоваться в качестве основы для вашей настройки:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/

Откройте файл конфигурации сервера в текстовом редакторе:

sudo nano /etc/openvpn/server.conf

Найдите раздел HMAC, выполнив поиск по директиве tls-auth . Эта строка уже должна быть раскомментирована, но если это не так, то удалите «;»:

Далее найдите раздел о криптографических шифрах, выполнив поиск закомментированных строк шифра. Шифр AES-256-CBC предлагает хороший уровень шифрования и хорошо поддерживается. Опять же, эта строка уже должна быть раскомментирована, но если это не так, просто удалите «;»:

Добавьте директиву auth для выбора алгоритма обработки сообщений HMAC. Неплохой выбор — SHA256 :

Найдите строку, содержащую директиву dh , которая определяет параметры Diffie-Hellman. Из-за изменений, внесенных в Easy-RSA, имя файла для ключа Diffie-Hellmanможет отличаться от того, что указано в примере файла конфигурации сервер. При необходимости измените указанное здесь имя файла, удалив 2048 , чтобы оно соответствовало ключу, сгенерированному на предыдущем шаге:

Наконец, найдите настройки user и group и удалите «;» в начале каждого, чтобы раскомментировать строки:

Изменения, которые вы внесли в образец файла server.conf до этого момента, необходимы для работы OpenVPN. Изменения, описанные ниже, являются необязательными, хотя они также необходимы для многих распространенных случаев использования.

Отправка изменений DNS для перенаправления трафика через VPN (необязательно)

Приведенные выше настройки создадут VPN-соединение между двумя машинами, но не заставят их использовать туннель. Чтобы применить VPN для маршрутизации всего трафика, нужно передать настройки DNS на клиентские компьютеры.

В файле server.conf есть несколько директив, которые нужно изменить, чтобы включить эту функциональность. Найдите раздел redirect-gateway и удалите точку с запятой «;» из начала строки redirect-gateway :

Найдите раздел dhcp-option . Снова уберите «;» перед обеими строками, чтобы раскомментировать их:

Это поможет клиентам перенастроить конфигурацию DNS, чтобы использовать VPN-туннель в качестве шлюза по умолчанию.

Настройка порта и протокола

По умолчанию сервер OpenVPN использует порт 1194 и протокол UDP для приема клиентских подключений. Если вам нужно использовать другой порт из-за ограниченных сетевых сред, вы можете изменить параметр port . Если вы не размещаете веб-контент на сервере OpenVPN, порт 443 — оптимальный выбор, поскольку обычно он разрешён правилами брандмауэра.

Часто протокол также ограничен этим портом. Если это так, измените proto с UDP на TCP:

Если вы все-таки переключите протокол на TCP, нужно изменить значение директивы explicit-exit-notify с 1 на 0 , поскольку эта директива используется только UDP. Невыполнение этого требования при использовании TCP приведёт к ошибкам при запуске службы OpenVPN:

Если у вас нет необходимости использовать другой порт и протокол, лучше всего оставить эти настройки по умолчанию.

Учетные данные не по умолчанию

Если во время команды . /easyrsa gen-req вы выбрали другое имя для сертификата сервера на шаге 2, измените строки cert и key , чтобы они указывали на соответствующие файлы .crt и .key . Если вы использовали имя по умолчанию, оно уже задано правильно:

Когда закончите, сохраните и закройте файл.

Шаг 5: настройка сетевой конфигурации сервера

Есть некоторые аспекты сетевой конфигурации сервера, которые нужно настроить, чтобы OpenVPN мог правильно направлять трафик через VPN. Первым из них является IP-переадресация — метод определения, куда следует направлять IP-трафик.

Настройте параметры переадресации IP вашего сервера по умолчанию, изменив файл /etc/sysctl.conf :

sudo nano /etc/sysctl.conf

Внутри найдите строку с комментариями, которая устанавливает net.ipv4.ip_forward . Удалите символ «#» из начала строки, чтобы раскомментировать этот параметр:

Сохраните и закройте файл, когда закончите.

Чтобы прочитать файл и скорректировать значения для текущего сеанса, введите:

sudo sysctl -p
Output net.ipv4.ip_forward = 1

Если вы следовали инструкции по настройке сервера Debian 11, у вас должен быть установлен брандмауэр UFW. В рамках этой статьи нам понадобится брандмауэр для управления частью трафика, поступающего на сервер. Некоторые правила брандмауэра должны быть изменены, чтобы включить masquerading и концепцию iptables, обеспечивающую динамическую трансляцию сетевых адресов для правильной маршрутизации клиентских подключений.

Прежде чем открывать файл конфигурации брандмауэра для добавления правил masquerading, нужно найти общедоступный сетевой интерфейс компьютера. Для этого введите:

ip route | grep default

Ваш публичный интерфейс — это строка, следующая за «dev» в выходных данных команды. Например, приведенный ниже вывод показывает интерфейс с именем eth0 :

Когда у вас есть интерфейс, связанный с вашим маршрутом по умолчанию, откройте файл /etc/ufw/before.rules , чтобы добавить соответствующую конфигурацию:

sudo nano /etc/ufw/before.rules

Правила UFW обычно добавляются с помощью команды ufw . Однако правила, перечисленные в файле before.rules , считываются и применяются до загрузки обычных правил UFW. Ближе к началу файла добавьте выделенные ниже строки. Это установит политику по умолчанию для цепочки POSTROUTING в таблице nat и замаскирует любой трафик, поступающий из VPN. Не забудьте заменить eth0 в строке -A POSTROUTING :

# # rules.before # # Rules that should be run before the ufw command line added rules. Custom # rules should be added to one of these chains: # ufw-before-input # ufw-before-output # ufw-before-forward # # START OPENVPN RULES # NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to eth0 (change to the interface you discovered!) -A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE COMMIT # END OPENVPN RULES # Don't delete these required lines, otherwise there will be errors *filter . . .

Сохраните и закройте файл, когда закончите.

Затем укажите UFW, чтобы он также разрешал переадресацию пакетов по умолчанию. Для этого откройте файл /etc/default/ufw :

sudo nano /etc/default/ufw

Внутри найдите директиву DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :

DEFAULT_FORWARD_POLICY="ACCEPT"

Сохраните и закройте файл, когда закончите.

Затем настройте брандмауэр так, чтобы он пропускал трафик через OpenVPN. Если вы не изменили порт и протокол в файле /etc/openvpn/server.conf , нужно открыть UDP-трафик на порт 1194 . Если вы изменили порт и/или протокол, замените выбранные значения.

Если вы не добавили SSH-порт, добавьте его также здесь:

sudo ufw allow 1194/udp sudo ufw allow OpenSSH

После добавления этих правил отключите и снова включите UFW, чтобы перезапустить его и загрузить изменения из всех файлов, которые вы изменили:

sudo ufw disable sudo ufw enable

Теперь ваш сервер настроен на корректную обработку трафика OpenVPN.

Шаг 6: запуск и включение службы OpenVPN

Наконец-то вы готовы запустить службу OpenVPN на своем сервере. Делается это с помощью утилиты systemctl :

sudo systemctl start openvpn@server

Команда запустит службу openvpn , используя /etc/openvpn/server.conf в качестве файла конфигурации.

Дважды проверьте, что служба успешно запущена, введя:

sudo systemctl status openvpn@server

Если все прошло хорошо, ваш результат будет выглядеть примерно так:

Output ● openvpn@server.service - OpenVPN connection to server Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled) Active: active (running) since Wed 2022-12-21 03:39:24 UTC; 29s ago Docs: man:openvpn(8) https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage https://community.openvpn.net/openvpn/wiki/HOWTO Main PID: 3371 (openvpn) Status: "Initialization Sequence Completed" Tasks: 1 (limit: 3587) Memory: 1.2M CGroup: /system.slice/system-openvpn.slice/openvpn@server.service └─3371 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --config /etc/openvpn/server.conf --writepid /run/openvpn/

Вы также можете проверить, доступен ли интерфейс OpenVPN tun0 , набрав:

ip addr show tun0

Это выведет сконфигурированный интерфейс:

После запуска сервиса включите его, чтобы он автоматически запускался при загрузке:

sudo systemctl enable openvpn@server

Коротко о главном

Теперь ваш сервис OpenVPN запущен и работает. Однако, прежде чем вы сможете начать его использовать, вы должны сначала создать файл конфигурации для клиентской машины. В этой части мы разобрали, как создавать пары сертификат/ключ для клиентов, а в следующей расскажем, как создать инфраструктуру, которая будет генерировать файлы конфигурации клиента. Также отдельно рассмотрим, как установить клиентский VPN-профиль на Windows, macOS, Linux, iOS и Android.

Настройка OpenVPN сервера и клиента на Mikrotik

Бывают случаи, когда необходимо настроить удалённый доступ на mikrotik, или даже на несколько.
Особенно это актуально, если вы обслуживаете несколько объектов и нет возможности физически постоянно присутствовать возле оборудования.
В этом статье мы разберём, как настроить OpenVPN сервер на mikrotik, а также клиенты на mikrotik и компьютере под управлением Windows.

Для работы нам понадобиться Белый IP адрес (он и будет адресом сервера в наших настройках), для доступа к серверу из интернета и сертификаты безопасности.

Краткий план данной статьи:

  • Создание сертификатов и ключей OpenVPN
  • Создание сервера OpenVPN на Mikrotik
  • Создание клиента OpenVPN на ПК
  • Создание клиента OpenVPN на Mikrotik

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

1) Скачаем программу OpenVPN с официального сайта

Скачаем программу OpenVPN с официального сайта

2) Устанавливаем программу, выбрав все галочки.

EasyRSA Certificate Management Scripts (специально созданная программа по созданию ключей и сертификатов,которая использует openssl для выполнения действий с ключами и сертификатами) нам обязательно понадобится для генерации ключей и сертификатов.

Настройка OpenVPN сервера и клиента на Mikrotik

3) Указываем путь. В дальнейшем он нам понадобиться. В нашем случае используем стандартный C:\Program Files\OpenVPN

4) После установки заходим в C:\Program files\OpenVPN\easy-rsa

Открываем vars.bat (если его нет, то vars.bat.sample) блокнотом или NotePad++ и редактируем его.

set KEY_COUNTRY=RU
set KEY_PROVINCE=MoscowRegion
set KEY_CITY=MOSCOW
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@mail.com
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

В строках set KEY_CN и set KEY_NAME указываем server
Последние 2 строки — параметры по умолчанию. Остальное можете редактировать под себя.

Сохраняем файл как vars.bat на рабочий стол, а затем копируем в папку C:\Program files\OpenVPN\easy-rsa
Чаще всего сохранить напрямую в исходную папку не получится — не хватает прав.

5) Отредактируем файл openssl-1.0.0.cnf
Так же открываем с помощью блокнота или notepad++

Нас интересует строка
default_days = 3650 # how long to certify for
Она отвечает за время жизни сертификата. Если значение отличается — то указываем 3650 (10 лет).
Сохраняем.

6) Запускаем командную строку от имени администратора:
Пуск — Все программы — Стандартные
Правой кнопкой мыши на «Командная строка» и в меню — Запустить от имени администратора
Командную строку не закрываем до конца процесса генерации сертификатов.

Настройка OpenVPN сервера и клиента на Mikrotik

7) По очерёдно выполняем следующие три команды
cd: C:\Program files\OpenVPN\easy-rsa
vars
clean-all

В итоге мы должны увидеть сообщение «Скопировано файлов: 1» дважды.

Настройка OpenVPN сервера и клиента на Mikrotik

В папке C:\Program files\OpenVPN\easy-rsa появится папка keys с двумя файлами index.txt и serial

Настройка OpenVPN сервера и клиента на Mikrotik

8) Генерируем ключ Диффи Хельмана — команда build-dh
Генерация займёт некоторое время. Дождитесь окончания.

9) Генерируем ключ центра сертификации (CA) — build-ca

Нажимаем Enter пока не закончатся вопросы.
Вы увидите в командной строке путь C:\Program files\OpenVPN\easy-rsa

Настройка OpenVPN сервера и клиента на Mikrotik

Нет смысла менять заданные значения. Вы ранее прописали эти параметры в файле vars.bat

10) Генерируем сертификат сервера — команда build-key-server server
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat) пока не дойдём до вопросов.
Sign the certificate? (Создание сертификата на 3650 дней)
1 out of 1 certificate requests certified, commit? (Запись сертификата в базу)
На вопросы отвечаем нажатием Y

Настройка OpenVPN сервера и клиента на Mikrotik

11) Генерируем сертификат клиента build-key client
Нажимаем Enter (оставляем параметры по умолчанию, прописанные в vars.bat) пока не дойдём до вопросов Common Name и Name.
На эти вопросы отвечаем client — это название создаваемого сертификата.

На вопросы Sign the certificate? и 1 out of 1 certificate requests certified, commit? отвечаем нажатием Y

12) Генерация сертификатов окончена.
В папке C:\Program files\OpenVPN\easy-rsa\keys можно увидеть следующие файлы

Настройка OpenVPN сервера и клиента на Mikrotik

Сертификаты для сервера и клиентов готовы.

Настройке OpenVPN сервера на Mikrotik

Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 3 файла: ca.crt, server.crt, server.key
Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

Настройка OpenVPN сервера и клиента на Mikrotik

13) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
ca.crt
server.crt
server.key

Настройка OpenVPN сервера и клиента на Mikrotik

После импорта появится две записи

Настройка OpenVPN сервера и клиента на Mikrotik

14) Создадим пул адресов для VPN клиентов

IP — Pool — add (+)
Введём название openvpn-pool
Диапазон 172.30.0.2-172.30.0.253

Настройка OpenVPN сервера и клиента на Mikrotik

15) Создадим PPP профиль.

PPP — Profiles — add (+)
Введём название openvpn
Локальный адрес 172.30.0.1
Созданный Пул openvpn-pool
Остальные настройки оставляем по умолчанию
Нажимаем ОК

Настройка OpenVPN сервера и клиента на Mikrotik

16) Создадим непосредственно сам OpenVPN сервер
PPP — Interface — OVPN Server
Включаем Enable
Указываем порт 1194
Выбираем наш профиль openvpn
Поставим галочку Require Client Certificate
Выберем наш сертификат server.crt

Настройка OpenVPN сервера и клиента на Mikrotik

17) Создадим пользователя для подключения.
PPP — Secrets — add (+)
Введём имя пользователя и пароль ovpn_user1
Выбираем Сервис ovpn и профиль openvpn

Настройка OpenVPN сервера и клиента на Mikrotik

Создадим 2 пользователя:

ovpn_user1 для клиента на компьютере

ovpn_mikrotik1 для клиента на Mikrotik

Рекомендуется для каждого VPN клиента создавать отдельное уникальное имя пользователя.
В дальнейшем это упростит работу и позволит отслеживать всех подключенных VPN клиентов.

18) Настроим фаервол
IP — Firewall — add(+)
Во вкладке General указываем:
Chain — input
Protocol — tcp
Порт 1194
Интерфейс — ether1 (Если интернет идёт через него)
Вкладка Action:
Action — accept
Затем ОК

Настройка OpenVPN сервера и клиента на Mikrotik

Сервер настроен, теперь приступим к настройке VPN клиентов.

Настройка VPN клиента на компьютере под управлением Windows

19) Копируем в папку C:\Program files\OpenVPN\config\

из C:\Program files\OpenVPN\easy-rsa\keys следующие файлы
ca.crt, client.crt, client.key.

из C:\Program files\OpenVPN\simple-config\
client.ovpn

Создадим текстовый файл pass, где укажем логин и пароль от созданного VPN клиента на сервере.
В нашем случае это ovpn_user1

Настройка OpenVPN сервера и клиента на Mikrotik

20) Откроем файл client.ovpn с помощью блокнота или notepad++
Изменяем следующие строки:
#Протокол
proto tcp
#Адрес и порт сервера
remote ваш.ip.адрес.сервера 1194

#Проверяем правильность названия ключей
ca ca.crt
cert client.crt
key client.key

И в самом конце добавим строчку
auth-user-pass «C:\\Program files\\OpenVPN\\config\\pass.txt»
В общем итоге у нас получатся следующие настройки в этом файле:
client
dev tun
proto tcp
remote адрес_сервера 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert user.crt
key user.key
remote-cert-tls server
cipher AES-128-CBC
verb 3
auth-user-pass «c:\\Program Files\\OpenVPN\\config\\pass.txt»

Остальные настройки закоментированы решеткой «#» или точкой с запятой «;»

21) Сохраняем файл. Если сохранить в папку не получается — сохраняем на рабочий стол, а затем копируем с заменой.

Запускаем OpenVPN и подключаемся.

Настройка OpenVPN сервера и клиента на Mikrotik

После подключения можем увидеть, что нам назначен IP из диапазона, который ранее указали на сервере.

Настройка OpenVPN сервера и клиента на Mikrotik

Настройка VPN клиента на Mikrotik

Имея настроенный OpenVPN сервер, можно настроить доступ на Mikrotik даже там, где нет белого IP адреса.

22) Подключимся к Mikrotik с помощью программы Winbox.
Загрузим 2 файла: client.crt, client.key

Для этого в меню нажмём Files и перетащим их из папки C:\Program files\OpenVPN\easy-rsa\keys

Настройка OpenVPN сервера и клиента на Mikrotik

23) Далее необходимо их импортировать.
Откроем System – Certificates — Import и поочерёдно выберем сертификаты в этом порядке:
client.crt
client.key

Настройка OpenVPN сервера и клиента на Mikrotik

24) Настроим параметры сервера:
PPP — add(+) — OVPN client

Настройка OpenVPN сервера и клиента на Mikrotik

Во вкладке General указываем имя
Name — openVPN1 (любое, на ваше усмотрение)
Вкладка Dial Out:
Connect To — Адрес сервера(Внешний IP адрес главного hjenthf Mikrotik)
Port 1194
Указываем пользователя и пароль, который мы создали на VPN сервере
В нашем случае это пользователь ovpn_mikrotik1
Сертификат Client.crt

Нажимаем ОК

Настройка OpenVPN сервера и клиента на Mikrotik

25) В терминале набираем /interface ovpn-client monitor openVPN1
Должно появиться сообщение со статусом connected

Настройка OpenVPN сервера и клиента на Mikrotik

Теперь к этому mikrotik можно подключиться через VPN по адресу, который он поулчил от VPN сервера

Настройка OpenVPN сервера и клиента на Mikrotik

Посмотреть адрес можно:
В Mikrotik-клиенте в IP-Adresses строка с нашим интерфейсом openVPN1

Настройка OpenVPN сервера и клиента на Mikrotik

В Mikrotik-сервере PPP-Active Connections

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

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