Исходный IP после переадресации через iptables

Исходный IP после переадресации через iptables
Исходный IP после переадресации через iptables - debrupas @ Unsplash

Исходные адреса изменяются по правилу MASQUERADE

В этом весь смысл MASQUERADE, но его не следовало применять так широко.

Вам нужно будет ограничить правило, чтобы оно применялось только к пакетам, идущим с домашнего сервера в Интернет, но не наоборот. (Вы можете ограничить это интерфейсом, используя -i wg0 и/или -o eth0 и/или исходным адресом -s 192.168.4.0/24.)

Теперь конфигурация WireGuard домашнего сервера также должна принимать пакеты с любым исходным IP-адресом от VPN-сервера, изменив его [Peer] AllowedIPs на 0.0.0.0/0.

Когда wg-quick используется для настройки WireGuard, он автоматически генерирует маршруты на основе разрешенных IP-адресов, поэтому предыдущее изменение также приведет к тому, что весь сетевой трафик вашего домашнего сервера будет проходить через туннель. Чтобы избежать этого, вы также можете установить [Interface] Table на off на клиенте.

Тем не менее, домашнему серверу по-прежнему необходимо отправлять некоторый трафик через VPN — если wg-quick было сказано не добавлять никаких маршрутов, то домашний сервер будет получать пакеты через VPN, но по-прежнему будет отвечать на них напрямую через интернет-соединение. Это можно решить с помощью политики маршрутизации, сначала установив для таблицы [Interface] туннеля WireGuard фактический номер таблицы (1 подходит), а затем выполнив команду

PostUp = ip -4 rule add pref 500 from 192.168.4.2 lookup 1
PostDown = ip -4 rule del pref 500

Так что только ответные пакеты, приходящие с 192.168.4.2, будут использовать маршруты, установленные wg-quick в таблице 1, а другие несвязанные пакеты — нет.

Рекомендую посмотреть эти видео для лучшего погружения в вопрос:

Прикрепленное видео 1 - IPTables: NAT и Port forwarding

Прикрепленное видео 2 - Как установить и настроить Firewall (межсетевой экран) Iptables


NevaDev, 25 января 2023 г., 10:21