09 ноября 2021

🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Пишу об IT и на Python. kungurov.net
Даже если вам не нужно обходить блокировки, виртуальная частная сеть и прокси-сервер могут потребоваться для доступа к неработающим в России сервисам или для защиты данных от злоумышленников. Рассказываем, как настроить и раздать OpenVPN через Pritunl и прокси Shadowsocks с помощью Outline.
🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Крупные VPN-сервисы первыми попадают под блокировку. Поэтому, у нас два варианта:

  • Пользоваться услугами компаний-середнячков.
  • Научиться ставить VPN и прокси самостоятельно.

Первый вариант удобнее: можно выбрать разные локации, есть подписки для нескольких устройств и удобные приложения для смартфонов. Но вместо VPN могут подсунуть обычный прокси и слить персональные данные. Второй вариант безопаснее и дешевле, но требует технических навыков (совсем небольших).

Где искать зарубежные VPN-сервисы?

На сайтах-агрегаторах VPN:

Таблица доступных в РФ VPN-сервисов:

VPN Кол-во локаций Кол-во устройств
cyberghostvpn.com 60 7
perfect-privacy.com 23
torguard.net 53 5
hide.me 34 5
privadovpn.com 45 10
f-secure.com 23 7
vpnsecure.me 50 5
time4vps.com 13 6
airvpn.org 20 5
Хочу сделать все своими руками. С чего начать?
Для начала, нужно купить зарубежный сервер VPS/VDS. В среднем сервер стоит 1.5-3$ в месяц.

Где искать зарубежные серверы?

На сайтах-агрегаторах VPS/VDS:

Когда сервер куплен, можно приступать к установке VPN/прокси.

Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека программиста».

1. OpenVPN и Pritunl

Pritunl – свободное ПО, предоставляющее веб-интерфейс для управления OpenVPN и Wireguard.

Простая видеоинструкция по установке OpenVPN (Pritunl) на Ubuntu:

1.1. Установка Pritunl

Обновим список пакетов и систему (в статье используется Ubuntu 20):

        sudo apt update && sudo apt upgrade
    

Добавим Pritunl в репозиторий:

        sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A

sudo tee /etc/apt/sources.list.d/pritunl.list << EOF
deb https://repo.pritunl.com/stable/apt focal main
EOF
    

Установим Pritunl:

        sudo apt update
sudo apt install pritunl
    

Запустим и активируем Pritunl:

        sudo systemctl start pritunl
sudo systemctl enable pritunl
    

Проверим, запущен ли Prtinul:

        sudo systemctl status pritunl
    

