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 возможность настраивать и делать подключение к вашему серверу