Перейти к содержимому

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

  • автор:

Настройка OpenVPN на Ubuntu Server для подключения клиентом Mikrotik

В данной инструкции мы рассмотрим настройку сервера OpenVPN на Ubuntu и конфигурирование Mikrotik для подключения по VPN.

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

Мы настроим наш сервер, чтобы он слушал на нестандартном порту OpenVPN — 443. Откроем порт в брандмауэре:

iptables -I INPUT -p tcp —dport 443 -j ACCEPT

* если мы будем использовать другой порт, меняем его на соответствующий. Также необходимо обратить внимание на протокол tcp. Необходимо использовать именно его, так как Mikrotik не поддерживаем UDP для подключения к OpenVPN.

Для сохранения правил используем утилиту iptables-persistent:

apt-get install iptables-persistent

apt install openvpn easy-rsa

* где openvpn — сам сервер и клиента OpenVPN; easy-rsa — утилита для создания сертификатов.

Создаем каталог, в котором разместим готовые сертификаты для OpenVPN:

mkdir -p /etc/openvpn/keys

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

Переходим в созданный нами каталог:

Скопируем в него шаблоны скриптов для формирования сертификатов:

cp -r /usr/share/easy-rsa/* .

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

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"

* данные значения могут быть любыми, но лучше их задать осмысленно. Для удобства.

Рассмотрим процесс формирования сертификата с использованием RSA3 пошагово.

1. Инициализируем PKI:

2. Создаем корневой сертификат:

* после вводим дважды пароль.

На запрос «Common Name» можно просто нажать Enter:

Common Name (eg: your user, host, or server name) [Easy-RSA CA]:

3. Создаем запрос на сертификат для сервера:

./easyrsa gen-req server nopass

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

На запрос «Common Name» можно просто нажать Enter:

Common Name (eg: your user, host, or server name) [server]:

4. Генерируем сам сертификат:

./easyrsa sign-req server server

После ввода команды подтверждаем правильность данных, введя yes:

Type the word 'yes' to continue, or any other input to abort.
Confirm request details: yes

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

Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:

5. Формируем ключ Диффи-Хеллмана:

Скопируем созданные ключи в рабочий каталог:

cp pki/ca.crt /etc/openvpn/keys/

cp pki/issued/server.crt /etc/openvpn/keys/

cp pki/private/server.key /etc/openvpn/keys/

cp pki/dh.pem /etc/openvpn/keys/

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

port 443
proto tcp
dev tun
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh.pem
server 172.16.10.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
max-clients 32
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append /var/log/openvpn/openvpn.log
verb 4
mute 20
daemon
mode server
cipher BF-CBC

  • port — сетевой порт (443 позволит избежать проблем при использовании Интернета в общественных местах, но может быть любым из свободных. Порт 1194 является стандартным для OpenVPN).
  • proto — используемый транспортный протокол.
  • dev — виртуальный сетевой адаптер, который будет создан для работы OpenVPN.
  • ca — путь до сертификата корневого центра сертификации.
  • cert — путь до открытого сертификата сервера.
  • key — путь до закрытого сертификата сервера.
  • dh — путь до ключа Диффи — Хеллмана.
  • server — задаем IP-адрес сервера в сети VPN.
  • ifconfig-pool-persist — путь к файлу для хранения клиентских IP-адресов.
  • keepalive X Y — каждые X секунд отправляется ping-запрос на удаленный узел. Если за Y секунд не получено ответа — перезапускать туннель.
  • max-clients — максимум одновременных подключений.
  • persist-key — не перезагружать ключи при повторной загрузки из-за разрыва соединения.
  • persist-tun — не изменять устройства tun/tap при перезапуске сервера.
  • status — путь до журнала статусов.
  • log-append — путь до файла лога с дополнительным выводом информации.
  • verb — уровень логирования событий. От 0 до 9.
  • mute — ограничение количества подряд отправляемых в лог событий.
  • daemon — работа в режиме демона.
  • mode — в каком режиме работает openvpn (сервер или клиент).
  • cipher — тип шифрования. В нашем примере это blowfish 128.

Создадим каталог для логов:

Разрешаем автоматический старт сервиса vpn и перезапускаем его:

systemctl enable openvpn@server

systemctl restart openvpn@server

Настройка OpenVPN-клиента (Mikrotik)

Сертификат должен быть сформирован на сервер, после чего перенесен на микротик. Рассмотрим процесс подробнее.

На сервере

Создадим каталог, куда поместим сертификаты для обмена:

* сертификаты будут скопированы в каталог /tmp для удобства их переноса на компьютер.

Переходим в каталог easy-rsa:

Создаем сертификат для клиента:

./easyrsa build-client-full client1 nopass

* в данном примере будет создан сертификат для узла client1 (название может быть любым).

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

Enter pass phrase for /etc/openvpn/easy-rsa/pki/private/ca.key:

Скопируем ключи во временную директорию:

cp pki/issued/client1.crt pki/private/client1.key pki/ca.crt /tmp/keys/

* название client1 зависит от имени сертификата, который мы ему дали при создании.

Разрешим доступ на чтение каталога с ключами всем пользователям:

chmod -R a+r /tmp/keys

Переносим данный каталог с ключами на компьютер, с которого мы будем настраивать Mikrotik. Это можно сделать с помощью различных утилит, например WinSCP.

Подключаемся к роутеру Mikrotik. Это можно сделать с помощью веб-браузера или специальной программы Winbox. Мы рассмотрим вариант с использованием последней.

Заходим в настройки роутера — переходим в раздел Files — кликаем по Upload и выбираем наши 3 сертификата:

Переходим к загрузке файлов в Mikrotik

Кликаем по OK. Нужные нам файлы окажутся на роутере.

Переходим в System — Certificates:

Переходим к сертификатам в микротике

Кликаем по Import:

Импортируем сертификаты в микротик

. и по очереди импортируем:

  1. ca.crt
  2. client1.crt
  3. client1.key

* импорт делаем именно в такой последовательности.

Теперь переходим в раздел PPP — создаем новое соединение OVPN Client:

Открываем панель добавления соединения по OpenVPN

На вкладке Dial Out настраиваем наше соединение:

Пример настройки клиента OpenVPN

  • Connect To — адрес сервера OpenVPN, к которому должен подключиться Mikrotik.
  • Port — порт, на котором слушает OpenVPN.
  • User — учетная запись для авторизации. Мы не настраивали проверку пользователя, но без указания данного поля Mikrotik не даст сохранить настройку.
  • Certificate — выбираем сертификат, который импортировали на Mikrotik.
  • Auth — алгоритм криптографического хеширования, который должен использоваться для подключения.
  • Chiper — криптографический алгоритм шифрования.
  • Add Default Route — если поставить данную галочку, все запросы в другую подсети (Интернет) должны пойти через VPN соединение.

Нажимаем OK — наш роутер должен подключиться к серверу.

Настройка доступа к сети Интернет через сервер VPN

Для того, чтобы наш сервер VPN мог раздавать Интернет подключившимся к нему устройствам, выполняем несколько действий.

sysctl -p /etc/sysctl.d/gateway.conf

Добавляем фаервольные правила. Как правило, управление брандмауэром netfilter в Linux на базе Debian выполняется с помощью утилиты iptables.

Настройка выполняется из расчета, что сеть Интернет настроена через интерфейс ens3:

iptables -t nat -I POSTROUTING -o ens3 -j MASQUERADE

iptables -I FORWARD -i tun0 -o ens3 -m state —state RELATED,ESTABLISHED -j ACCEPT

iptables -I FORWARD -i tun0 -o ens3 -j ACCEPT

Предполагается, что tun0 используется для VPN сети (данное имя присваивается серверу OpenVPN по умолчанию), а ens3 — внешней. Посмотреть имена интерфейсов можно командой:

Сохраняем настройки iptables:

apt-get install iptables-persistent

Настройка анонимности

В сети есть различные порталы для проверки анонимности. Например, сайты whoer или 2ip. Приведем некоторые настройки для получения 100%-го результата.

1. Отключение icmp. По времени ответа на ping можно определить отдаленность клиента от прокси. Чтобы проверку нельзя было выполнить, отключаем на сервере icmp.

Для этого создаем файл:

И применяем настройки:

sysctl -p /etc/sysctl.d/icmp.conf

2. Настройка MTU.

Для решения проблем с VPN fingerprint, на стороне сервера добавляем 2 опции:

.
tun-mtu 1500
mssfix 1623

systemctl restart openvpn@server

Проброс портов (Port Forwarding)

Необходим для перенаправление сетевых запросов на Mikrotik, стоящий за VPN.

Настройка выполняется двумя командами:

iptables -t nat -I PREROUTING -p tcp -i ens3 —dport 80 -j DNAT —to-destination 172.16.10.6:80

iptables -I FORWARD -p tcp -d 172.16.10.6 —dport 80 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT

* где ens3 — внешний сетевой интерфейс. 172.16.10.6 — IP-адрес роутера Mikrotik, который он получит после подключения.

vbratkev / OpenVPN server: Firewall configuration.md

This step is recommended if you are running your server in the cloud, such as a droplet made on Digital Ocean. If this is the case, you need to secure the server for your safety as well as others to prevent aiding in DDoS attacks.

In addition to the risk of being an open resolver, your Web interface is also open to the world increasing the risk. So you will want to prevent ports 53 and 80, respectively, from being accessible from the public Internet.

It’s recommended that you clear out your entire firewall so you have full control over it’s setup. You have two options for setting up your firewall with your VPN.

Option 1: Allow everything from within your VPN

Enter this command, which will allow all traffic through the VPN tun0 interface.

Option 2: Explicitly allow what can be accessed within the VPN

These commands will allow DNS and HTTP needed for name resolution (using Pi-hole as a resolver) and accessing the Web interface, respectively.

You will also want to enable SSH and VPN access from anywhere.

The next crucial setting is to explicitly allow TCP/IP to do «three way handshakes»:

Also, we want to allow any loopback traffic, i.e. the server is allowed to talk to itself without any limitations using 127.0.0.0/8:

Finally, reject access from anywhere else (i.e. if no rule has matched up to this point):

Blocking HTTPS advertisement assets

Since you’re :head-desk: ing with iptables , you can also use this opportunity to block HTTPS advertisements to improve blocking ads that are loaded via HTTPS and also deal with QUIC.

Why doesn’t Pi-hole just use a certificate to prevent this? The answer is here.

Depending on the systems you have connecting, you may benefit from appending —reject-with tcp-reset to the command above. If you still get slow load times of HTTPS assets, the above may help.

If you want to test how your Pi-hole behaves with blocking HTTP vs. HTTPS assets, use this page.

If your server is reachable via IPv6, you’ll need to run the same commands but using ip6tables :

View the rules you just created

and they should look something like this:

Similarly, ip6tables -L —line-numbers should look like this:

Verify the rules are working

Connect to the VPN as a client and verify you can resolve DNS names as well as access the Pi-hole Web interface. These settings are stored in memory until you save them. If it’s not working, you can restart your server to start from scratch. Alternatively, you could also go through and delete lines with iptables -D INPUT <SOME LINE NUMBER>

Save your iptables

If things look good, you may want to save your rules so you can revert to them if you ever make changes to the firewall. Save them with these commands:

Create a Port Forward for OpenVPN in your Router

Here is a list of the ports that need to be forwarded for OpenVPN:

OpenVPN — PC

  • TCP: 1194
  • UDP: 1194

Forward Ports for OpenVPN

You may need to forward ports in your router when you use OpenVPN. By forwarding ports you allow connection requests coming from the internet to be directed to OpenVPN.

Routers do not generally allow incoming connection requests from the internet. A port forward can overcome this limitation.

Before You Forward a Port

You need to know the following things before you can forward a port:

  • Your router’s IP address.
  • Your computer’s internal IP address.
  • A list of TCP and UDP ports that need to be forwarded.

Find Your Router’s IP Address

We have free Router Detector software to help you find your router’s IP address. Our Router Detector tool is free to use and is part of our Network Utilities software.

If you do not want to run the software, you can follow our Find Your Router IP Address guide.

How To Forward Ports for OpenVPN

A smart way to forward your ports is to use Network Utilities. Since Network Utilities allows you to both forward and un-forward ports easily you can keep your network security maximized, and then forward ports only when you need them.

Port forwarding can also be set up step-by-step by hand. The process for forwarding a port is:

  • Begin by logging in to your router.
  • Look for the port forwarding section in your router.
  • Put your computer’s IP address in the proper box in your router.
  • Put the TCP and UDP ports for OpenVPN in the corresponding boxes in your router.

Usually you have to reboot your router in order to save the changes.

You can choose your router from our list to see exactly how to forward ports for OpenVPN:

List of Routers — Customized for OpenVPN

That’s all it takes to forward your ports for OpenVPN.

More From Portforward

How to Open a Port in Your Router for Tom Clancy’s Ghost Recon: Breakpoint

Whether playing co-op with your buddies or competitive versus the world, Ghost Recon: Breakpoint is better with ports forwarded.

How to Forward Ports in Your Router for Capcom Fighting Collection

Forwarding some ports for Capcom Fighting Collection can help improve connections and make it easier to play with others.

How To Open Ports in Your Router for Satisfactory

You can make it easier to connect and play Satisfactory online with others by forwarding some ports in your router.

Sniper Elite 4 Multiplayer

You can’t snipe with lag. Elimitate lag with our guide. Sniper Elite plays better with an open port.

Open Ports on Your Router for Chivalry 2

Forwarding some ports for Chivalry 2 in your router can help improve your online multiplayer experiences.

Open Ports on Your Router for Red Dead Redemption 2

Help improve your online connections in Red Dead Redemption II by forwarding some ports in your router.

Opening Ports for FIFA 23 using Your Router

Forwarding some ports in your router for FIFA 23 can help improve your online multiplayer connections.

Opening Ports for Battlefield V

Setup a port forward for Battlefield V to make sure that you have the best ping times and the least amount of lag.

OPENVPN Как открыть порты клиенту?

Здравствуйте.
У меня возникла проблема с портами в OPENVPN. У меня дома стоит сервер, но на сервере серый Ip и я никак не могу открыть порты на нём, решил я создать VPN с открытыми портами, и вроде как создал но тут проблема. Никак не могу передать с сервера OpenVPN на мой сервер открытые порты.

Суть такова: мне нужно что-бы OpenVPN разрешил моему серверу транслировать Сайт под портом 80 + мне нужно еще пару открытых портов.

P.S. не знаю, как верно сформулировать, надеюсь меня поймут.

  • Вопрос задан более трёх лет назад
  • 4231 просмотр
  • Facebook
  • Вконтакте
  • Twitter

paran0id

У вас есть сервер OpenVPN с белым ip. У вас есть http-сервер с серым ip. На http-сервере с серым ip стоит OpenVPN-клиент, подключенный к OpenVPN-серверу с белым ip. Вам нужно получить доступ к http-серверу на порты 80 и несколько других через OpenVPN-сервер.

  • Facebook
  • Вконтакте
  • Twitter

paran0id

Decket, создаете файл /etc/sysctl.d/forwarding.conf, в нём пишете:
net.ipv4.ip_forward=1
применяете изменение:
sudo sysctl -p
Это включает поддержку проброса портов.
В настройках openvpn-сервера прописываете в файл ipp.txt имя клиента и назначенный ему ip-адрес через запятую, чтобы клиент получал всегда один и тот же адрес. В конфиге сервера не забудьте указать:
ifconfig-pool-persist ipp.txt
Перезапускаете сервер, переподключаете клиента, смотрите, что он получил именно указанный адрес.

Далее iptables:
sudo iptables -t nat -A PREROUTING -p tcp —dport 80 -j DNAT —to-destination :80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

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

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