Я пытаюсь понять iptables и хочу провести простой тест в своей домашней сети. Я хочу получить доступ к некоторому веб-сайту, работающему на RPI, при доступе к нему через мой рабочий стол Ubuntu.
ПРИМЕЧАНИЕ. Я разрешаю ВСЕ в моих правилах FORWARD на настольном ПК с Ubuntu (только для этого теста).Я знаю, что это ужасно для безопасности, но пока мне все равно, мне просто нужно понять, что мне нужно сделать как минимум, чтобы получить пакеты через ПК с Ubuntu в качестве посредника.
Я попытался изобразить маршрутизацию на следующей картинке (по крайней мере, как я думаю, что она будет/должна работать)
Как уже говорилось, я пока полностью проигнорировал цепочку FORWARD, приняв все. Единственное, о чем мне нужно позаботиться, это DNAT и SNAT.
Итак, по тексту:
Это достигается с помощью двух простых команд iptables.
# Пункт назначения DNAT 192.168.1.10:8080
sudo iptables -t nat -I PREROUTING 1 -p tcp -d 192.168.1.112 --dport 1234 -j DNAT --to 192.168.1.10:8080
# Источник SNAT на 192.168.1.112
sudo iptables -t nat -I POSTOUTING 1 -p tcp -d 192.168.1.123 -j SNAT --to 192.168.1.112
Вопрос 1: может ли кто-нибудь подтвердить, что вышесказанное верно? Если нет, объясните, что я делаю не так.
Вопрос 2: правильно ли я понимаю, что мне не нужно добавлять правила FORWARD (потому что я уже принимаю все по умолчанию)?
Следующая часть мне еще менее понятна. Теперь ответит сервер на [email protected]. Так как я SNAT-ed пакет, ответ будет отправлен на 192.168.1.112. Я ДУМАЮ также о порте 8080, так как это порт, на который мы отправляли данные.
Если это так, и ответ действительно получен на [email protected]:8080, я понятия не имею, как ядро (на [email protected]) потом волшебным образом сообразит, что этот ответ не ему, а на самом деле должны быть переданы исходному запрашивающему клиенту: [email protected].
Вопрос 3. Нужно ли добавлять правила, чтобы путь «ответа» прошел? Или это действительно волшебным образом сделано ядром?
Конечным результатом в любом случае является тайм-аут соединения.
Я был бы очень признателен за некоторые рекомендации здесь. Некоторые более сложные объяснения и, надеюсь, действительно понимают, как это работает в конце.