Wireguard на Kali
@webware
Мы в последнее время много слышали о Wireguard и с его недавнего добавления в репозитории Kali, думаем, что мы бы могли дать ему шанс, чтобы увидеть, с чём связана вся эта суета. Мы обнаружили, что это действительно красивое и быстрое в настройке VPN-решение и стоит быть проверенным.
Приступая к работе
С добавлением в репозитории Wireguard, его установка легка и приятна:
apt install wireguard resolvconf
Далее приходит время для конфигурации.
На сервере мы должны создать пару открытого и закрытого ключей и настроить файл начальной конфигурации.
wg genkey | tee privatekey | wg pubkey > publickey umask u=rwx,go= && cat > /etc/wireguard/wg0.conf << EOF [Interface] Address = 10.222.222.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = -SERVER PRIVATE KEY- [Peer] PublicKey = -CLIENT PUBLIC KEY- AllowedIPs = 10.222.222.2/32 EOF
И мы делаем тот же процесс на клиенте, чтобы создать пару ключей и конфигурацию.
wg genkey | tee privatekey | wg pubkey > publickey umask u=rwx,go= && cat /etc/wireguard/wg0.conf << EOF [Interface] Address = 10.222.222.2/32 PrivateKey = -CLIENT PRIVATE KEY- DNS = 8.8.8.8 [Peer] PublicKey = -SERVER PUBLIC KEY- Endpoint = public.ip.of.server:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 21 EOF
Это довольно простые файлы конфигурации, но стоит отметить несколько вещей. Во-первых, вы очевидно должны поместить выходные данные из пары ключей в конфиги при необходимости. Кроме того, линии DNS на стороне клиента должна помочь предотвратить утечки DNS с использованием местного DNS-сервера по умолчанию. Вы можете/не можете изменять это в зависимости от ваших потребностей.
Однако, самым важным является строка "AllowedIPs". Это будет контролировать, что делают IP или не идти через VPN. В этом случае мы настроим клиент для всей маршрутизации через VPN-сервер. Мы будет играть с этой настройкой ещё немного, но давайте посмотрим на получение этой рабочей базовой конфигурации.
Чтобы запустить и остановить туннель, достаточно:
# The VPN can be enabled using wg-quick up wg0 # To disable the VPN: wg-quick down wg0 # Information about the connection can be retrieved with following command: wg show
И, конечно же, нам нужно включить маскировку и переадресацию IP на сервере.
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward
Так, теперь у нас есть традиционные VPN конфигурации. Если вы ищете, как просто получить стандартной установки VPN, в этот момент вы это сделали. Есть несколько преимуществ этого, по сравнению с использованием OpenVPN. Например, это решение, как представляется, гораздо быстрее, config намного проще, и это немного более приватный способ в том, что сервер не будет отвечать на пакеты, которые не имеют надлежащей пары ключей, связанных с ними.
Wireguard of DOOM!
Во-первых, на нашем клиенте давайте быстро настроим маскировку и переадресацию IP:
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward
Прекрасно, после этого мы сделаем пару незначительных изменений в нашем файле конфигов. Во-первых, на сервере мы изменим строку "AllowedIPs". Это будет выглядеть следующим образом:
[Interface] Address = 10.222.222.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = -SERVER PRIVATE KEY- [Peer] PublicKey = -CLIENT PUBLIC KEY- AllowedIPs = 10.200.200.2/32, 192.168.2.0/24
После изменения одной строки на сервере мы затем должны настроить строку клиентов "AllowedIPs", чтобы удалить все параметры для маршрутизации на VPN-сервер.
[Interface] Address = 10.200.200.2/32 PrivateKey = -CLIENT PRIVATE KEY- DNS = 8.8.8.8 [Peer] PublicKey = -SERVER PUBLIC KEY- Endpoint = public.ip.of.server:51820 AllowedIPs = 10.200.200.0/24 PersistentKeepalive = 21
И вот оно!
root@kali:~# ping 192.168.2.22 PING 192.168.2.22 (192.168.2.22) 56(84) bytes of data. 64 bytes from 192.168.2.22: icmp_seq=19 ttl=63 time=50.2 ms 64 bytes from 192.168.2.22: icmp_seq=20 ttl=63 time=53.4 ms 64 bytes from 192.168.2.22: icmp_seq=21 ttl=63 time=48.1 ms
Теперь VPN-сервер может получить доступ к подсети на другой стороне Wireguard VPN.
Подводя итоги
Время покажет, заменит ли Wireguard собой OpenVPN при выборе VPN или это самый последний хайп и просто волнение с использованием новейшей игрушки. В любом случае хорошо, что имеется возможность проверить, как хорошо это подходит. Как мы видели здесь, Wireguard определенно легко установить и он относительно универсален для пользователя.