Linux

Как настроить WireGuard VPN на Debian 10

Как настроить WireGuard VPN на Debian 10

WireGuard - это VPN общего назначения (виртуальная частная сеть), в которой используется современная криптография. По сравнению с другими популярными решениями VPN, такими как IPsec и OpenVPN, WireGuard, как правило, быстрее, проще в настройке и занимает меньше места. Он кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS.

Wireguard - это одноранговая VPN; не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может выступать в роли традиционного сервера или клиента. Он работает путем создания сетевого интерфейса на каждом одноранговом устройстве, которое действует как туннель. Одноранговые узлы аутентифицируют друг друга, обмениваясь и проверяя открытые ключи, имитируя модель SSH. Открытые ключи сопоставляются со списком IP-адресов, разрешенных в туннеле. Трафик VPN инкапсулируется в UDP.

В этой статье объясняется, как установить и настроить WireGuard в Debian 10, который будет действовать как VPN-сервер. Мы также покажем вам, как настроить WireGuard в качестве клиента в Linux, Windows и macOS. Клиентский трафик будет маршрутизироваться через сервер Debian 10.

Эту настройку можно использовать в качестве защиты от атак Man in the Middle, анонимного просмотра веб-страниц, обхода контента с географическим ограничением или для обеспечения безопасного подключения ваших коллег, работающих из дома, к сети компании.

Предпосылки #

