Wireguard — это мощный демон виртуальной частной сети (VPN) с открытым исходным кодом, который может работать как на настольных, так и на мобильных устройствах. Он обеспечивает быструю и легкую альтернативу традиционным решениям VPN, таким как IPsec и OpenVPN. Здесь мы покажем вам, как установить Wireguard и создать простую настройку VPN с использованием трех компьютеров с Linux.
Зачем использовать Wireguard в качестве решения VPN?
Одним из главных преимуществ Wireguard является то, что это быстрый и легкий демон VPN. В отличие от традиционных решений
Contents
Зачем использовать Wireguard в качестве решения VPN?
т к снижению задержки и повышению общей пропускной способности всех узлов.Еще одна ключевая особенность Wireguard — это модуль внутри ядра Linux. Это позволяет ему работать, не занимая никаких дополнительных системных ресурсов вашего компьютера, что делает его идеальным выбором для развертывания на устройствах начального уровня и SOC.
Наконец, Wireguard также использует преимущества современных криптографических стандартов и методов разработки. Он также прошел несколько формальных проверок, которые подтверждают правильность кода Wireguard, гарантии безопасности и способность противостоять атакам.
Кстати, все еще не уверены в Wireguard? Узнайте как Wireguard сочетается с OpenVPN .
Получение Wireguard
Первым шагом для настройки Wireguard в Linux является загрузка основных инструментов из репозитория вашего дистрибутива. Это позволяет вам управлять встроенным модулем ядра Wireguard с помощью команд пользовательского пространства.
Чтобы установить основные инструменты в Ubuntu и Debian, выполните следующую команду:
sudo apt install wireguard wireguard-tools
В Fedora вы можете использовать менеджер пакетов dnf
:
sudo dnf install wireguard-tools
Для Arch Linux вы можете запустить pacman
, чтобы получить основные инструменты Wireguard:
sudo pacman -S wireguard-tools
Убедитесь, что вы правильно установили инструменты Wireguard, загрузив экран справки:
wg -h
Настройка сервера Wireguard
Предположение. В этой статье предполагается, что вы
Получение Wireguard
ard в системе Linux с общедоступным IPv4-адресом. Инструкции по-прежнему будут работать на сервере за NAT, но он не сможет найти узлы за пределами своей подсети.С помощью основного инструментария Wireguard на ваших компьютерах с Linux вы теперь можете настроить серверный узел VPN. Он будет служить интернет-шлюзом для ваших клиентских узлов в сети.
Начните с перехода в каталог конфигурации Wireguard и установите для него разрешения по умолчанию «только root»:
cd /etc/wireguard sudo umask 077
Примечание. Некоторые системы могут помешать вам войти в папку «/etc/wireguard» как обычный пользователь. Чтобы это исправить, используйте переключиться на пользователя root , используя sudo -s
.
Сгенерируйте открытый и закрытый ключи для вашего сервера Wireguard:
sudo sh -c 'wg genkey | tee /etc/wireguard/server-private-key | wg pubkey > /etc/wireguard/server-public-key'
Создайте файл конфигурации вашего сервера с помощью вашего любимого текстового редактора:
sudo nano /etc/wireguard/wg0.conf
Вставьте следующий блок кода в файл конфигурации вашего сервера:
[Interface] PrivateKey =Настройка сервера Wireguard
ATE-KEY-HERE Address = 10.0.0.1/32 ListenPort = 60101 PostUp = iptables -t nat -I POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE
Откройте новый сеанс терминала, затем распечатайте закрытый ключ Wireguard вашего сервера:
sudo cat /etc/wireguard/server-private-key
Скопируйте закрытый ключ вашего сервера в буфер обмена.
Замените значение переменной PrivateKey
ключом из буфера обмена.
Найдите сетевой интерфейс, имеющий доступ к Интернету, с помощью команды ip
:
ip route get 8.8.8.8
Установите значение флага -o
для переменных PostUp
и PostDown
для интерфейса с доступом в Интернет, затем сохраните файл конфигурации.
Откройте файл сервера «/etc/sysctl.conf» с помощью вашего любимого текстового редактора:
sudo nano /etc/sysctl.conf
Прокрутите вниз до строки, содержащей net.ipv4.ip_forward=1
, затем удалите знак решетки (#) перед ней.
Обновите новую конфигурацию sysctl, выполнив: sudo sysctl -p
.
К вашему сведению: Wireguard — не единственное решение VPN, которое можно запустить в Linux. Узнайте как создать свой собственный VPN с помощью OpenVPN .
Настройка и подключение клиента Wireguard
Теперь у вас есть правильно настроенный сервер Wireguard без каких-либо узлов. Чтобы использовать его, вам необходимо настроить и подключить свой первый клиент Wireguard.
Перейдите в каталог конфигурации Wireguard вашей клиентской системы и установите разрешения по умолчанию:
cd /etc/wireguard sudo umask 077
Сгенерируйте пару ключей Wireguard вашего клиента с помощью следующей команды:
sudo sh -c 'wg genkey | tee /etc/wireguard/client1-private-key | wg pubkey > /etc/wireguard/client1-public-key'
Создайте файл конфигурации Wireguard клиента с помощью вашего любимого текстового редактора:
sudo nano /etc/wireguard/wg0.conf
Вставьте следующий блок кода в файл конфигурации клиента:
[Interface] PrivateKey = PASTE-YOUR-CLIENT1-PRIVATE-KEY-HERE Address = 10.0.0.2/32 ListenPort = 60101 [Peer] PublicKey = PASTE-YOUR-SERVER-PUBLIC-KEY-HERE AllowedIPs = 0.0.0.0/0 Endpoint = PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60101 PersistentKeepalive = 25
Замените переменную PrivateKey
закрытым ключом вашего клиента.
Откройте сеанс терминала вашего сервера Wireguard, затем распечатайте его открытый ключ:
sudo cat /etc/wireguard/server-public-key
Установите значение переменной PublicKey
как открытый ключ вашего сервера.
Замените переменную Endpoint
на IP-адрес вашего сервера Wireguard.
Сохраните файл конфигурации, затем используйте команду wg-quick
для запуска клиента Wireguard:
sudo wg-quick up wg0
Примечание. Эта команда отключит сетевое подключение вашего клиента до тех пор, пока вы не запустите сервер Wireguard. Чтобы вернуться в исходную сеть, запустите sudo wg-quick down wg0
.
Связывание сервера Wireguard с клиентом
Перейдите в терминальны
Настройка и подключение клиента Wireguard
го файл конфигурации:sudo nano /etc/wireguard/wg0.conf
Вставьте следующий блок кода после раздела [Interface]
:
[Peer] PublicKey = PASTE-YOUR-CLIENT1-PUBLIC-KEY-HERE AllowedIPs = 10.0.0.2/32 PersistentKeepalive = 25
Задайте для переменной PublicKey
открытый ключ вашего клиента Wireguard.
Примечание. вы можете получить открытый ключ, запустив sudo cat /etc/wireguard/client1-public-key
на своем клиентском компьютере.
Сохраните файл конфигурации, затем выполните следующую команду, чтобы запустить службу Wireguard на вашем сервере:
sudo wg-quick up wg0
Добавление второго клиента на сервер
Одной из ключевых особенностей каждой службы VPN является то, что она может связывать несколько компьютеров из разных сетей. Это полезно, если ваши компьютеры находятся в разных местах или вы хотите разместить частный игровой сервер для своих друзей.
Чтобы сделать это в Wireguard, вам необходимо создать файл конфигурации для нового VPN-интерфейса на вашем сервере. Самый простой способ сделать это — скопировать текущую конфигурацию сервера и присвоить копии новое имя:
sudo cp /etc/wireguard/wg0.conf /etc/wireguard/wg1.conf
Откройте новый файл конфигурации с помощью любимого текстового редактора:
sudo nano /etc/wireguard/wg1.conf
Задайте для переменной ListenPort
значение 60102. Это предотвратит конфликты портов между VPN-интерфейсами wg0 и wg1.
Перейдите в раздел [Peer]
и измените переменную AllowedIPs
с «10.0.0.2/32» на «10.0.0.3/32», затем сохраните файл конфигурации.
Настройка второго клиента Wireguard
Войдите на второй компьютер, затем подготовьте каталог конфигурации Wireguard:
cd /etc/wireguard sudo umask 077
Сгенерируйте новую пару ключей Wireguard с помощью следующей команды:
sudo sh -c 'wg genkey | tee /etc/wireguard/client2-private-key | wg pubkey > /etc/wireguard/client2-public-key'
Создайте новый файл конфигурации с помощью вашего любимого текстового редактора:
sudo nano /etc/wireguard/wg0.conf
Вставьте следующий блок кода в новый файл конфигурации:
[Interface] PrivateKey = PASTE-YOUR-CLIENT2-PRIVATE-KEY-HERE Address = 10.0.0.3/32 ListenPort = 60102 [Peer] PublicKey = PASTE-YOUR-SERVER-PUBLIC-KEY-HERE AllowedIPs = 0.0.0.0/0 Endpoint = PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60102 PersistentKeepalive = 25
Задайте для переменной PrivateKey
з
Связывание сервера Wireguard с клиентом
мените переменнуюPublicKey
на открытый ключ вашего сервера.
Замените переменную Endpoint IP-адресом вашего сервера, а затем «:60102».
Сохраните файл конфигурации, затем запустите клиент Wireguard на втором компьютере:
sudo wg-quick up wg0
Привязка второго клиента к серверу Wireguard
Войдите на свой сервер Wireguard, затем откройте конфигурацию интерфейса VPN для второго клиента:
sudo nano /etc/wireguard/wg1.conf
Прокрутите вниз до раздела [Peer]
, затем замените переменную PublicKey
открытым ключом вашего второго клиента.
Сохраните файл конфигурации, затем запустите второй VPN-интерфейс с помощью команды wg-quick:
sudo wg-quick up wg1Добавление второго клиента на серверклиенты Wireguard корректно отображаются на вашем сервере, запустивwg
.Тестирование сети Wireguard
Поскольку ваш сервер и клиенты находятся в сети Wireguard, вы теперь можете проверить соединение и задержку между вашими узлами. Для этого убедитесь, что в вашей системе установлены инструменты сетевой диагностики:
sudo apt install net-tools curlВ Fedora вам нужно всего лишь установить
curl
, поскольку она уже поставляется с сетевыми инструментами прямо из коробки:sudo dnf install curlДля Arch Linux вы можете использовать
pacman
для установки сетевых инструментов иcurl
:sudo pacman -S traceroute curlНачнем с отслеживания маршрута пакета между двумя клиентами. Ниже показано, как IP-пакет переходит от «10.0.0.2» к «10.0.0.3»:
traceroute 10.0.0.3Проверьте, может ли какой-либо из ваших узлов получить доступ к общедоступному Интернету, проверив общий IP-адрес:
ping -c 5 8.8.8.8Наконец, убедитесь, что ваши узлы используют один и тот же общедоступный IP-адрес с вашим сервером Wireguard:
<curl ipinfo.io/ipНастройка второго клиента Wireguard
— это первый шаг в изучении увлекательного мира VPN. Погрузитесь глубже и посмотрите на наш выбор из лучшие провайдеры VPN, ориентированные на безопасность , которые вы можете получить сегодня.Изображение предоставлено: Кари Ши через Unsplash и Викисклад . Все изменения и скриншоты Рамсеса Реда.
Привязка второго клиента к серверу Wireguard
Тестирование сети Wireguard