The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Путь пакета после цепочки INPUT"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / Linux)
Изначальное сообщение [ Отслеживать ]

"Путь пакета после цепочки INPUT"  +/
Сообщение от billybons2006 email(ok) on 19-Ноя-14, 14:01 
Я тут чуть-чуть заблудился в iptables.

Я сделал перенаправление портов (чтобы сделать доступным из интернет сервер из локалки).

eth0 - внешний интерфейс шлюза.

Правило простое:

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.2.3.4 --dport 443 -j DNAT --to 192.168.1.10:443
iptables -A FORWARD -i eth0 -o eth1 -d 192.168.1.10 -p tcp --dport 443 -j ACCEPT

Все работает норм.

На сервере 192.168.1.10 регистрируются внешние IP адреса посетителей.

Т.е. пакет проходит путь (1): INTERNET -> PREROUTING -> FORWARD -> POSTROUTING -> 192.168.1.10

Так как машина у меня тестовая, я решил проверить, что будет, если добавить правило:
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT

Насколько я везде читал, если есть правило INPUT, то пакет адресуется локальной машине, в данном случае самому шлюзу. Т.к. на самом шлюзе нет веб-сервера, то я ожидал, что на этом путь пакета прервется и я не смогу достучаться до сервера в LAN. НО!

на сервере в LAN (192.168.1.10) регистрируются все от имени внутреннего IP шлюза. Т.е. я по прежнему могу открыть веб-страницу, только уже "затерев" внешний IP посетителя. Т.е. в любом случае FORWARD идет.

Вопрос: какой путь проходит пакет в этом случае? Как после прохождения INPUT пакет попадает в FORWARD?
Так считать верно (2): INTERNET -> PREROUTING -> INPUT -> FORWARD -> POSTROUTING -> 192.168.1.10 или нет? Если нет, просто напишите эту цепочку, плиз, так, как должно.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Путь пакета после цепочки INPUT"  +/
Сообщение от pavel_simple (ok) on 19-Ноя-14, 14:20 

> iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.2.3.4 --dport
> 443 -j DNAT --to 192.168.1.10:443

этим мы указываем netfilter'у что пакет должен лететь в другую машину, поэтому в INPUT пакет не попадёт.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Путь пакета после цепочки INPUT"  +/
Сообщение от billybons2006 email(ok) on 19-Ноя-14, 14:26 
>> iptables -t nat -A PREROUTING -i eth0 -p tcp -d 1.2.3.4 --dport
>> 443 -j DNAT --to 192.168.1.10:443
> этим мы указываем netfilter'у что пакет должен лететь в другую машину, поэтому
> в INPUT пакет не попадёт.

дык да, я согласен! Я не понимаю вот чего: если закомментировать правило с INPUT, на внутреннем сервере регистрируются внешние IP посетителей. Все ок. При включенном правиле INPUT они по прежнему регистрируются, но якобы исходящие от внутреннего ip шлюза.

Вот есть картинка: https://www.frozentux.net/iptables-tutorial/images/tables_tr...

Там после INPUT есть еще пара раз routing decision (левая часть рисунка). Или это я уже мудрить пошел?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Путь пакета после цепочки INPUT"  +/
Сообщение от pavel_simple (ok) on 19-Ноя-14, 14:29 
>[оверквотинг удален]
>>> 443 -j DNAT --to 192.168.1.10:443
>> этим мы указываем netfilter'у что пакет должен лететь в другую машину, поэтому
>> в INPUT пакет не попадёт.
> дык да, я согласен! Я не понимаю вот чего: если закомментировать правило
> с INPUT, на внутреннем сервере регистрируются внешние IP посетителей. Все ок.
> При включенном правиле INPUT они по прежнему регистрируются, но якобы исходящие
> от внутреннего ip шлюза.
> Вот есть картинка: https://www.frozentux.net/iptables-tutorial/images/tables_tr...
> Там после INPUT есть еще пара раз routing decision (левая часть рисунка).
> Или это я уже мудрить пошел?

iptables-save

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Путь пакета после цепочки INPUT"  +/
Сообщение от billybons2006 email(ok) on 19-Ноя-14, 15:08 
> iptables-save

Думаю, что все же я не мог изобрести колесо и обмануть iptables. Не смог воспроизвести ошибку, думаю, что где-то мог не заметить мелочи, которую потом автоматом исправил. Сейчас, как и полагается, через INPUT никуда не лезет.

Спасибо за участие )) А то мне прям не по себе было.

Добавил: Я думаю, что я просто где-то упустил SNAT, который потом убрал за ненадобностью (делал, чтобы при обращении из локалки работал forward). Он кушать не просил и вот, пожалуйста. Вот и источник внутреннего ip шлюза. Но все равно, я точно помню, что проверял снаружи...

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру