WireGuard за пару минут на Arch и Manjaro Linux

Рассмотрим установку WireGuard.

Данная статья не является инструкцией для обхода блокировок. Она описывает метод создания собственной сети между двух или нескольких устройств в сети Интернет.

Авто режим при помощи скрипта

Для простоты использования можно использовать скрипт, который установит все нужные зависимости и настроит сервер на корректную работу:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh

И запустить:

./wireguard-install.sh

Данный скрипт позволяет установить — настроить сервер, добавлять пользователей и генерить для них QR-коды, удалять пользователей или же сам сервер.

Ручная настройка сервера

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

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

pacman -S wireguard-tools

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

modprobe wireguard && lsmod | grep wireguard

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

cd /etc/wireguard

Генерируем ключи

umask 077
wg genkey | tee server_private.key | wg pubkey | tee server_public.key
wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key

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

# cat server_private.key 
keykeykeykeykeykeykeykeykeykeykeykeykeykey=
# cat server_public.key
keykeykeykeykeykeykeykeykeykeykeykeykeykey=
# cat client_private.key 
keykeykeykeykeykeykeykeykeykeykeykeykeykey=
# cat client_public.key
keykeykeykeykeykeykeykeykeykeykeykeykeykey=

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

И добавляем в /etc/sysctl.d/99-sysctl.conf:

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

Строки:

net.ipv4.ip_forward = 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

Создаем конфиг нашего сервера 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

Сохраняем изменения, включаем и запускаем сервис:

systemctl enable --now wg-quick@wg0.service

Либо запускаем вручную:

wg-quick up wg0

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

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

pacman -S wireguard-tools

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

nano /etc/wireguard/wg0-client.conf

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

[Interface]
Address = 10.0.0.2/32
PrivateKey = CLIENTPRIVATEKEY
DNS = 1.1.1.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

 

Рейтинг
( 1 оценка, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
MasCloud
Комментарии: 5
  1. Ярый Перец

    Спасибо, голову сломал как его на Манжаро настроить, жаль нет клиента с фейсом как на андройд или Виндовс

  2. Павлентий

    Что значит в настройке сервера – “Вместо eth0 прописываем ваш интерфейс, можно посмотреть командой ip a”? Что именно записывать из вывода ip a,

    1. Stez (автор)

      Имя вашего интернет соединения, например wlan0 или eth0 и т.п.

  3. Valerii

    Ссылка на скрипт уже немного другая.

    1. Stez (автор)

      Репа скрипта не обновлялась с 30 января, как она стала другой?

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: