Контекст
я успешно интегрировал Wireguard в моей локальной сети, чтобы я мог получить доступ к своему NAS (192.168.1.45) извне.
|Маршрутизатор| ===:5182=> |VPN-сервер| ====> |NAS|
192.168.1.254 192.168.1.21 (влан0) 192.168.1.45
10.10.10.1 (вес0)
Пересылка пакетов через мой VPN-сервер зависит от:
- IP-переадресация в
/etc/sysctl.conf
(см. мой сценарий)
- добавлены следующие правила (-А) когда интерфейс wireguard (WG0) встал.
PostUp = iptables -A FORWARD -i wg0 -j ПРИНЯТЬ; iptables -t nat -A POSTROUTING -o $main_nic -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ПРИНЯТЬ; ip6tables -t nat -A POSTROUTING -o $main_nic -j MASQUERADE
(это команда wireguard, выполняемая, когда я останавливаюсь WG0)
PostDown = iptables -D FORWARD -i wg0 -j ПРИНЯТЬ; iptables -t nat -D POSTROUTING -o $main_nic -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ПРИНЯТЬ; ip6tables -t nat -D POSTROUTING -o $main_nic -j MASQUERADE
Необходимость
Это работает как шарм, но как я могу ограничить вещи, чтобы клиент, входящий в мою локальную сеть через эту точку входа VPN, мог получить доступ только к 192.168.1.45 и ни к какому другому IP-адресу? Совместимо ли это с IP-переадресация?
В идеале, если бы этим можно было полностью управлять в PostUp PostDown директивы wireguard (независимо от предыдущих правил в системе), это было бы потрясающе. Пробовал кое-что, но, скажем прямо, я больше разработчик, чем сетевой администратор.