Как запустить собственный сервер OpenVPN на Raspberry PI

1656633254 kak zapustit sobstvennyj server openvpn na raspberry pi

Денис Нуциу

PGSG9xxKRfLSY0wheMVfOBdZBM1MKEGcmQr-
aShx3zgBveeNtJo-SyE1AF5Zs4UquT2lNpR6
My Raspberry, служащий сервером OpenVPN

Привет всем!

В этой краткой статье я объясню, как настроить свой сервер VPN (виртуальная частная сеть) на Raspberry PI с OpenVPN. После того как мы настроим сервер, мы настроим сервер обфускации, чтобы замаскировать наш трафик, указывая на то, что мы используем VPN. Это поможет нам избежать определенной формы цензуры.

Зачем использовать VPN?

Во-первых, давайте поговорим о том, почему вы можете использовать сервер VPN:

  1. Избегайте атаки человека в центре. Если в вашей локальной сети есть злоумышленник – даже ваш сосед по комнате – это лицо сможет контролировать ваш незашифрованный трафик и вмешиваться в него.
  2. Скройте свою деятельность в Интернете от своего провайдера (провайдера Интернет-услуг) или университета в моем случае.
  3. Разблокировать службы. Мой университет блокирует все пакеты UDP (User Datagram Protocol). Это означает, что я не могу использовать ни одну программу, которая общается через UDP. Я не могу пользоваться своим клиентом электронной почты, играть в игры или даже использовать Git!

Я решил настроить VPN в своем домашнем Интернете с помощью Raspberry Pi. Таким образом, я смогу подключиться к домашней сети во время обучения в университете. Если вам нужен сервер VPN в другой стране, вы можете купить виртуальный приватный сервер за 5 долларов в месяц у DigitalOcean. Вы можете воспользоваться моей реферальной ссылкой, чтобы получить скидку 10 долларов – это два месяца бесплатного VPN. Но вы не должны его использовать, если вы этого не хотите.

Установка OpenVPN

Этот шаг очень прост, потому что мы будем использовать сценарий оболочки, чтобы сделать это для вас. Поэтому вам просто нужно нажать «Далее» и кончить.

Установка займет много времени в зависимости от выбранного размера ключа. На моем Raspberry Pi 3 Model B это заняло около 3 часов.

Пожалуйста, перейдите к этому хранилищу и следуйте инструкциям

Установка Angristan/OpenVPN
OpenVPN-install – настройте собственный сервер OpenVPN на Debian, Ubuntu, Fedora CentOS и Arch Linuxgithub.com

Если вы не знаете IP-адрес своего сервера, просто введите 0.0.0.0 . Я выбрал 443 для порта и TCP (Transmission Control Protocol) для протокола.

Примечание: Это очень важно, потому что мой университет позволяет только TCP/80 и TCP/443 портов, остальные почти заблокированы. Кроме того, Obfsproxy работает только с TCP, поэтому убедитесь, что вы выбрали TCP!

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

Тестирование подключения

Импортируйте файл .ovpn в свой VPN-клиент и измените IP-адрес 0.0.0.0 к локальному IP-адресу вашего Raspberry PI. В зависимости от конфигурации вашей сети он может иметь форму.192.168.*.* .

Примечание: это будет работать, только если вы подключены к тому же Wi-Fi, что и Pi.

RwesiNeDbzJfYs6cuC7KtJ0IWIuHexaale8S
Viscosity успешно подключился к моему серверу VPN.

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

Если подключение прошло успешно, приветствуем теперь у вас есть сервер VPN! Но вы не можете получить доступ к нему извне… пока.

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

Обфускация Установка прокси

Obfs4 – это прокси-сервер для шифрования. Он маскирует ваш интернет-трафик, чтобы он выглядел как шум. Кто-то, кто следит за вашим трафиком, действительно не будет знать, что вы делаете, и это защитит вас от активных зондирующих атак, которые использует Большой брандмауэр Китая.

Примечание: этот метод не будет работать, если ваш противник разрешает только трафик из белого списка 🙁

Давайте установим сейчас прокси-сервер.

0. Установите требуемый пакет:

apt-get update && apt-get install obfs4proxy
  1. Создайте каталог, который будет сохранять конфигурацию.
sudo mkdir -p /var/lib/tor/pt_state/obfs4

2. Создайте конфигурационный файл.

sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config

