Wireguard VPN. Быстрая настройка
Детально описывать что такое 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
Делаем из системы маршрутизатор:
Проверяем, что интерфейс wg0 поднялся и ждет клиентов:
Добавляем в автозапуск, чтоб после перезагрузки системы сервер поднимался автоматически:
Всё! Вот так просто мы настроили серверную часть Wireguard.
---------------
Настройка клиента Wireguard на Adnroid телефоне:
Для телефона на Android устанавливаем соответствующий клиент в официальном Маркете.
Открываем приложение, далее нажимаем на "плюс" --> <IMPORT FROM FILE OR ARCHIVE>
И выбираем заранее подготовленый файл mobile.conf
Файл должен содержать следущее:
Всё что выделено жирным - настраиваем под себя
Настройка минимальной защиты сервера в виде firewall:
Сами файлы wg0.conf и mobile.conf с примером под мой сервер:
На основе данного манаула по настройке wireguard и unbound, и правил для iptables написал на bash+python скрипт для авто настройки wireguard на сервере
- Включает и настраивает автоматическое обновление пакетов безопасности системы unattended upgrades
- Добавляет в систему пользователя u2998 и включает его в группу sudo
- Настраивает SSH: Меняет стандартный (22) порт на 55933 Запрещает доступ root пользователю по SSH
- Настраивает wireguard и генерирует ключи для сервера и клиента
- Настраивает DNS сервер unbound, чтобы DNS запросы шли внутри wireguard туннеля
- Создает правила для iptables, которые оставляют открытыми только порты 55933 для SSH 57800 для wireguard