Как создать свой собственный VPN с WireGuard

Хотя существует множество VPN, вы можете захотеть создать свою собственную виртуальную защищённую сеть. Например, с помощью WireGuard.

Как создать свой собственный VPN с WireGuard 1

WireGuard — это протокол VPN, который был придуман и реализован полностью с нуля. Главная задача, которую ставил перед собой автор Джейсон Доненфелд — простота протокола и реализации, а также высокая скорость работы. Трафик WireGuard упаковывается в типовой UDP, не нужны специфичные IP-протоколы (как это сделано в PPP/IPSec). Автор решил не использовать классические legacy-протоколы шифрования и взял самые свежие, но доказано безопасные протоколы:

  • ChaCha20 (salsa) — симметричное потоковое шифрование данных.
  • Curve25519 ECDH — ассиметричное шифрование для авторизации и аутентификации.
  • Blake2s — для хеширования.

Что требуется перед работой с WireGuard?

Прежде чем приступить к шагам установки, убедитесь, что выполнены следующие предварительные условия:

  • Операционная система на базе Linux: В данном руководстве используется сервер под управлением Ubuntu 20.04 LTS.
  • Локальный компьютер: В данном руководстве используется клиент Windows 10 64-bit (можно использовать и удаленную систему).
  • WireGuard, установленный на локальном компьютере.

Скачать: WireGuard (Бесплатно)

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

Как настроить новый облачный сервер

Чтобы начать установку WireGuard, вам понадобится виртуальная машина на облачной платформе. Оставлю вам выбор такой ма

Как создать свой собственный VPN с WireGuard 2

Примечание: Последняя бесплатная версия WireGuard значительно более ресурсоэффективна, требуя не более 512 Мб оперативной памяти и одного виртуального процессора. Однако если вы хотите подключить более трех устройств, рекомендую развернуть виртуальную машину большей мощности.

Установка WireGuard на вашем сервере

Используем Putty для подключения к SSH нашего сервера. 

После запуска вашего облачного сервера выполните следующие действия, чтобы установить на нем WireGuard.

1. Войдите на сервер и выполните следующую команду, чтобы убедиться, что система находится в актуальном состоянии:

sudo apt-get update && sudo apt-get upgrade -y

После этого можно приступать к установке и настройке WireGuard на сервере.

2. Теперь мы можем установить WireGuard, выполнив следующий скрипт от GitHub script by Angristan:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
                    chmod +x wireguard-install.sh

3. Далее запустите скрипт с помощью следующей команды:

sudo ./wireguard-install.sh

4. Сразу после нажатия клавиши ввода терминал отобразит серию вопросов. Вы должны последовательно ответить на вопросы, или вы можете использовать ответы по умолчанию.

Script Results In Shell

5. Нажимайте Enter на каждом шаге, чтобы продолжить до тех пор, пока WireGuard не будет успешно установлен. Теперь вы можете выйти из процесса настройки WireGuard на вашем сервере, нажав любую клавишу.

Вы должны повторить эти шаги для каждого клиента, который вы хотите подключить к серверу WireGuard.

К счастью, WireGuard предлагает программное обеспечение для большинства операционных систем, что упрощает процесс подключения устройств под управлением Windows, Linux, macOS, Android или iOS.

После установки WireGuard выполните следующие шаги, чтобы настроить некоторые дополнительные функции на стороне сервера.

Как настроить клиент для WireGuard

В конце вам нужно будет настроить клиента для подключения и тестирования вашего сервера WireGuard VPN. Нет разницы, работает ли ваш клиент на Windows, macOS, Linux или BSD. Клиент WireGuard — это компьютер или другое устройство, которое использует свой собственный уникальный открытый ключ для подключения к VPN-серверу. Чтобы настроить клиента WireGuard, выполните следующие шаги:

  1. В терминале введите основное имя клиента и нажмите клавишу Enter.
  2. Далее на терминале появятся адреса IPv4 и IPv6; нажмите Enter еще два раза.
  3. На этом этапе он автоматически создаст для вас файл конфигурации. Запишите путь к файлу или скопируйте его.