В файл конфигурации вы вставите следующие вещи:

TOR_PT_MANAGED_TRANSPORT_VER=1TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4TOR_PT_SERVER_TRANSPORTS=obfs4TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444TOR_PT_ORPORT=127.0.0.1:443

TOR_PT_SERVER_BINDADDR это адрес, на котором прокси-сервер будет прослушивать новые подключения. В моем случае это да 0.0.0.0:444 — почему 444, а не 443? Потому что я не хочу изменять конфигурацию сервера OpenVPN, который сейчас прослушивает 443. Кроме того, позже я сопоставлю этот адрес из 443 посредством переадресации портов.

TOR_PT_ORPORT должен указывать на сервер OpenVPN. В моем случае мой сервер работает 127.0.0.1:443

3. Создайте файл SystemD.

sudo nano /etc/systemd/system/obfs4proxy.service

Затем вставьте в него следующее содержимое:

[Unit]Description=Obfsproxy Server[Service]EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.configExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO[Install]WantedBy=multi-user.target

4. Запустите прокси-сервер Obfuscation.

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

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy

5. Сохраните КЛЮЧ сертификата

После запуска службы выполните следующую команду и сохраните КЛЮЧ сертификата.

cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt

Главное в форме Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=KEY iat-mode=0 . Он вам понадобится при подключении к VPN.

6. Проверка соединений.

Откройте свой VPN-клиент и измените IP-адрес с 443 на 444, чтобы подключиться к прокси-серверу вместо сервера OpenVPN.

После этого найдите параметр Pluggable Transport в вашем клиенте OpenVPN и проверьте, поддерживается ли он. obfs4.

k2ce9ab0OAcKCXASAKmIU6GyYVKLr7L1odm1
Viscosity поддерживает различные методы обфускации, такие как obfs2, obfs3, obfs4 и ScrambleSuit

Если все работает, все готово! Поздравляю! Только несколько вещей, которые необходимо настроить перед использованием этой VPN из внешнего мира.

Переадресация портов

Чтобы получить доступ к серверу OpenVPN из внешнего мира, нам нужно разблокировать порты, потому что они, скорее всего, заблокированы. Как вы помните, я зарезервировал IP-адрес своего PI на своем маршрутизаторе для постоянного использования 192.168.1.125 поэтому он не меняется, если PI отключается или маршрутизатор перезагружается.

Таким образом, я определил следующие правила в моей таблице переадресации портов:

NqZZFwzTrUAyzVuAHAHDly0Dpoe3zSO24N-i
Страница настроек переадресации портов TL-WR841N.

Наружный порт 443 будет указывать на порт сервера обфускации 444. Если у вас нет сервера обфускации, выйдите 443->443

Порт 25 будет указывать порт SSH PI 22. Это только для моего удобства.

Если я хочу получить доступ к серверу OpenVPN без прокси-сервера обфускации, я создал правило 444->443

Служебным портом является Снаружи порт, который будет использоваться с вашим ОБЩЕСТВЕННЫЕ IP-адрес. Чтобы найти свой публичный IP-адрес, воспользуйтесь службой, например whatsmyip.com.

Внутренний порт – это ВНУТРЬ порт. Его можно использовать только при подключении к сети.

Примечание: первое правило говорит о перенаправлении всех соединений с PUBLIC_IP:443 к 192.168.1.125:444

Тестирование

  1. Найдите свой общедоступный IP-адрес и замените старый IP-адрес общедоступным в файле .ovpn или в клиенте VPN.
  2. Подключитесь к VPN.

Это оно.

Динамический DNS

В большинстве случаев ваш IP-адрес изменится, поскольку это динамический IP-адрес. Способ преодолеть это – создать небольшую программу на PI, которая сохраняет ваш IP-адрес и отправляет вам электронные письма примерно каждый день. Вы также можете сохранять IP-адрес в онлайн базе данных, например Firebase.

Мой маршрутизатор имеет настройку динамического DNS. Таким образом, я могу использовать поставщика услуг, например NoIP, и получить подобный домен example.no-ip.com не всегда будет указывать на мой публичный IP-адрес.

d-BrxA5r4qqvGgqjRzuSXGnMGcAncBIKUlu8
Страница настроек DDNS TL-WR841N

Другие ресурсы:

Если у вас возникнут вопросы, пишите мне в Twitter.

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

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