August 24, 2020

WireGuard за 10 минут на Arch Linux

Рассмотрим установку VPN WireGuard на Arch linux

Все действия выполняются под root правами SU

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

Первым делом установим WireGuard

pacman -S wireguard-tools

И модуль ядра

pacman -S wireguard-arch

Либо Lts модуль ядра

pacman -S wireguard-lts

После установки загружаем модули ядра и проверяем что они загружены

modprobe wireguard && lsmod | grep wireguard

Переходим в каталог wireguard

cd /etc/wireguard

И генерируем ключи

umask 077 wg genkey | tee serverprivatekey | wg pubkey > serverpublickey wg genkey | tee clientprivatekey | wg pubkey > clientpublickey

Будет создано 4 файла с ключами

# cat serverprivatekey keykeykeykeykeykeykeykeykeykeykeykeykeykey=# cat serverpublickey keykeykeykeykeykeykeykeykeykeykeykeykeykey=# cat clientprivatekey keykeykeykeykeykeykeykeykeykeykeykeykeykey=# cat clientpublickey keykeykeykeykeykeykeykeykeykeykeykeykeykey=

Делаем наши ключи только для чтения владельцу

chmod 600 /etc/wireguard/serverprivatekeychmod 600 /etc/wireguard/clientprivatekeychmod 600 /etc/wireguard/serverpublickeychmod 600 /etc/wireguard/clientpublickey

Включаем форвардинг в sysctl

sysctl -w net.ipv4.ip_forward=1

И добавляем в /etc/sysctl.d/99-sysctl.conf строку net.ipv4.ip_forward = 1

nano /etc/sysctl.d/99-sysctl.conf

Создаем конфиг нашего сервера wireguard со следующим содержимым:

nano /etc/wireguard/wg0.conf [Interface]Address = 10.0.0.1/24PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADEPostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADEListenPort = 51820PrivateKey = SERVERPRIVATEKEY[Peer]PublicKey = CLIENTPUBLICKEYAllowedIPs = 10.0.0.2/32

Вместо SERVERPRIVATEKEY и CLIENTPUBLICKEY мы прописываем ключи, из созданных ранее файлов.

Вместо eth0 прописываем ваш интерфейс, можно посмотреть командой ip a

Сохраняем изменения и делаем файл доступным только для root, включаем и запускаем сервис:

chmod 600 /etc/wireguard/wg0.confsystemctl enable --now wg-quick@wg0.service

Теперь требуется настроить клиент

Так же устанавливаем Wireguard

  • pacman -S wireguard-tools

Создаем конфиг файл

nano /etc/wireguard/wg0-client.conf

Со следующим содержанием

[Interface]Address = 10.0.0.2/32PrivateKey = CLIENTPRIVATEKEYDNS = 10.0.0.1[Peer]PublicKey = SERVERPUBLICKEYEndpoint = РЕАЛЬНЫЙ_ИП_СЕРВЕРА:51820AllowedIPs = 0.0.0.0/0PersistentKeepalive = 21

Вместо SERVERPUBLICKEY и CLIENTPRIVATEKEY мы прописываем ключи, из созданных ранее файлов на сервере.

Сохраняем файл и пробуем подключится к нашему серверу

wg-quick up wg0-client

Для отключение от сервера

wg-quick down wg0-client

На этом все!

Так же в AUR есть пакет networkmanager-wireguard-git

yay -S networkmanager-wireguard-git

Добавит в ваш GUI интерфейс NetworkManager возможность настраивать и делать подключение к вашему серверу