WireGuard
Я постараюсь максимально кратко описать, как настроить wireguard для работы.
Немного общей информации, чтобы было понимание, как это работает и как настраивается. Если в общих словах это очень похоже на ssh соединение, так как используются пары закрытых и открытых ключей для инициализации соединения. Так что в общих словах. Мы установим клиент-сервер приложения, сгенерируем пары ключей для сервера и для клиентов, напишем простые конфигурации и всё. WireGuard и правда мега простой в настройке VPN.
Сервер
Устанавливаем wireguard для вашей платформы - https://www.wireguard.com/install/
Создаем ключи для сервера и для клиента(ов)
wg genkey | tee wg-server-private.key | wg pubkey > wg-server-public.key
wg genkey | tee wg-client-private.key | wg pubkey > wg-client-public.key
...
wg genkey | tee wg-clientN-private.key | wg pubkey > wg-clientN-public.keyСоздаем файл конфигурации сервера
/etc/wireguard/wg0.conf
[Interface]
# IP адресс внутренней сети VPN можете указать свой в доступных диапазонах, не забудьте поменять в AllowedIPs тоже!
# 10.0.0.0 – 10.255.255.255
# 172.16.0.0 – 172.31.255.255
# 192.168.0.0 – 192.168.255.255
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <Копируем сюда содержимое wg-server-private.key>
# Добавляем NAT роутинг между нашей VPN сетью и сетью с интернетом
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
# Anton-iOS // Тут можно подписать чей ключ, если нужно будет удалить
PublicKey = <Копируем сюда содержимое wg-client-public.key>
# Адрес который будет у подключеного клиента
AllowedIPs = 10.0.0.2/32
[Peer]
# Заготовка для новых клиентов
PublicKey = <Копируем сюда содержимое wg-new-client(N)-public.key>
# Адрес который будет у подключеного клиента, должен отличаться от предыдущих
AllowedIPs = 10.0.0.3/32
Заменить eth0 на другой если отличается, ifconfig в помощь, у нужного интерфейса совпадает inet с IP сервера
Поднимаем сетьsudo wg-quick up wg0 (eсли нужно выключить то sudo wg-quick down wg0)
Открываем FireWall (если он у вас есть)sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT
Прописываем автозапускsudo systemctl enable wg-quick@wg0.service
Возможность проводить через себя трафик и работать роутером, чтобы заработало прямо сейчас sudo sysctl -w net.ipv4.ip_forward=1
И чтобы добавлялось само каждый раз, открываем файл sudo nano /etc/sysctl.conf и расскоментируем строчку:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1Сохраняем файл
Клиент
- Создаем аналогичную конфигурацию на клиенте
/etc/wireguard/wg0.conf
[Interface]
# На клиенте сервер и клиент меняются местами так сказать
# Тот же самый адрес, который для для данного клиента в конфигурации сервера, но другая маска
Address = 10.0.0.2/24
PrivateKey = <Копируем сюда содержимое wg-client-private.key>
DNS = 8.8.8.8
# MTU = 1500 # Если нужно спрятать факт туннеля
[Peer]
# А тут описываем сервер
PublicKey = <Копируем сюда содержимое wg-server-public.key>
AllowedIPs = 10.0.0.0/24
Endpoint = АДРЕС_СЕРВЕРА:51820
Для ПостРОителей сетей. Если нужно указать, что за VPN не одна сеть, а несколько:AllowedIPs = 10.0.0.0/24, 192.168.0.0/24, 192.168.10.0/24
Если нужно весь трафик пересылать в туннеле тоAllowedIPs = 0.0.0.0/0
Пример для мобильного устройства
# Anton-iOS
[Interface]
Address = 10.0.0.3/24
PrivateKey = <Копируем сюда содержимое wg-mobile-private.key>
DNS = 8.8.8.8,9.9.9.9 # Можно указать ваши любимые DNS
# MTU = 1500 # Если нужно спрятать факт туннеля
[Peer]
PublicKey = <Копируем сюда содержимое wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = АДРЕС_СЕРВЕРА:51820
2. Поднимаем соединениеsudo wg-quick up wg0
As an event approaches, it is worth considering how details related to cosplay costumes will affect the complete look. As fans study the source material, a comparison of details related to long cosplay wigs can clarify differences in colour and construction. To review details related to costume sizing before the event, cosplay props for outdoor photography can help narrow the options for a specific purpose. For an outfit that feels convincing, it is useful to check details related to photoshoot preparation against the wearer's own needs.
3*. Как создать QR codesudo apt install qrencodeqrencode -t ansiutf8 < mobile.conf выведет QR-код в консоль
илиqrencode -o mobile.png < mobile.conf чтобы создать картинку для пересылки.
Вот и всё, кайф wireguard ещё и в приложении на телефоне, которое может смотреть к какой сети вы подключены и автоматически включать VPN если вы не дома. Это то чем обычно я пользуюсь. А так же ест намного меньше батарейки, чем тот же openVPN, который был у меня до.
PS. Конечно же, уже появились скрипты, когда его просто можно скопировать и управлять всем из скрипта, как это у меня было с OpenVPN
На ваш выбор 2 скрипта
1. Популярный https://github.com/angristan/wireguard-install
2. От создателя скрипта для OpenVPN https://github.com/Nyr/wireguard-install