Чтобы следовать этому руководству, вам понадобится машина с установленным Debian 10. Вам также понадобится root или [sudo access] (https: // linuxize.com / post / how-to-create-a-sudo-user-on-debian / для установки пакетов и внесения изменений в систему.

Настройка сервера WireGuard #

Мы начнем с установки пакета WireGuard на машину Debian и настроим его для работы в качестве сервера. Также настроим систему для маршрутизации клиентского трафика через нее.

Установите WireGuard на Debian 10 #

WireGuard доступен из репозиториев Debian backports. Чтобы добавить репозиторий в вашу систему, запустите:

echo 'deb http: // ftp.дебиан.org / debian buster-backports main '| sudo tee / etc / apt / sources.список.d / buster-backports.список

После включения репозитория обновите кеш apt и установите модуль и инструменты WireGuard:

sudo apt updatesudo apt установить Wireguard
WireGuard работает как модуль ядра.

Настройка WireGuard #

Вы можете настраивать интерфейсы WireGuard и управлять ими с помощью wg а также wg-quick инструменты командной строки.

Каждое устройство в сети WireGuard VPN должно иметь закрытый и открытый ключ. Выполните следующую команду, чтобы сгенерировать пару ключей:

wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | Судо тройник / и т. д. / Wireguard / publickey

Файлы создаются в / etc / Wireguard каталог. Использовать Кот или же меньше команды для просмотра содержимого файлов. Закрытый ключ никогда не должен передаваться никому и всегда должен храниться в безопасности.

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

Следующим шагом является настройка туннельного устройства, которое будет маршрутизировать трафик VPN.

Настроить устройство можно либо из командной строки с помощью ip а также wg команды, или вручную создав файл конфигурации. Создадим конфигурацию с помощью текстового редактора.

Откройте ваш редактор и создайте новый файл с именем wg0.conf со следующим содержанием:

Судо нано / и т. д. / Wireguard / wg0.conf
/ и т. д. / Wireguard / wg0.conf
[Интерфейс] Адрес = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i% i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i% i -j ACCEPT; iptables -t nat -D ПОСТРОУТИРОВАНИЕ -o ens3 -j MASQUERADE 

Вы можете назвать интерфейс как хотите. Однако рекомендуется использовать что-то вроде wg0 или же wgvpn0.

Настройки в разделе интерфейса имеют следующее значение:

В wg0.conf а также личный ключ файлы не должны быть доступны для чтения обычным пользователям. Использовать chmod чтобы установить права доступа к файлам 600:

sudo chmod 600 / etc / wireguard / privatekey, wg0.conf

После этого принесите wg0 интерфейс с использованием атрибутов, указанных в файле конфигурации:

Судо WG-Quick Up WG0

Результат будет выглядеть примерно так:

[#] ip link добавить wg0 type wireguard [#] wg setconf wg0 / dev / fd / 63 [#] ip -4 address add 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A ПОСТРОУТИРОВАНИЕ -o ens3 -j MASQUERADE 

Чтобы проверить состояние и конфигурацию интерфейса, запустите:

sudo wg показать wg0
интерфейс: открытый ключ wg0: + Vpyku + gjVJuXGR / OXXt6cmBKPdc06Qnm3hpRhMBtxs = закрытый ключ: (скрытый) порт прослушивания: 51820 

Вы также можете проверить состояние интерфейса с помощью ip a шоу wg0:

ip а шоу wg0
4: wg0:  mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link / none inet 10.0.0.1/24 область глобальных wg0 valid_lft навсегда предпочтительный_lft навсегда 

WireGuard можно управлять с помощью Systemd. Чтобы запустить интерфейс WireGuard во время загрузки, выполните следующую команду:

sudo systemctl включить wg-quick @ wg0

Серверная сеть и конфигурация брандмауэра #

Для работы NAT должна быть включена переадресация IP. Открой / и т.д. / sysctl.conf файл и добавьте или раскомментируйте следующую строку:

судо нано / и т.д. / sysctl.conf
/ и т.д. / sysctl.conf
сеть.ipv4.ip_forward = 1

Сохраните файл и примените изменения:

sudo sysctl -p
сеть.ipv4.ip_forward = 1 

Если вы используете UFW для управления брандмауэром, вам необходимо открыть UDP-трафик на порту 51820:

sudo ufw разрешить 51820 / udp

это оно. Одноранговый узел Debian, который будет действовать как сервер, настроен.

Настройка клиентов Linux и macOS #

Инструкции по установке для всех поддерживаемых платформ доступны по адресу https: // wireguard.com / install / . В системах Linux вы можете установить пакет с помощью диспетчера пакетов распространения, а в macOS - с помощью заваривать.

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

Процесс настройки клиента Linux и macOS практически такой же, как и для сервера. Сначала сгенерируйте открытый и закрытый ключи:

wg genkey | sudo tee / etc / wireguard / privatekey | wg pubkey | Судо тройник / и т. д. / Wireguard / publickey

Создайте файл wg0.conf и добавьте следующее содержимое:

Судо нано / и т. д. / Wireguard / wg0.conf
/ и т. д. / Wireguard / wg0.conf
[Интерфейс] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 AllowedIPs = 0.0.0.0/0 

Настройки в разделе интерфейса имеют то же значение, что и при настройке сервера:

Одноранговый раздел содержит следующие поля:

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

Установка клиентов Windows #

Загрузите и установите пакет Windows msi с веб-сайта WireGuard .

После установки откройте приложение WireGuard и нажмите «Добавить туннель» -> «Добавить пустой туннель…», как показано на изображении ниже:

Пара публичных ключей создается автоматически и отображается на экране.

Введите имя туннеля и отредактируйте конфигурацию следующим образом:

[Интерфейс] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS: 51820 AllowedIPs = 0.0.0.0/0 

В разделе интерфейса добавьте новую строку для определения адреса клиентского туннеля.

В одноранговом разделе добавьте следующие поля:

После этого нажмите кнопку «Сохранить».

Добавить однорангового клиента к серверу #

Последний шаг - добавить на сервер открытый ключ и IP-адрес клиента. Для этого выполните на сервере Debian следующую команду:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

Обязательно измените CLIENT_PUBLIC_KEY с открытым ключом, который вы создали на клиентской машине (sudo cat / etc / wireguard / publickey) и настройте IP-адрес клиента, если он отличается. Пользователи Windows могут скопировать открытый ключ из приложения WireGuard.

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

Клиенты Linux и macOS #

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

Судо WG-Quick Up WG0

Теперь вы должны быть подключены к серверу Debian, и трафик с вашей клиентской машины должен проходить через него. Проверить соединение можно с помощью:

sudo wg
интерфейс: открытый ключ wg0: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo = закрытый ключ: (скрытый) порт прослушивания: 53527 fwmark: 0xca6c одноранговый узел: r3imyh3MCYggaZACmkx + CxlD8 xxxpoint: PGPIIC8 = PGPIIC8 +.XXX.XXX.XXX: 51820 разрешенных IPS: 0.0.0.0/0 последнее рукопожатие: 53 секунды назад передача: 3.23 КиБ получено, 3.50 КБ отправлено 

Вы также можете открыть свой браузер, ввести «what is my ip», и вы должны увидеть IP-адрес вашего сервера Debian.

Чтобы остановить туннелирование, выключите wg0 интерфейс:

sudo wg-quick вниз wg0

Клиенты Windows #

Если вы установили WireGuard в Windows, нажмите кнопку «Активировать». Как только одноранговые узлы будут подключены, статус туннеля изменится на Активный:

Заключение #

Мы показали вам, как установить WireGuard на Debian 10 и настроить его как VPN-сервер. Эта настройка позволяет вам просматривать веб-страницы анонимно, сохраняя конфиденциальность ваших данных о трафике.

Если у вас возникли проблемы, не стесняйтесь оставлять комментарии.

Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...