Если все работает, то увидим следующую запись:

        ● pritunl.service - Pritunl Daemon
     Loaded: loaded (/etc/systemd/system/pritunl.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-26 15:35:10 EEST; 15s ago
   Main PID: 3716 (pritunl)
      Tasks: 19 (limit: 2282)
     Memory: 283.7M
     CGroup: /system.slice/pritunl.service
             ├─3716 /usr/lib/pritunl/bin/python /usr/lib/pritunl/bin/pritunl start
             └─3792 pritunl-web
    

Добавим MongoDB в репозиторий:

        sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list << EOF
deb https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
EOF

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
    

Установим MongoDB:

        sudo apt update
sudo apt-get install mongodb-org
    

Запустим MongoDB:

        sudo systemctl start mongod
sudo systemctl enable mongod
    

Проверим, запущен ли MongoDB:

        sudo systemctl status mongod
    

Если сервис запущен, то мы получим следующий вывод:

        ● mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-10-26 15:59:20 EEST; 54s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 68587 (mongod)
     Memory: 64.1M
     CGroup: /system.slice/mongod.service
             └─68587 /usr/bin/mongod --config /etc/mongod.conf
    

Зайдем на сервер по IP-адресу https://IP-address.

🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Чтобы получить установочный ключ, введем в терминале:

        sudo pritunl setup-key
    
Установка Pritunl
Установка Pritunl

Сгенерируем пару логин/пароль:

        sudo pritunl default-password
    

Зайдем еще раз на сервер по IP:

Вход в веб-интерфейс Pritunl
Вход в веб-интерфейс Pritunl

1.2. Настройка Pritunl

Чтобы начать пользоваться Pritunl нужно:

  1. Создать сервер Pritunl.
  2. Создать организацию и прикрепить ее к серверу.
  3. Создать пользователя и прикрепить его к организации.

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

Чтобы создать сервер, перейдем во вкладку ServersAdd Server и активируем вкладку Advanced:

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

Добавим сервер.

Создание организации

Перейдем во вкладку UsersAdd Organization и добавим новую организацию:

Создание организации в Pritunl
Создание организации в Pritunl

Прикрепим организацию к серверу. Для этого перейдем во вкладку ServersAttach Organization:

Прикрепление организации к серверу в Pritunl
Прикрепление организации к серверу в Pritunl

Нажмем на кнопку Start для запуска сервера.

Создание пользователя

Чтобы создать пользователя, перейдем во вкладку UsersAdd User:

Создание пользователя в Pritunl
Создание пользователя в Pritunl

1.3. Раздаем ключи

Чтобы подключиться к VPN, скачаем и установим клиент для своей ОС pritunl.com/platforms. Вернемся к серверу и перейдем во вкладку UsersAdd User, и кликнем по значку цепочки:

Раздача ключей в Pritunl
Раздача ключей в Pritunl

Скопируем URI-ссылку:

Раздача ключей в Pritunl
Раздача ключей в Pritunl

Вставим URI-ссылку в клиент и подключимся к VPN:

Соединение с сервером Pritunl
Соединение с сервером Pritunl

Мы подключились к серверу.

2. Shadowsocks и Outline

Outline создан стартапом Jigsaw, примкнувшим к компании Google. Под капотом у Outline находится протокол Shadowsocks, который маскирует данные под HTTPS-трафик.

Для установки Outline потребуется Docker.

2.1. Установка Docker

Обновим список пакетов и систему:

        sudo apt update && sudo apt upgrade
    

Установим пакеты, которые позволят apt устанавливать пакеты через HTTPS:

        sudo apt install apt-transport-https ca-certificates curl software-properties-common
    

Добавим ключ GPG для репозитория Docker в систему:

        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    

Добавим репозиторий Docker в систему:

        sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
    

Обновим список пакетов:

        sudo apt update
    

Установим Docker:

        sudo apt install docker-ce
    

2.2. Установка менеджера Outline

C помощью менеджера Outline можно добавлять и удалять сервера и раздавать ключи. Скачаем менеджер по ссылке getoutline.org/ru/get-started:

Установка менеджера Outline
Установка менеджера Outline

Выберем Настройте Outline где угодно:

Установка Outline на сервер
Установка Outline на сервер

Чтобы установить Outline, введем на сервере команду из пункта 1:

Команда для установки Outline на сервер
Команда для установки Outline на сервер

После установки Outline мы получим строчку с инфой о нашем Outline-сервере в формате JSON:

🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Скопируем JSON-строку, вставим ее во второе поле Менеджера Outline и нажмем Готово.

🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Теперь мы можем поделиться ключом доступа с кем угодно:

Менеджер Outline
Менеджер Outline

2.3. Раздаем ключи

Скачаем и установим клиент Outline:

Установка клиента Outline
Установка клиента Outline

Откроем менеджер Outline и скопируем ключ в клиент Outlline:

Подключение к серверу Outline
Подключение к серверу Outline
Подключение к серверу Outline
Подключение к серверу Outline

Связь установлена:

🛠 Как за 3 простых шага создать свой VPN и прокси-сервер

Если в Windows 10 клиент Outline не подключается к серверу, то нужно отключить Hyper V. Для этого откроем PowerShell от имени администратора и введем:

        Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor
    
***

В этой статье мы научились:

  • создавать VPN-соединение с помощью Pritunl;
  • создавать прокси-сервер, используя Outline;
  • раздавать VPN и прокси другим пользователям.

Материалы по теме

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Контент-менеджер
по итогам собеседования
Data Scientist (стажер)
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