Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

УСТАНОВКА WIREGUARD В UBUNTU

Установка и настройка программного обеспечения
Ответить
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1350
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

УСТАНОВКА WIREGUARD В UBUNTU

Сообщение ALEXX »

ШАГ 1. УСТАНОВКА РЕПОЗИТОРИЯ
В этой статье будет приведен пример установки программы на Ubuntu 20.04, вы можете получить WireGuard из официальных репозиториев, но в более старых дистрибутивах или для получения самой свежей версии следует использовать PPA. Для добавления PPA в систему выполните:

Код: Выделить всё

sudo add-apt-repository ppa:wireguard/wireguard
После этого список пакетов будет автоматически обновлен.

ШАГ 2. УСТАНОВКА WIREGUARD
В установке нет ничего сложного, выполните такие команды:

Код: Выделить всё

sudo apt install wireguard
Snimok-ekrana-ot-2020-06-03-15-43-32-743x576.png
Snimok-ekrana-ot-2020-06-03-15-43-32-743x576.png (543.67 КБ) 1949 просмотров
Эти два шага надо выполнить как на сервере, так и на клиентском компьютере, дальше работаем только на сервере.

ШАГ 3. НАСТРОЙКА СИСТЕМЫ
Для того, чтобы пакеты перенаправлялись туда, куда надо, нужно разрешить перенаправление сетевых пакетов на уровне ядра. Для этого откройте файл /etc/sysctl.conf и добавьте в конец такие строки:

Код: Выделить всё

sudo vi /etc/sysctl.conf

Код: Выделить всё

net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0
Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию:

Код: Выделить всё

sysctl -p
ШАГ 4. ГЕНЕРАЦИЯ КЛЮЧЕЙ СЕРВЕРА
Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке:

Код: Выделить всё

wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key
Snimok-ekrana-ot-2020-06-04-14-18-54-1-827x576.png
Snimok-ekrana-ot-2020-06-04-14-18-54-1-827x576.png (526.75 КБ) 1949 просмотров
Ключи созданы, можете утилита tee запишет их в файл, а также выведет на экран, что очень удобно.

ШАГ 5. ГЕНЕРАЦИЯ КЛЮЧЕЙ КЛИЕНТА
Аналогичным образом создаём ключи для клиента. Команда та же:

Код: Выделить всё

wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key
1.png
1.png (527.7 КБ) 1949 просмотров
ШАГ 6. КОНФИГУРАЦИОННЫЙ ФАЙЛ СЕРВЕРА
Наш конфигурационный файл сервера будет находится по пути /etc/wireguard/wg0.conf и будет выглядеть следующим образом:

Код: Выделить всё

sudo vi /etc/wireguard/wg0.conf

Код: Выделить всё

