09 ноября 2021

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

Пишу об IT и на Python. Телеграм: https://t.me/miroslavkungurov Сайт: tttddd.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 и прокси другим пользователям.

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

Комментарии

ВАКАНСИИ

Добавить вакансию
Программист junior
Москва, от 60000 RUB до 200000 RUB
Разработчик
от 20000 RUB до 100000 RUB
Администратор БД SQL
Москва, по итогам собеседования

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