//kalinux.info
Разное 763 просмотров

Защитник на Kali

Защитник на Kali

В последнее время мы много слышали о Wireguard, и недавно он был добавлен в репозитории Kali, мы подумали, что мы быстро попытаемся понять, о чем идет речь. В целом, мы обнаружили, что это действительно хорошая и быстрая настройка VPN, и, возможно, стоит проверить.

Начало

Установка Wireguard, проста и удобна:

apt install wireguard resolvconf

Далее приходит время для настройки. Именно здесь Wireguard действительно сиял для нас, так как ничего не случилось, чтобы беспокоиться.

На сервере нам нужно создать пару открытого и закрытого ключей и настроить начальный файл конфигурации.

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
EO

Это довольно простые конфигурации, но стоит отметить несколько вещей. Во-первых, вы, очевидно, должны поместить выходные данные из пар ключей в соответствующие конфигурации. Кроме того, строка 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-маскарад и переадресацию IP-адресов на сервере.

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward

Таким образом, у нас есть традиционная конфигурация VPN. Если вы хотите просто получить стандартную настройку VPN, на этом вы закончите. Есть несколько преимуществ для этого по сравнению с использованием OpenVPN, например, это решение кажется намного более быстрым, конфигурация намного проще, и прикосновение более скрытно, поскольку сервер не будет отвечать на пакеты, у которых нет соответствующей пары ключей, связанная с ними. Мы подумали, однако, что может быть интересно изменить конфигурацию, чтобы отразить нашу конфигурацию ISO Doom, имея клиента, который будет автоматически подключаться к серверу при загрузке, позволяя серверу маршрутизировать и получать доступ к сети клиентов.

Защитник 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-сервер может получить доступ к подсетям с другой стороны VPN-шлюза Wireguard.

Завершение

Время покажет, заменит ли Wireguard OpenVPN как VPN по выбору. В любом случае, приятно иметь возможность проверить его и использовать, если он подходит. Как мы видели здесь, он определенно прост в настройке и относительно универсален в случаях пользователя.