Примечание: Вы должны сохранять секретный ключ в тайне. Любой, кто имеет доступ к вашему закрытому ключу, может установить VPN-соединение и даже использовать его не по назначению.

Кроме того, WireGuard создает QR-код, который можно отсканировать с помощью любого устройства Android или iOS. Это устраняет необходимость ручного копирования файла конфигурации, например, с сервера на смартфон.

Как настроить брандмауэр и переадресацию IP-адресов

В дополнение к настройке сервера WireGuard необходимо настроить локальную сеть и брандмауэр. Это даст вам больше контроля над тем, кто может подключаться к вашему серверу.

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

sudo nano /etc/sysctl.conf

2. Затем найдите и удалите символ «#» из следующей строки: #net.ipv4.ip forward=1. Это включит переадресацию адресов IPv4 на вашем сервере.

Sysctl File In Shell

3. Наконец, сохраните изменения и выполните следующую команду, чтобы сделать изменения постоянными:

sudo sysctl -p

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

Как подключиться к VPN с помощью WireGuard

Теперь, когда вы получили учетные данные клиента и установили WireGuard на свой сервер, пришло время подключиться к VPN.

Подключение WireGuard VPN в Windows

1. Введите следующую команду в терминале, чтобы увидеть папки или файлы в текущем каталоге:

ls

2. Теперь скопируйте имя файла конфигурации. В нашем случае файл называется «wg0-client-windows.conf«, хотя имя файла зависит от пользователя.

LS Output In Shell

3. После этого используйте приведенную ниже команду для чтения содержимого файла в терминале.

cat wg0-client-windows.conf

Не забудьте заменить «wg0-client-ubuntu.conf» на имя вашего конфигурационного файла.

4. На этом шаге вы получите информацию о конфигурации WireGuard. Наконец, скопируйте все с «[Interface]» до конца.

Configuration Output In Shell

5. Теперь в Windows откройте WireGuard и перейдите в меню Add Tunnel > Add empty tunnel.

6. Дайте туннелю имя и вставьте скопированный текст в поле редактора. После завершения нажмите кнопку Save.

Tunnel Editor In WireGuard

7. На следующем экране нажмите Activate (Активировать), чтобы подключиться к VPN.

Подключение WireGuard VPN на Android

WireGuard совместим практически со всеми телефонами Android, независимо от версии. Кроме того, шаги по подключению VPN для устройств iOS идентичны шагам для устройств Android.

Чтобы настроить VPN на любом телефоне Android с помощью WireGuard, выполните следующие действия:

  1. Загрузите и установите WireGuard app.
  2. Откройте приложение и коснитесь плавающего значка в правом нижнем углу телефона.
  3. Нажмите кнопку SCAN FROM QR CODE.
  4. Разрешите необходимые разрешения и отсканируйте QR-код.
  5. После этого введите имя нового туннеля и нажмите кнопку Create Tunnel (Создать туннель).
  6. Наконец, нажмите на переключатель, чтобы подключиться к собственной VPN.

Спасибо, что читаете! На данный момент большинство моих заметок, статей и подборок выходит в telegram канале «Левашов». Обязательно подписывайтесь, чтобы не пропустить новости мира ИТ, полезные инструкции и нужные сервисы.


Респект за пост! Спасибо за работу!

Хотите больше постов в блоге? Подборок софта и сервисов, а также обзоры на гаджеты? Сейчас, чтобы писать регулярно и радовать вас большими обзорами, мне требуется помощь. Чтобы поддерживать сайт на регулярной основе, вы можете оформить подписку на российском сервисе Boosty. Или воспользоваться ЮMoney (бывшие Яндекс Деньги) для разовой поддержки:


Заранее спасибо! Все собранные средства будут пущены на развитие сайта. Поддержка проекта является подарком владельцу сайта.

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments
0
Прочитали? Прокомментируйте!x
()
x
Яндекс.Метрика