Linux vpn server mikrotik client

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

Обновлено

Обновлено: 08.03.2023 Опубликовано: 27.06.2022

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

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

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

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

* где openvpn — сам сервер и клиента OpenVPN; easy-rsa — утилита для создания сертификатов. Создаем каталог, в котором разместим готовые сертификаты для 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»

* данные значения могут быть любыми, но лучше их задать осмысленно. Для удобства. Рассмотрим процесс формирования сертификата с использованием RSA3 пошагово. 1. Инициализируем PKI:

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

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.
Читайте также:  What font is used in linux

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

Разрешаем автоматический старт сервиса 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 зависит от имени сертификата, который мы ему дали при создании.

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

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

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

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

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

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

Переходим в SystemCertificates:

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

Кликаем по Import:

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

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

Теперь переходим в раздел 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

Читайте также:  Finding executable files in linux

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 опции:

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, который он получит после подключения.

Не забываем сохранить правила:

Читайте также

Другие полезные инструкции на тему VPN:

Источник

Настройка OpenVPN в связке Mikrotik/Ubuntu

В любой компании, где существует более одного офиса, рано или поздно возникает необходимость в объединении этих самых офисов. Многие провайдеры предлагают такие услуги, но попросят за это денег, да и кто знает, что там творится на стороне провайдера? Поэтому сделаем все сами, и рассмотрим вариант объединения с помощью Mikrotik RB750, Ubuntu и OpenVPN.

image

Почему Mikrotik?

Дело в нативной поддержке, простоте настройки, более стабильном поведении, низких (в сравнении) пингах и множестве других приятных фич, которые предоставляет RB750. Сторонние прошивки вроде tomato или dd-wrt были исключены из рассмотрения, т.к. были (и остаются) сомнения в их стабильности. Тестировался также Asus WL-520GU, но пинги были на 20-30 мс выше.

Итак, поехали.

На сервере в центральном офисе, стоит Ubuntu. Установка openvpn на нем выглядит следующим образом.

$ sudo su # apt-get update # apt-get upgrade # apt-get install openvpn # cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn # cd /etc/openvpn/easy-rsa/2.0 # ln -s openssl-1.0.0.cnf openssl.cnf # source vars # ./clean-all Создаем пару корневой сертификат ca.crt и ключ ca.key # ./build-ca Создаем пару сертификат сервера server.crt и ключ server.key # ./build-key-server server Создаем пару сертификат клиента client1.crt и ключ client1.key # ./build-key client1 Ключи Диффи Хелмана # ./build-dh # cd keys # mkdir /etc/openvpn/.keys && /etc/openvpn/.ccd # cp ca.crt ca.key dh1024.pem server.crt server.key /etc/openvpn/keys # 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/sysctl.conf Находим строку и снимаем с нее комментарий: # Enable packet forwarding net.ipv4.ip_forward=1 

Все нюансы настройки заключались в файле конфигурации openvpn на сервере, по итогу он получился таким (комментировал лишь существенные моменты, описание остальных параметров конфига есть в манах, инете, example конфигах и проч.):

port 1194 # Mikrotik не умеет работать с UDP proto tcp dev tun ca .keys/ca.crt cert .keys/server.crt key .keys/server.key # This file should be kept secret dh .keys/dh1024.pem server 10.0.141.0 255.255.255.0 client-config-dir .ccd client-to-client keepalive 10 120 tun-mtu 1500 mssfix 1450 cipher AES-256-CBC # AES auth sha1 # Компрессия микротиком так же не поддерживается ;comp-lzo user nobody group nogroup #Сохраняем туннель при обрыве на время keepalive persist-key #Не пересчитываем ключи при обрыве связи persist-tun status /var/log/openvpn-status.log log /var/log/openvpn.log verb 3 mute 10 
/etc/openvpn/.ccd/client1
# Клиентская подсеть за mikrotik (192) и адрес openvpn у роутера (10) iroute 192.168.141.0 255.255.255.0 10.0.141.2 # Добавим шлюз по умолчанию для машин за микротиком ifconfig-push 10.0.141.2 10.0.141.1 
Теперь Mikrotik

Настройку опишу с самого начала, в том числе организацию свича, настройку адресов, маршрутов, DHCP и проч.
Заходим в веб-интерфейс роутера, качаем winbox.
Запускаем winbox(возможно подключение как по IP, так и по MAC), открываем new terminal, и пишем следующее(achtung, сброс конфигурации роутера): system reset-configuration
Подключаемся ко второму порту микротика, запускаем все тот же winbox, и на появившийся запрос клацаем remove config
Организуем свич на портах 2-5, порт 1 будет выступать в роли WAN порта.
Для этого у всех интерфейсов 3-5 указываем мастер порт ether2:
image
В меню IP->Adresses назначаем ip lan интерфейса
image
Добавим гейт для выхода в инет в меню IP->Routes (гейтом в данном конкретном случае выступает DSL модем с адресом 10.100.0.1)
image
Обратим внимание, что 10.100.0.0 — адресация между роутером и модемом DSL, через который он ходит в инет, а 10.0.141.0 — сеть VPN.
Настроить DNS можно тут IP->DNS, а DHCP в меню IP->DHCP Server->DHCP setup, указав параметры пула.
Всю нашу внутреннюю подсеть задвинем за NAT, для этого настроим маскарадинг.
Переходим IP->Firewall->NAT и добавляем правило по аналогии:
image

Читайте также:  Самый лучший браузер linux
Счастье близко

image

Осталось скопировать корневой сертификат(ca.crt) и клиентские сертификат и ключ(client1.crt, client1.key), которые мы сгенерировали в процессе установки/настройки сервера. На микротике выбираем меню Files, и видим окно с файловой системой роутера. Именно сюда нужно положить наши ключи, работает drag-n-drop.
Чтобы роутер знал о наличии у него сертификатов, их нужно импортировать через System->Certifates добавляем ca.crt, client1.crt, client1.key, клиентский ключ автоматом станет «Decrypted».
Непосредственно соединение OpenVPN создается в меню Interfaces, при нажатии на красный плюс увидим OVPN Client в выпадающем списке.
На вкладке Dial Out укажем адрес нашего сервера, порт, клиентский сертификат и типы шифрования.

Итог.

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

Источник

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