Детально описывать что такое Wireguard я не стану. В интернете написано много. Вкратце скажу, что это новый, модный, молодежный VPN, который считается достаточно надежным, быстрым и легко настраиваемым. Про первые два я ничего не скажу, а вот то что VPN настраивется очень легко я и собираюсь показать дальше.
Для начала необходимо настроить сервер Wireguard. Сервер можно настроить на домашнем ПК, роутере или на выделеном VPS. В этом примере я покажу настройку Wireguard сервера на бесплатном Amazon AWS с установленой Ubuntu 18.04 и клиентом под Android телефон.
---------------
Настройка сервера:
Добавляем официальный репозиторий Wireguard (если у вас Ubuntu версии выше чем 19.04 - этот пункт можно пропустить):
Обновляем систему:
Настраиваем часовой пояс на системе, чтобы правильно отображались логи:
Устанавливаем заголовки ядра:
Устанавливаем сервер Wireguard:
Генерируем приватный и публичный ключи для сервера Wireguard:
Генерируем приватный и публичный ключи для мобильного клиента:
Создаем и редактируем файл настройки Wireguard сервера wg0.conf:
В этот файл записываем следущее:
Всё что выделено жирным - настраиваем под себя
Сохраняем файл: Ctrl+S --> Ctrl+X
Делаем из системы маршрутизатор:
Поднимаем Wireguard сервер:
Проверяем, что интерфейс wg0 поднялся и ждет клиентов:
Добавляем в автозапуск, чтоб после перезагрузки системы сервер поднимался автоматически:
Всё! Вот так просто мы настроили серверную часть Wireguard.
---------------
Настройка клиента Wireguard на Adnroid телефоне:
Для телефона на Android устанавливаем соответствующий клиент в официальном Маркете.
Открываем приложение, далее нажимаем на "плюс" --> <IMPORT FROM FILE OR ARCHIVE>
И выбираем заранее подготовленый файл mobile.conf
Файл должен содержать следущее:
На этом всё!
---------
В дополнение:
Настройка минимальной защиты сервера в виде firewall:
Под спойлером файлы wg0.conf и mobile.conf с примером под мой сервер:
[CLIKE]wg0.conf
mobile.conf
Не забываем! Несмотря на то что весь трафик теперь идет через ваш сервер - DNS запросы по прежнему ходят в открытую, и ваш провайдер по прежнему видит адреса сайтов на которые вы заходите.
Для начала необходимо настроить сервер Wireguard. Сервер можно настроить на домашнем ПК, роутере или на выделеном VPS. В этом примере я покажу настройку Wireguard сервера на бесплатном Amazon AWS с установленой Ubuntu 18.04 и клиентом под Android телефон.
---------------
Настройка сервера:
Добавляем официальный репозиторий Wireguard (если у вас Ubuntu версии выше чем 19.04 - этот пункт можно пропустить):
Код:
~$ sudo add-apt-repository ppa:wireguard/wireguard
Код:
~$ sudo apt update
~$ sudo apt full-upgrade
Код:
~$ sudo dpkg-reconfigure tzdata
Код:
~$ sudo apt install linux-headers-$(uname -r)
Код:
~$ sudo apt install wireguard
Код:
~$ wg genkey | tee server_private_key | wg pubkey > server_public_key
Код:
~$ wg genkey | tee mobile_client_private_key | wg pubkey > mobile_client_public_key
Код:
~$ sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 192.168.40.1
SaveConfig = false
PrivateKey = <вставьте приватный ключ для серевера>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -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; ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <вставьте публичный ключ для телефона>
AllowedIPs = 192.168.40.2
Всё что выделено жирным - настраиваем под себя
Сохраняем файл: Ctrl+S --> Ctrl+X
Делаем из системы маршрутизатор:
Код:
~$ sudo sysctl -w net.ipv4.ip_forward=1
Поднимаем Wireguard сервер:
Код:
~$ sudo wg-quick up wg0
Проверяем, что интерфейс wg0 поднялся и ждет клиентов:
Код:
~$ sudo wg
Добавляем в автозапуск, чтоб после перезагрузки системы сервер поднимался автоматически:
Код:
~$ sudo systemctl enable wg-quick@wg0.service
Всё! Вот так просто мы настроили серверную часть Wireguard.
---------------
Настройка клиента Wireguard на Adnroid телефоне:
Для телефона на Android устанавливаем соответствующий клиент в официальном Маркете.
Открываем приложение, далее нажимаем на "плюс" --> <IMPORT FROM FILE OR ARCHIVE>
И выбираем заранее подготовленый файл mobile.conf
Файл должен содержать следущее:
Всё что выделено жирным - настраиваем под себя[Interface]
PrivateKey = <вставьте приватный ключ для телефона>
Address = 192.168.40.2
DNS = 1.1.1.1
[Peer]
PublicKey = <вставьте публичный ключ от сервера>
AllowedIPs = 0.0.0.0/0
Endpoint = <ipv4 адрес вашего сервера>:51820
PersistentKeepalive=25
На этом всё!
---------
В дополнение:
Настройка минимальной защиты сервера в виде firewall:
Код:
~$ sudo apt install ufw
~$ sudo ufw default deny incoming
~$ sudo ufw default allow outgoing
~$ sudo ufw allow 22/tcp # порт для ssh
~$ sudo ufw allow 51820/udp # порт для Wireguard
~$ sudo ufw enable
~$ sudo ufw status
Под спойлером файлы wg0.conf и mobile.conf с примером под мой сервер:
[CLIKE]wg0.conf
[Interface]
Address = 192.168.40.1
SaveConfig = false
PrivateKey = CFqnSuedJj6sTCXRoyqbg94LULgVYcPKgHuzRb6+lHI=
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i %i -j ACCEPT; ip6tab$
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i %i -j ACCEPT; ip6t$
ListenPort = 51820
[Peer]
PublicKey = 20li/aIdExkf+FMOxMa1kOo+6xj3U+RG23LKOtRo2j4=
AllowedIPs = 192.168.40.2
mobile.conf
[/CLIKE][Interface]
PrivateKey = 8FpUTMO5h16GZRgdUznbb7JUCOdXMiKeuMAwh+enXEg=
Address = 192.168.40.2
DNS = 1.1.1.1
[Peer]
PublicKey = YWXNRGQJEIbMU0qoFLzzd2cGasRMbZKm4rAqTAoy7D0=
AllowedIPs = 0.0.0.0/0
Endpoint = 3.120.31.125:51820
PersistentKeepalive=25
Не забываем! Несмотря на то что весь трафик теперь идет через ваш сервер - DNS запросы по прежнему ходят в открытую, и ваш провайдер по прежнему видит адреса сайтов на которые вы заходите.
Последнее редактирование: