URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83901
[ Назад ]

Исходное сообщение
"И снова форвардинг в iptables"

Отправлено handler2006 , 31-Янв-09 23:09 
Здравствуйте!
Все очень просто:
Имеем роутер под федорой и набором правил iptables - все работает
Решил испытать новые правила, для чего присвоил тестовой машине из локалки адрес "A.D.D.R" и в консоли набираю:
# iptables -A FORWARD -s A.D.D.R -o $EXT_IF - j ACCEPT              //отправляем пакеты наружу
# iptables -A FORWARD -d A.D.D.R -i $EXT_IF -m state --state ESTABLISHED,RELATED -j ACCEPT     //Принимаем пакеты снаружи
# iptables -t nat -A POSTROUTING -s A.D.D.R -o $EXT_IF -j SNAT --to $EXT_IP
# ping $EXT_IP    //ходит нормально, даже ходит на противоположный адрес за роутером а интернета нет

Содержание

Сообщения в этом обсуждении
"И снова форвардинг в iptables"
Отправлено PavelR , 01-Фев-09 15:19 
>[оверквотинг удален]
>"A.D.D.R" и в консоли набираю:
># iptables -A FORWARD -s A.D.D.R -o $EXT_IF - j ACCEPT  
>          
> //отправляем пакеты наружу
># iptables -A FORWARD -d A.D.D.R -i $EXT_IF -m state --state ESTABLISHED,RELATED
>-j ACCEPT     //Принимаем пакеты снаружи
># iptables -t nat -A POSTROUTING -s A.D.D.R -o $EXT_IF -j SNAT
>--to $EXT_IP
># ping $EXT_IP    //ходит нормально, даже ходит на противоположный
>адрес за роутером а интернета нет

Благодарю за полное описание картины проблемы, топологии сети, всех правил маршрутизации и всех правил iptables.


Только пожалуйста поясните, какого @%&#^ вы считаете, что позиция правила в списке правил iptables _никак_ не важна ?

man iptables. Почитайте как этот пакетный фильтр работает.


"И снова форвардинг в iptables"
Отправлено handler2006 , 01-Фев-09 16:40 
боюсь что правила маршрутизации будут неуместны тут, т. к. они принимают пакеты из внутренней сети, маркируют их, и затем направляют в три разных канала.
Думаю, Вы догадываетесь, что они нечитабельны тут.
Вы также справедливо заметили, что порядок правил имеет ключевую роль в фильтрации пакетов.
Прошу Вас подсказать мне как указать iptables вставить мои правила перед всеми остальными, а то, получается, команда -A FORWARD добавляет мои правила в конец цепочки после команды -j DROP

"И снова форвардинг в iptables"
Отправлено PavelR , 01-Фев-09 19:02 
>боюсь что правила маршрутизации будут неуместны тут, т. к. они принимают пакеты
>из внутренней сети, маркируют их, и затем направляют в три разных
>канала.
>Думаю, Вы догадываетесь, что они нечитабельны тут.
>Вы также справедливо заметили, что порядок правил имеет ключевую роль в фильтрации
>пакетов.
>Прошу Вас подсказать мне как указать iptables вставить мои правила перед всеми
>остальными, а то, получается, команда -A FORWARD добавляет мои правила в
>конец цепочки после команды -j DROP

iptables -I FORWARD <position_number> ....
iptables -nvL FORWARD --line


"И снова форвардинг в iptables"
Отправлено handler2006 , 02-Фев-09 09:43 
Вы снова правы, только все это неуместно, т к приходтся писать правила заново, потому, что втавлять свои куски в работающую систему, к тому же еще и написанную не тобой - это очень плохо.
Спасибо что уделили время.
Тут а нашел очень интересную конструкцию, как создать для каждого пользователя отдельный канал:
iptables -t mangle -A POSTROUTING -o eth0 -j IPMARK --adr=dst --and-mask 0xffff --or-mask 0x10000
tc add filter dev eth0 parent 1:0 protocol ip fw
только у меня она не работает:
unknown arg --addr

"И снова форвардинг в iptables"
Отправлено LS , 25-Фев-09 09:05 
>[оверквотинг удален]
>заново, потому, что втавлять свои куски в работающую систему, к тому
>же еще и написанную не тобой - это очень плохо.
> Спасибо что уделили время.
>Тут а нашел очень интересную конструкцию, как создать для каждого пользователя отдельный
>канал:
>iptables -t mangle -A POSTROUTING -o eth0 -j IPMARK --adr=dst --and-mask 0xffff
>--or-mask 0x10000
>tc add filter dev eth0 parent 1:0 protocol ip fw
>только у меня она не работает:
>unknown arg --addr

свою цепочку, jump на нее из любого нах места, и вставляй правила в нее и чисть и перезаполняй ее как тебе угодно. и никак это не отразится на том, что ты трогать не хочешь.


"И снова форвардинг в iptables"
Отправлено ai , 06-Фев-09 10:14 
>[оверквотинг удален]
>"A.D.D.R" и в консоли набираю:
># iptables -A FORWARD -s A.D.D.R -o $EXT_IF - j ACCEPT  
>          
> //отправляем пакеты наружу
># iptables -A FORWARD -d A.D.D.R -i $EXT_IF -m state --state ESTABLISHED,RELATED
>-j ACCEPT     //Принимаем пакеты снаружи
># iptables -t nat -A POSTROUTING -s A.D.D.R -o $EXT_IF -j SNAT
>--to $EXT_IP
># ping $EXT_IP    //ходит нормально, даже ходит на противоположный
>адрес за роутером а интернета нет

мой вам совет:
чтоб не создавать подобные темы и не иметь больше проблем с пакетным фильтром - юзайте -j LOG сразу перед -j DROP

вот вам маленький пример:

logops="--log-level=3 -m limit --limit 1/second --limit-burst 10"

$ipt -A FORWARD -i $INET_IF -j LOG --log-prefix "IPT: IN_LOCAL_NETWORK: " $logops
    $ipt -A FORWARD -i $INET_IF -j DROP
    $ipt -A FORWARD -i $LOCAL_IF -j LOG --log-prefix "IPT: FORWARD -i $LOCAL_IF: " $logops
    $ipt -A FORWARD -i $LOCAL_IF -j DROP
    $ipt -A FORWARD -j LOG --log-prefix "IPT: FORWARD: " $logops
    $ipt -A FORWARD -j DROP

дальше просто юзаем screen для удобства и в одном из окон - tail -f /var/log/messages

там все подробно пишетсо )))
удачи


"И снова форвардинг в iptables"
Отправлено handler2006 , 06-Фев-09 16:14 
You right - the problem was just in that: I try write own rules over existing and this was bad idea.
I clear all rules and write own from beginning
Yes, LOG - very usefull target

"И снова форвардинг в iptables"
Отправлено ai , 06-Фев-09 17:21 
>You right - the problem was just in that: I try write
>own rules over existing and this was bad idea.
>I clear all rules and write own from beginning
>Yes, LOG - very usefull target

Welcome...