Рассмотрим установку 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/serverprivatekey chmod 600 /etc/wireguard/clientprivatekey chmod 600 /etc/wireguard/serverpublickey chmod 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/24 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PrivateKey = SERVERPRIVATEKEY [Peer] PublicKey = CLIENTPUBLICKEY AllowedIPs = 10.0.0.2/32
Вместо SERVERPRIVATEKEY и CLIENTPUBLICKEY мы прописываем ключи, из созданных ранее файлов.
Вместо eth0 прописываем ваш интерфейс, можно посмотреть командой ip a
Сохраняем изменения и делаем файл доступным только для root, включаем и запускаем сервис:
chmod 600 /etc/wireguard/wg0.conf systemctl enable --now wg-quick@wg0.service
Теперь требуется настроить клиент
Так же устанавливаем Wireguard
pacman -S wireguard-tools
Создаем конфиг файл
nano /etc/wireguard/wg0-client.conf
Со следующим содержанием
[Interface] Address = 10.0.0.2/32 PrivateKey = CLIENTPRIVATEKEY DNS = 10.0.0.1 [Peer] PublicKey = SERVERPUBLICKEY Endpoint = РЕАЛЬНЫЙ_ИП_СЕРВЕРА:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 21
Вместо SERVERPUBLICKEY и CLIENTPRIVATEKEY мы прописываем ключи, из созданных ранее файлов на сервере.
Сохраняем файл и пробуем подключится к нашему серверу
wg-quick up wg0-client
Для отключение от сервера
wg-quick down wg0-client
На этом все!
Так же в AUR есть пакет networkmanager-wireguard-git
yay -S networkmanager-wireguard-git
Добавит в ваш GUI интерфейс NetworkManager возможность настраивать и делать подключение к вашему серверу