Установка WireGuard
WireGuard — протокол связи, а также бесплатное ПО для организации VPN-сервера с шифрованием. По статистике, WireGuard до 5 раз быстрее OpenVPN, а также более безопасный.
Для подключения понадобится установить клиент на компьютер или на телефон:
Инструкция по автоматической установке WireGuard размещена здесь:
Данный вариант подразумевает управление через SSH. Если Вы хотите управлять пользователями через веб-интерфейс, то следуйте инструкции выше.
Для быстрой установки WireGuard используйте следующие команды:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh
Скрипт установит всё необходимое, а также поможет добавить необходимое количество пользователей.
Данный способ установки рекомендуется использовать только опытным пользователям Linux. Для быстрой и простой установки используйте способы выше.
Для установки необходимо выполнить следующие команды в SSH:
yum install epel-release elrepo-release
yum install yum-plugin-elrepo
yum install kmod-wireguard wireguard-tools
Далее потребуется подключить модуль ядра, а также выполнить настройку WireGuard:
modprobe wireguard && lsmod | grep wireguard
mkdir /etc/wireguard && cd /etc/wireguard
wg genkey | tee server-private.key | wg pubkey > server-public.key
wg genkey | tee client-private.key | wg pubkey > client-public.key
chmod 600 ./*-private.key
Для перехода к настройке WireGuard откроем файл конфигурации через
nano
:nano /etc/wireguard/wg0-server.conf
Добавим в файл следующие параметры конфигурации, предварительно заменив значения следующим образом:
<
SERVER_PRIVATE_KEY
>
— ключ из файлаserver-private.key
<
CLIENT_PUBLIC_KEY
>
— ключ из файлаclient-public.key
[Interface]
Address = 10.0.0.1/24
PrivateKey = <SERVER_PRIVATE_KEY>
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 = 39548
[Peer]
PublicKey = <CLIENT_PUBLIC_KEY>
AllowedIPs = 10.0.0.2/32
Данный пример конфигурации дан при использовании
iptables
. Если на сервере используется firewalld
, то значения параметров PostUp
и PostDown
для данного примера будут следующими:PostUp = firewall-cmd --add-port $SERVER_PORT/udp && firewall-cmd --add-rich-rule='rule family=ipv4 source address=$FIREWALLD_IPV4_ADDRESS/24 masquerade' && firewall-cmd --add-rich-rule='rule family=ipv6 source address=$FIREWALLD_IPV6_ADDRESS/24 masquerade'
PostDown = firewall-cmd --remove-port $SERVER_PORT/udp && firewall-cmd --remove-rich-rule='rule family=ipv4 source address=$FIREWALLD_IPV4_ADDRESS/24 masquerade' && firewall-cmd --remove-rich-rule='rule family=ipv6 source address=$FIREWALLD_IPV6_ADDRESS/24 masquerade'
Далее необходимо внести правки в конифгурацию
sysctl
:echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
В завершении необходимо включить автозагрузку созданного нами сервера
wg0
, а также запустить его:systemctl enable [email protected]
systemctl start [email protected]
Для подключения к WireGuard необходимо скачать ПО клиента по ссылкам:
Для максимального быстрого подключения проще всего настроить генерацию QR-кода подключения на стороне сервера. Это можно сделать следующим образом.
Создадим файл клиента на стороне сервера:
nano /etc/wireguard/client.conf
В данный файл добавим конфигурацию аналогично конфигурации сервера, заменив аналогичным образом параметры, отвечающие за ключи:
<
SERVER_PUBLIC_KEY
>
— ключ из файлаserver-public.key
<
CLIENT_PRIVATE_KEY
>
— ключ из файлаclient-private.key
<
SERVER_IP
>
— IP-адрес сервера
[Interface]
Address = 10.0.0.2/24
PrivateKey = <CLIENT_PRIVATE_KEY>
DNS = 8.8.8.8
[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
AllowedIPs = 0.0.0.0/0
Endpoint = <SERVER_IP>:39548
PersistentKeepalive = 20
Для генерации QR-кода выполните (код отобразится на экране):
qrencode -t ansiutf8 < /etc/wireguard/client.conf
Last modified 4mo ago