Тонкая настройка WireGuard: доступ к сети за клиентом

Сегодня настроим сеть VPN WireGuard так, что бы клиент-1 VPN сети видел локальную сеть находящуюся за клиентом-2.




Схема сети WireGuard и локальной сети за клиентом.




Настройка сервера WireGuard




Сначала нам необходимо остановить сервер wireguard следующей командой:




sudo systemctl stop wg-quick@wg0.service




или




sudo wg-quick down /etc/wireguard/wg0.conf




Далее открываем файл настройки нашего сервера:




sudo nano /etc/wireguard/wg0.conf




  • Все пути справедливы, только если вы настраивали ваш VPN вот по этой инструкции.




В данном файле необходимо прописать у клиента-2, за которым локальная сеть, в секции [Peer] следующие строки:




[Peer]
PublicKey = публичный_ключ_клиента
AllowedIPs = 10.1.1.8/32, 10.5.1.0/24




  • AllowedIPs – в данной строке 10.1.1.8/32 – это ip-адрес клиента-2 в сети VPN, а 10.5.1.0/24 – это сеть за данным клиентом.




Данной командой мы разрешаем прохождения трафика локальной сети в сеть wireguard




После проделанных изменений запускаем наш сервер:




sudo systemctl start wg-quick@wg0.service




Теперь если с клиента-1 сети VPN попробовать пингануть ip адрес клиента-2 сети VPN, за которым присутствует локальная сеть, то мы увидим, что пакеты успешно проходят:




ping 10.1.1.8
PING 10.1.1.8 (10.1.1.8) 56(84) bytes of data.
64 bytes from 10.1.1.8: icmp_seq=1 ttl=127 time=231 ms
64 bytes from 10.1.1.8: icmp_seq=2 ttl=127 time=216 ms




А вот если попробовать пингануть какой либо IP адрес за клиентом-2, то увидим следующей результат:




ping 10.5.1.10
PING 10.5.1.10 (10.5.1.10) 56(84) bytes of data.
From 10.221.65.85 icmp_seq=1 Packet filtered
From 10.221.65.85 icmp_seq=2 Packet filtered




Как видим наши пакеты попадают под фильтр.




Чтобы разрешить прохождение пакетов, необходимо в конфигурационном файле wireguard нашего клиента-1 прописать следующее (покажу весь конфиг):




[Interface]
PrivateKey = приватный_ключ
ListenPort = 5555
Address = 10.1.1.5/32
[Peer]
PublicKey = публичный_ключ_сервера
AllowedIPs = 10.1.1.0/24, 10.5.1.0/24
Endpoint = IP-адрес_сервера:5555




Перезапускаем нашу службу wireguard на клиенте-1 :




sudo systemctl restart wg-quick@wg0.service




или




wg-quick down /etc/wireguard/wg0.conf
wg-quick up /etc/wireguard/wg0.conf




Набираем команду ping:




ping 10.5.1.10
PING 10.5.1.10 (10.5.1.10) 56(84) bytes of data.
64 bytes from 10.5.1.10: icmp_seq=1 ttl=62 time=93.9 ms
64 bytes from 10.5.1.10: icmp_seq=2 ttl=62 time=53.9 ms




Из вывода видно, что пакеты успешно проходят до сети за клиентом-2.




Вот еще одна команда из который мы видим, что на запрос адреса 10.5.1.10 отвечает клиент 10.1.1.8:




traceroute 10.5.1.10
traceroute to 10.5.1.11 (10.5.1.11), 30 hops max, 60 byte packets
 1  10.1.1.1 (10.1.1.1)  52.645 ms  52.614 ms  64.091 ms
 2  10.1.1.8 (10.1.1.8)  72.799 ms  84.202 ms  84.172 ms
 3  10.5.1.10 (10.5.1.10)  84.075 ms  84.028 ms  83.937 ms




На первый запрос у нас отвечает сервер wireguard 10.1.1.1, далее уже запрос уходит на клиента-2 vpn 10.1.1.8, за которым находятся локальная сеть 10.5.1.0/24. И на последний запрос уже отвечает клиент-3 локальной сети 10.5.1.10



[endtxt]




RSS







2022-08-24T12:52:22
VPN