[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 63665
PrivateKey = OFCMMpdPYUTndTkTuCDCZDg6uYrzGcjcL6Tg4aAp5kU=
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE
[Peer]
PublicKey = 2g8MWhxN1QGLAfGwEnxHG38/krdcPbgjo87zSKurP1g=
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
2.png
2.png (570.59 КБ) 1949 просмотров
Файл разделен на две секции:

Interface - настройка сервера;
Peer - настройка клиентов, которые могут подключаться к серверу, секций Peer может быть несколько.
В данном случае мы настраиваем сервер WireGuard для работы с IPv4 и IPv6 одновременно, вот, что значат основные параметры:

Address - адрес сервера в сети VPN;
ListenPort - порт, на котором будет ожидать подключения WireGuard;
PrivateKey - приватный ключ сервера, сгенерированный ранее;
PostUp - команда, которая выполняется после запуска сервера. В данном случае включается поддержка MASQUERADE для интерфейса enp0s8, а также разрешается прием пакетов на интерфейсе wg0. Сетевые интерфейсы вам придется заменить на свои.
PostDown - выполняется после завершения работы WireGuard, в данном случае удаляет все правила, добавленные в PostUp.
Секции Peer содержат настройки клиентов, которые могут подключится к серверу:

PublicKey - публичный ключ клиента, сгенерированный ранее;
AllowedIPs - IP адрес, который может взять клиент. Обратите внимание, маска для IPv4 должна быть 32.
Теперь можно переходить к созданию конфигурационного файла непосредственно для клиента.

ШАГ 7. КОНФИГУРАЦИОННЫЙ ФАЙЛ КЛИЕНТА
Конфигурационный файл клиента будет выглядеть примерно так:

Код: Выделить всё

vi client.conf

Код: Выделить всё

[Interface]
PrivateKey = GMJXo+phyNS/kodizn353D2MN8bPNOSqJEhQ83caKkY=
Address = 10.66.66.2/24,fd42:42:42::2/64
DNS = 8.8.8.8,8.8.4.4
[Peer]
PublicKey = xxIV2fvMp7J2H1GxVuQcfVi2TJ0lQ/2K8UXSKC/byhM=
Endpoint = 192.168.56.101:63665
AllowedIPs = 0.0.0.0/0,::/0
3.png
3.png (525.43 КБ) 1949 просмотров
ГлавнаяИнструкцииУстановка WireGuard в Ubuntu
УСТАНОВКА WIREGUARD В UBUNTUИнструкции 8 июня, 2020 0 admin
WireGuard - это новый, современный VPN сервис с открытым исходным кодом, который позиционирует себя как замену OpenVPN и использует современную криптографию. Он реализован в виде модуля ядра Linux. Изначально он поддерживал только Linux, но потом были разработаны приложения для Windows, MacOS и Android.

В сегодняшней статье мы поговорим о том как установить WireGurad Ubuntu 20.04, а также как настроить подключение между настроенным VPN сервером и клиентом.

Содержание статьи:

Установка WireGuard на Ubuntu
Шаг 1. Установка репозитория
Шаг 2. Установка WireGuard
Шаг 3. Настройка системы
Шаг 4. Генерация ключей сервера
Шаг 5. Генерация ключей клиента
Шаг 6. Конфигурационный файл сервера
Шаг 7. Конфигурационный файл клиента
Шаг 8. Запуск сервера
Шаг 9. Настройка брандмауэера
Шаг 10. Подключение клиента
Шаг 11. Проверка
Выводы
УСТАНОВКА WIREGUARD НА UBUNTU
ШАГ 1. УСТАНОВКА РЕПОЗИТОРИЯ
В этой статье будет приведен пример установки программы на Ubuntu 20.04, вы можете получить WireGuard из официальных репозиториев, но в более старых дистрибутивах или для получения самой свежей версии следует использовать PPA. Для добавления PPA в систему выполните:

sudo add-apt-repository ppa:wireguard/wireguard

После этого список пакетов будет автоматически обновлен.

ШАГ 2. УСТАНОВКА WIREGUARD
В установке нет ничего сложного, выполните такие команды:

sudo apt install wireguard



Эти два шага надо выполнить как на сервере, так и на клиентском компьютере, дальше работаем только на сервере.

ШАГ 3. НАСТРОЙКА СИСТЕМЫ
Для того, чтобы пакеты перенаправлялись туда, куда надо, нужно разрешить перенаправление сетевых пакетов на уровне ядра. Для этого откройте файл /etc/sysctl.conf и добавьте в конец такие строки:

sudo vi /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию:

sysctl -p

ШАГ 4. ГЕНЕРАЦИЯ КЛЮЧЕЙ СЕРВЕРА
Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке:

wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key



Ключи созданы, можете утилита tee запишет их в файл, а также выведет на экран, что очень удобно.

ШАГ 5. ГЕНЕРАЦИЯ КЛЮЧЕЙ КЛИЕНТА
Аналогичным образом создаём ключи для клиента. Команда та же:

wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key



ШАГ 6. КОНФИГУРАЦИОННЫЙ ФАЙЛ СЕРВЕРА
Наш конфигурационный файл сервера будет находится по пути /etc/wireguard/wg0.conf и будет выглядеть следующим образом:

sudo vi /etc/wireguard/wg0.conf


[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 63665
PrivateKey = OFCMMpdPYUTndTkTuCDCZDg6uYrzGcjcL6Tg4aAp5kU=
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE
[Peer]
PublicKey = 2g8MWhxN1QGLAfGwEnxHG38/krdcPbgjo87zSKurP1g=
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128



Файл разделен на две секции:

Interface - настройка сервера;
Peer - настройка клиентов, которые могут подключаться к серверу, секций Peer может быть несколько.
В данном случае мы настраиваем сервер WireGuard для работы с IPv4 и IPv6 одновременно, вот, что значат основные параметры:

Address - адрес сервера в сети VPN;
ListenPort - порт, на котором будет ожидать подключения WireGuard;
PrivateKey - приватный ключ сервера, сгенерированный ранее;
PostUp - команда, которая выполняется после запуска сервера. В данном случае включается поддержка MASQUERADE для интерфейса enp0s8, а также разрешается прием пакетов на интерфейсе wg0. Сетевые интерфейсы вам придется заменить на свои.
PostDown - выполняется после завершения работы WireGuard, в данном случае удаляет все правила, добавленные в PostUp.
Секции Peer содержат настройки клиентов, которые могут подключится к серверу:

PublicKey - публичный ключ клиента, сгенерированный ранее;
AllowedIPs - IP адрес, который может взять клиент. Обратите внимание, маска для IPv4 должна быть 32.
Теперь можно переходить к созданию конфигурационного файла непосредственно для клиента.

ШАГ 7. КОНФИГУРАЦИОННЫЙ ФАЙЛ КЛИЕНТА
Конфигурационный файл клиента будет выглядеть примерно так:

vi client.conf

[Interface]
PrivateKey = GMJXo+phyNS/kodizn353D2MN8bPNOSqJEhQ83caKkY=
Address = 10.66.66.2/24,fd42:42:42::2/64
DNS = 8.8.8.8,8.8.4.4
[Peer]
PublicKey = xxIV2fvMp7J2H1GxVuQcfVi2TJ0lQ/2K8UXSKC/byhM=
Endpoint = 192.168.56.101:63665
AllowedIPs = 0.0.0.0/0,::/0



Обратите внимание, что все ключи мы генерируем на сервере, а затем уже скидываем конфигурационный файл клиента на компьютер, который надо подключить к сети. Рассмотрим подробнее что за что отвечает:

PrivateKey - приватный ключ клиента, сгенерированный ранее;
Address - IP адрес интерфейса wg0 клиента;
DNS - серверы DNS, которые будут использоваться для разрешения доменных имён;
PublicKey - публичный ключ сервера, к которому надо подключится.
Endpoint - здесь надо указать IP адрес сервера, на котором установлен WireGuard и порт;
AllowedIPs - IP адреса, трафик с которых будет перенаправляться в сеть VPN, в данном примере выбраны все адреса.
После того, как вы внесли все изменения, скопируйте файл на компьютер клиента под именем /etc/wireguard/wg0.conf.

ШАГ 8. ЗАПУСК СЕРВЕРА
Для запуска сервера используйте такую команду:

Код: Выделить всё

sudo wg-quick up wg0
4.png
4.png (535.63 КБ) 1949 просмотров
ГлавнаяИнструкцииУстановка WireGuard в Ubuntu
УСТАНОВКА WIREGUARD В UBUNTUИнструкции 8 июня, 2020 0 admin
WireGuard - это новый, современный VPN сервис с открытым исходным кодом, который позиционирует себя как замену OpenVPN и использует современную криптографию. Он реализован в виде модуля ядра Linux. Изначально он поддерживал только Linux, но потом были разработаны приложения для Windows, MacOS и Android.

В сегодняшней статье мы поговорим о том как установить WireGurad Ubuntu 20.04, а также как настроить подключение между настроенным VPN сервером и клиентом.

Содержание статьи:

Установка WireGuard на Ubuntu
Шаг 1. Установка репозитория
Шаг 2. Установка WireGuard
Шаг 3. Настройка системы
Шаг 4. Генерация ключей сервера
Шаг 5. Генерация ключей клиента
Шаг 6. Конфигурационный файл сервера
Шаг 7. Конфигурационный файл клиента
Шаг 8. Запуск сервера
Шаг 9. Настройка брандмауэера
Шаг 10. Подключение клиента
Шаг 11. Проверка
Выводы
УСТАНОВКА WIREGUARD НА UBUNTU
ШАГ 1. УСТАНОВКА РЕПОЗИТОРИЯ
В этой статье будет приведен пример установки программы на Ubuntu 20.04, вы можете получить WireGuard из официальных репозиториев, но в более старых дистрибутивах или для получения самой свежей версии следует использовать PPA. Для добавления PPA в систему выполните:

sudo add-apt-repository ppa:wireguard/wireguard

После этого список пакетов будет автоматически обновлен.

ШАГ 2. УСТАНОВКА WIREGUARD
В установке нет ничего сложного, выполните такие команды:

sudo apt install wireguard



Эти два шага надо выполнить как на сервере, так и на клиентском компьютере, дальше работаем только на сервере.

ШАГ 3. НАСТРОЙКА СИСТЕМЫ
Для того, чтобы пакеты перенаправлялись туда, куда надо, нужно разрешить перенаправление сетевых пакетов на уровне ядра. Для этого откройте файл /etc/sysctl.conf и добавьте в конец такие строки:

sudo vi /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv6.conf.default.forwarding = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.proxy_arp = 0
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.all.send_redirects = 0

Затем необходимо выполнить команду sysctl -p чтобы система перечитала конфигурацию:

sysctl -p

ШАГ 4. ГЕНЕРАЦИЯ КЛЮЧЕЙ СЕРВЕРА
Для сервера надо создать приватный и публичный ключ. Эти ключи, потом надо будет записать в конфигурационный файл сервера и клиента, сами файлы ключей вам не нужны, поэтому можете создавать их где хотите, например, в домашней папке:

wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key



Ключи созданы, можете утилита tee запишет их в файл, а также выведет на экран, что очень удобно.

ШАГ 5. ГЕНЕРАЦИЯ КЛЮЧЕЙ КЛИЕНТА
Аналогичным образом создаём ключи для клиента. Команда та же:

wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key



ШАГ 6. КОНФИГУРАЦИОННЫЙ ФАЙЛ СЕРВЕРА
Наш конфигурационный файл сервера будет находится по пути /etc/wireguard/wg0.conf и будет выглядеть следующим образом:

sudo vi /etc/wireguard/wg0.conf


[Interface]
Address = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 63665
PrivateKey = OFCMMpdPYUTndTkTuCDCZDg6uYrzGcjcL6Tg4aAp5kU=
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o enp0s8 -j MASQUERADE
[Peer]
PublicKey = 2g8MWhxN1QGLAfGwEnxHG38/krdcPbgjo87zSKurP1g=
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128



Файл разделен на две секции:

Interface - настройка сервера;
Peer - настройка клиентов, которые могут подключаться к серверу, секций Peer может быть несколько.
В данном случае мы настраиваем сервер WireGuard для работы с IPv4 и IPv6 одновременно, вот, что значат основные параметры:

Address - адрес сервера в сети VPN;
ListenPort - порт, на котором будет ожидать подключения WireGuard;
PrivateKey - приватный ключ сервера, сгенерированный ранее;
PostUp - команда, которая выполняется после запуска сервера. В данном случае включается поддержка MASQUERADE для интерфейса enp0s8, а также разрешается прием пакетов на интерфейсе wg0. Сетевые интерфейсы вам придется заменить на свои.
PostDown - выполняется после завершения работы WireGuard, в данном случае удаляет все правила, добавленные в PostUp.
Секции Peer содержат настройки клиентов, которые могут подключится к серверу:

PublicKey - публичный ключ клиента, сгенерированный ранее;
AllowedIPs - IP адрес, который может взять клиент. Обратите внимание, маска для IPv4 должна быть 32.
Теперь можно переходить к созданию конфигурационного файла непосредственно для клиента.

ШАГ 7. КОНФИГУРАЦИОННЫЙ ФАЙЛ КЛИЕНТА
Конфигурационный файл клиента будет выглядеть примерно так:

vi client.conf

[Interface]
PrivateKey = GMJXo+phyNS/kodizn353D2MN8bPNOSqJEhQ83caKkY=
Address = 10.66.66.2/24,fd42:42:42::2/64
DNS = 8.8.8.8,8.8.4.4
[Peer]
PublicKey = xxIV2fvMp7J2H1GxVuQcfVi2TJ0lQ/2K8UXSKC/byhM=
Endpoint = 192.168.56.101:63665
AllowedIPs = 0.0.0.0/0,::/0



Обратите внимание, что все ключи мы генерируем на сервере, а затем уже скидываем конфигурационный файл клиента на компьютер, который надо подключить к сети. Рассмотрим подробнее что за что отвечает:

PrivateKey - приватный ключ клиента, сгенерированный ранее;
Address - IP адрес интерфейса wg0 клиента;
DNS - серверы DNS, которые будут использоваться для разрешения доменных имён;
PublicKey - публичный ключ сервера, к которому надо подключится.
Endpoint - здесь надо указать IP адрес сервера, на котором установлен WireGuard и порт;
AllowedIPs - IP адреса, трафик с которых будет перенаправляться в сеть VPN, в данном примере выбраны все адреса.
После того, как вы внесли все изменения, скопируйте файл на компьютер клиента под именем /etc/wireguard/wg0.conf.

ШАГ 8. ЗАПУСК СЕРВЕРА
Для запуска сервера используйте такую команду:

Код: Выделить всё

sudo wg-quick up wg0


Аналогично можно использовать systemd:

Код: Выделить всё

sudo systemctl start wg-quick@wg0
С помощью systemd можно настроить автозагрузку интерфейса:

Код: Выделить всё

sudo systemctl enable wg-quick@wg0
ШАГ 9. НАСТРОЙКА БРАНДМАУЭЕРА
В этой инструкции мы использовали порт 63665 для WireGuard. Программа использует UDP, нужно разрешить подключение к этому порту. Для этого выполните:

Код: Выделить всё

sudo ufw allow 63665/udp
Или убедитесь, что ufw отключён и порты никто не блокирует:

Код: Выделить всё

sudo ufw status
5.png
5.png (493.73 КБ) 1949 просмотров
Настройка WireGuard Ubuntu завершена.

ШАГ 10. ПОДКЛЮЧЕНИЕ КЛИЕНТА
Пришло время переходить к клиенту. Я предполагаю, что WireGuard уже установлен, а конфигурационный файл клиента находится по пути /etc/wireguard/wg0.conf. Подключение выполняется аналогично запуску сервера:

Код: Выделить всё

sudo wg-quick up wg0
6.png
6.png (576.75 КБ) 1949 просмотров
После этого вы можете посмотреть статистику по подключению с помощью команды:

Код: Выделить всё

sudo wg show
7.png
7.png (528.85 КБ) 1949 просмотров
ШАГ 11. ПРОВЕРКА
Чтобы убедиться что всё работает можно выполнить ping для сервера WireGuard. Он должен быть доступен:

Код: Выделить всё

ping 10.66.66.1
8.png
8.png (519.4 КБ) 1949 просмотров
Если пакеты идут, значит всё хорошо. Если же нет, надо внимательно проверять инструкцию и смотреть что сделано не так. У WireGuard здесь есть проблемы. У программы нет подробных логов, где можно было бы посмотреть какая ошибка произошла, а причин проблем может быть очень много. Чаще всего - это несоответствующие ключи, закрытый порт или неверный адрес сервера. Доступность порта на сервере можно проверить с помощью утилиты nc. Надо запускать на клиентской машине:

Код: Выделить всё

nc -z -v -u 192.168.56.101 63665
Также можно убедится, что пакеты WireGuard доходят к серверу, для этого используйте tcpdump на сервере:

Код: Выделить всё

tcpdump -n -i enp0s8 port 63665
Аватара пользователя
ALEXX
Администратор
Администратор
Сообщения: 1350
Зарегистрирован: 21 дек 2014, 14:59
Откуда: Королёв
Контактная информация:

Re: УСТАНОВКА WIREGUARD В UBUNTU

Сообщение ALEXX »

Код: Выделить всё

apt install resolvconf wireguard
systemctl start wg-quick@file
Ответить

Вернуться в «Установка программ»