LINUX.ORG.RU
ФорумAdmin

iptables DNAT c SNAT


0

1

Есть 3 компа.
1. 192.168.0.1/24 (без шлюза)
2. 192.168.1.1/24 (без шлюза)
3. 192.168.0.2/24 eth0
192.168.1.2/24 eth1

Как пробросить порт 80 с 1-го на 2-ой через 3 НЕ ПРОПИСЫВАЯ на них адрес шлюза?

т.е. 1 обращается к 3 по 80 порту, а попадает на 2, а 2 в это время думает, что к нему обращается 3. Iptables такое умеет (например DNAT с подставлением ip, или DNAT в связке с SNAT)?

★★

Последнее исправление: lioncub (всего исправлений: 1)

может проще через redirect в [x]inetd?

madcore ★★★★★
()

Хоть DNAT в связке с SNAT, хоть redirect в [x]inetd, 2 в это время думает, что к нему обращается 3 со всеми вытекающими от сюда последствиями. Логи веб-сервера в этом случае лишний груз, везде будет 3, кто ломает не увидишь.

lvi ★★★★
()
Ответ на: комментарий от madcore

Будут, но не такие как у веб-сервера, такие можно и iptables сотворить. TCP-сервис проще NAT'ов, но правильно настроенная DMZ все же лучше (не без помощи все той же iptables).

lvi ★★★★
()

Да, умеет. Пишите DNAT правило, которое пакеты от 192.168.0.1 идущие на 192.168.0.2 перенаправит на 192.168.1.1, а потом SNAT правило, которое заменит у этих пакетов src-адрес.

Понятно, что эти пакеты надо разрешить в FORWARD и включить маршрутизацию.

mky ★★★★★
()
Ответ на: комментарий от spunky

спасибо за пример. все работает. а то у меня с snat не получалось... не хотел адрес подставлять...

lioncub ★★
() автор топика
Ответ на: комментарий от lioncub

Да не, snat работает, как фильтровать. Первым dnat крутит, когда до snat'а дело доходит в пакетах уже нет внешнего IP. Если надо строго по внешнему IP, то надо маркировать. А чтоб к внешнему IP обращаться ото всюду, и этого мало.

Поэтому xinetd и проще. Отвечает откуда хочешь. Вот пример файла в /etx/xinetd.d. Но нормальный сервер все же лучше в отдельную сетку.

service wwwredir
{
disable = no
type = UNLISTED
port = 80
socket_type = stream
protocol = tcp
wait = no
user = root
redirect = 192.168.0.222 80
#bind = внешний_IP
# no_access = 62.105.0.0/24
}

lvi ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.