Устанавливаем и настраиваем свой VPN

Добрый день вем, кто оказался на данном сайте. Безопасность работы в сети играет важную роль в нашей повседневной жизни. А использование vpn особенно в публичных местах так вообще можно назвать обязательным пунктом. Если вы к примеру, выходите в сеть в каком нибудь кафе, где есть бесплатный Wi-Fi то шифрования вашего трафика обязательно. Так как, ваш трафик могут перехватить, и в итоге все ваши данные окажутся у злоумышленников. И это всего лишь один из примеров, когда VPN становиться обязателен к использованию. Давайте разберемся, как можно поднять свой собственный VPN и не волноваться о безопасности в сети. Для начала нужно арендовать VPS сервер. Найти дешевый VPS сервер в наше время не представляет проблемы. После того как нашли VPS сервер, на нем нужно поднять VPN. Решений тут множество, но мы остановимся на Wireguard. Первое, он весьма шустрый, второе, имеет хорошее шифрование, третье, легок в настройке и четвертое, кроссплатформенный.

Установка Wireguard

И так, подключаемся к нашему серверу по ssh и подключаем репозитории Wireguard. Установка будет одинакова как для Debian так и для Ubuntu. Разница будет лишь в репозиториях. Для Debian вводим следующую команду, которая подключит к нашей системе репозиторий “sid” откуда мы и установим Wireguard. После этого репозиторий будет заморожен для дальнейшего использования, если можно так выразиться:

Debian

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable

Ubuntu

Для Ubuntu существует ppa репозиторий, его то мы и подключим. Для этого нужно ввести следующую команду:

add-apt-repository ppa:wireguard/wireguard

Ну а теперь, давайте приступим к установке wireguard.

apt install wireguard-dkms wireguard-tools

В процессе установки собирается модуль ядра, после установки, давайте посмотрим все ли загрузилось. Для этого вводим команду:

modprobe wireguard && lsmod | grep wireguard

Если все впорядке, то вы увидите следующее сообщение:

Настройка Wireguard

После чего создаем отдельную директорию и переходим в нее, при помощи команд:

mkdir ~/wireguard
cd ~/wireguard
umask 077

Теперь давайте создадим ключи. Команда сгенерирует два ключа, открытый и закрытый. Скопируйте их и сохраните, они нам понадобятся в дальнейшем:

wg genkey | tee server_private_key | wg pubkey > server_public_key

Просмотреть созданные ключи можно при помощи команды “cat”:

cat server_private_key
cat server_public_key

Давайте включим форвардинг, для этого набираем в терминале команду:

nano /etc/sysctl.conf

И в открывшемся окне находим закомментированный пункт “net.ipv4.ip_forward=1”. Нам нужно его раскомментировать и сохранить отредактированный файл:

После проведенных манипуляций введите команду “sysctl -p” для применения наших настроек:

sysctl -p

Теперь давайте создадим конфигурационный файл Wireguard. Для этого выполним команду:

nano /etc/wireguard/wg0.conf

Изначально в нем не чего не будет, нам же предстоит внести в него свои параметры работы Wireguard. Содержимое “wg0.conf” будет следующим:

[Interface]
Address = 10.8.0.1/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY
[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

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

Address – адрес виртуального интерфейса wg0

PostUp и PostDown – команды которые управляют iptables. Тут так же стоит заметить, что опция “eth0” у вас может отличаться. Что бы узнать имя интерфейса, наберите команду “ip a”

К пунктам SERVER_PRIVATE_KEY и CLIENT_PUBLIC_KEY мы еще вернемся чуть позже.

ListenPort – порт для работы VPN

AllowedIPs – виртуальные IP адреса клиентов для подключения к серверу

Сохраняем наш конфиг и переходим к следующему шагу. А следующим шагом будет настрока вашего копьютера или ноутбука для работы с нашим сервером.

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

Открываем терминал на нашем рабочем компьютере и подключаем репозитории, как мы делали вначале статьи. И точно так же устанавливаем необходимые пакеты для работы Wirefuard.

Debian

echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable

Ubuntu

add-apt-repository ppa:wireguard/wireguard

Установка

apt update
apt install wireguard-dkms wireguard-tools

После чего нам нужно точно так же сгенерировать ключи на сервере:

wg genkey | tee client_private_key | wg pubkey > client_public_key

Теперь давайте посмотрим на наши ключи при помощи уже знакомой нам команды “cat”. Их так же надо сохранить, они нам очень скоро понадобятся:

cat client_private_key
cat client_public_key

Создаем конфигурационный файл на нашем компьютере со следующим содержимом:

nano /etc/wireguard/wg0-client.conf

И вписываем следующую конфигурацию:

[Interface]

Address = 10.8.0.2/32

PrivateKey = CLIENT_PRIVATE_KEY
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_REAL_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

В полях “CLIENT_PRIVATE_KEY” и “SERVER_PUBLIC_KEY” вписываем ключи которые создавали на нашем сервере. А в поле “SERVER_REAL_IP” вписываем реальный ip адрес нашего сервера и через двоеточие указываем порт.

Финальная настройка

Теперь возвращаемся к серверу и производим финальную настройку. Нам осталось лишь вписать недостающие ключи в конфиг. Для этого вводим команду:

nano /etc/wireguard/wg0.conf

И вписываем ключи в поля “SERVER_PRIVATE_KEY” и “CLIENT_PUBLIC_KEY”, в итоге у вас должно получится следующая конфигурация:

Задаем права и запускаем службу Wireguard при помощи следующих команд:

chmod 600 /etc/wireguard/wg0.conf
systemctl enable wg-quick@wg0.service
systemctl restart wg-quick@wg0.service

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

wg

Подключиться можно при помощи команды “wg-quick up wg0-client”, а отключиться от VPN – “wg-quick down wg0-client”. При необходимости управление службой можно осуществлять при помощи “systemd”

systemctl restart wg-quick@wg0-client.service

В самом низу размещу ссылку на скачивания краткой инструкции в текстовом формате. Как видите, все запустилось и работает, чего мы и добивались. В дальнейшем можно скачать приложение на телефон и уже с телефона коннектится к нашей VPN. Для этого проделываем ту же операцию на сервере – создаем ключи:

wg genkey | tee mobile.priv | wg pubkey > mobile.pub

Создаем config

nano mobile.conf

Вписываем конфигурацию в созданный “mobile.conf”

[Interface]
Address = 10.8.0.2/32
PrivateKey = mobile.priv
[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_REAL_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 21

После чего сохраняем файл и отправляемся в основной конфигурационный файл, что бы добавить еще одного

nano /etc/wireguard/wg0.conf

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

[Peer]
PublicKey = mobile.pub
AllowedIPs = 10.8.0.2/32

Ну а теперь можно с помощью qr кода передать конфигурацию на наш телефон, для этого в терминале набираем команду:

qrencode -t ansiutf8 < mobile.conf

И в вашем терминале появится qr код, с помощью которого передаем конфигурацию для мобильной версии Wireguard. После чего нужно перезагрузить на сервере Wireguard:

systemctl restart wg-quick@wg0.service

2 комментария к «Устанавливаем и настраиваем свой VPN»

  1. Создаем config
    nano bomile.conf

    Исправьте опечатку 🙂 название файла должно быть mobile.conf
    соответственно команда должна быть такая: nano mobile.conf

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

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