Скорее всего вы  уже сталкивались с ошибкой “Это видео не доступно для просмотра в Вашей стране”? Или быть может пробовали зарегистрироваться в LinkedIn?

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

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


Для тех, кто любит видео-инструкции:

Что такое VPN?

VPN – Virtual Private Network – виртуальная частная сеть.

Это совокупность технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).

Зачем нужен VPN?

  • Для удаленной работы. Например, вы работаете из дома. По VPN вы можете получить доступ к сервисам и документации своей организации, при этом соединение будет безопасным, данные будет сложно перехватить и расшифровать.
  • Чтобы объединить разные части одной компании. Офисы могут быть удалены друг от друга на любое расстояние.
  • При подключении к Wi-fi в кафе, метро и т.д., чтобы хакеры не могли украсть ваши данные. Если использовать соц.сети, злоумышленник может не только перехватить вашу информацию, но и использовать ее в своих целях, авторизовавшись в этой самой соц.сети от Вашего имени. Но самой неприятной может оказаться утечка данных вашей банковской карты, если вы решили перевести кому-то деньги, подключившись к бесплатному Wi-fi.
  • Для получения доступа к сайтам, которые заблокированы на определенной территории.
  • Для обеспечения анонимности. Нельзя вычислить, какие сайты вы посещали, каким браузером пользуетесь, где находитесь и т.д.
  • Чтобы в браузере оставалась история поиска, на основе которой создается таргетированная реклама
  • Чтобы сэкономить, например, при покупке авиабилетов. Авиакомпании устанавливают разные цены на одни и те же билеты для покупателей из разных регионов.

Инструменты для настройки VPN

Putty:

Это терминал с ПО, который позволит нам сконфигурировать соединение с хостингом по защищенному протоколу SSH

WireGuard:

Это специальное ПО реализующее зашифрованные виртуальные частные сети (VPN).

Ценится за свою простоту и высокою скорость работы.


Что вам понадобится для настройки VPN:

Wireguard существует под разные плаформы, в том числе и для iOS и Android систем.

Достаточно один раз собрать конфигурационный файл и с помощью него подключить любые устройства.

Найстрока VPN

Для начала, зарегистрируемся в Beget и создадим VPS сервер

После первоначальной настройки VPS, обновим систему

apt update && apt upgrade -y

Устанавливаем Wireguard

apt install -y wireguard

Переходим в директорию  Wireguard

cd /etc/wireguard

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

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Устанавливаем права доступа к папке privatekey (чтобы только мы имели доступ к этой директории)

chmod 600 privatekey

Теперь создаём файл конфигурации нашего wireguard сервера

vim wg0.conf

В этот файл вставляем такой текст

[Interface]
PrivateKey = <privatekey>
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Вместо <privatekey> вставляем приватный ключ wireguard сервера

скопировать его можно из команды (в каталоге wireguard):

cat privatekey

Теперь настраиваем переброс трафика через Wireguard сервер

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf

Для того, чтобы убедиться, что всё хорошо сохранилось

sysctl -p

должно быть "net.ipv4.ip_forward=1"

Теперь нужно настроить систему, чтобы система поднимала wireguard сервис и следила за ним

systemctl enable wg-quick@wg0.service

Теперь запустим систему

systemctl start wg-quick@wg0.service

Чтобы убедиться, что всё работает, проверим статус системы

systemctl status wg-quick@wg0.service

Должно быть...

Значит Wireguard сервер запущен

Добавляем нового клиента

Генерируем ключи для нашего нового клиента (добавив, например, фамилию перед названиями директорий ключей budaev_publickey)

wg genkey | tee /etc/wireguard/budaev_privatekey | wg pubkey | tee /etc/wireguard/budaev_publickey

Должно получиться что-то типа этого (список файлов в директории можно увидеть введя команду: "ls -la")

В файле конфигурации (wg0.conf) добавляем нового клиента

vim wg0.conf
[Peer]
PublicKey = (вставить публичный ключ)
AllowedIPs = 10.0.0.2/32

Публичный ключ нового клиента можно узнать по команде

cat budaev_publickey

Теперь остаётся лишь перезапустить наш wireguard сервис

systemctl restart wg-quick@wg0.service

Проверим статус

systemctl status wg-quick@wg0.service

Если статус Active, значит всё работает

Настраиваем конфигурацию на самом устройстве

Например, на Windows создаём новый файл client_wg.conf и добавляем в него

[Interface]
PrivateKey = <client-privatekey>
Address = 10.0.0.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = <server-publickey>
Endpoint = <server-IP>:51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20

<client-privatekey> = его можно скопировать, введя команду

cat budaev_privatekey

<server-publickey> = это публичный ключ сервера. Его можно скопировать введя команду

cat publickey

<server-IP> = это IP нашего сервера.

Можно посмотреть его введя команду:

ip addr

AllowedIPs = если мы хотим пропускать через VPN только определённые IP, то тут мы можем указать маску. Если хотим пропускать все IP через VPN, то оставляем нули.

PersistentKeepalive = время в секундах, через которое будут происходить пинги и проверка, что соединение с сервером активно и работает.


Конфигурационный файл можно передавать на другие устройства и сразу подключать с помощью WireGuard приложения.

К WireGuard можно подключить любое количество устройств.

Если нужно добавить ещё одного нового пользователя, настраиваем wg0.conf

[Peer]
PublicKey = dfhjsdkhfjkdshjkfDKfh38457823hasdudys=
AllowedIPs = 10.0.0.4/34 (не забыть заменить на другой IP адрес)

И не забыть поменять параметр "Address" в  new_client_wg.conf на тот, который указывали в [Peer] сверху.

[Interface]
PrivateKey = <client-privatekey>
Address = 10.0.0.4/34
DNS = 8.8.8.8

[Peer]
PublicKey = <server-publickey>
Endpoint = <server-IP>:51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20

На это всё, VPN настроен!