Здравствуйте!
Все очень просто:
Имеем роутер под федорой и набором правил 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 //ходит нормально, даже ходит на противоположный адрес за роутером а интернета нет
>[оверквотинг удален]
>"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 вставить мои правила перед всеми остальными, а то, получается, команда -A FORWARD добавляет мои правила в конец цепочки после команды -j DROP
>боюсь что правила маршрутизации будут неуместны тут, т. к. они принимают пакеты
>из внутренней сети, маркируют их, и затем направляют в три разных
>канала.
>Думаю, Вы догадываетесь, что они нечитабельны тут.
>Вы также справедливо заметили, что порядок правил имеет ключевую роль в фильтрации
>пакетов.
>Прошу Вас подсказать мне как указать iptables вставить мои правила перед всеми
>остальными, а то, получается, команда -A FORWARD добавляет мои правила в
>конец цепочки после команды -j DROPiptables -I FORWARD <position_number> ....
iptables -nvL FORWARD --line
Вы снова правы, только все это неуместно, т к приходтся писать правила заново, потому, что втавлять свои куски в работающую систему, к тому же еще и написанную не тобой - это очень плохо.
Спасибо что уделили время.
Тут а нашел очень интересную конструкцию, как создать для каждого пользователя отдельный канал:
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 -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 на нее из любого нах места, и вставляй правила в нее и чисть и перезаполняй ее как тебе угодно. и никак это не отразится на том, что ты трогать не хочешь.
>[оверквотинг удален]
>"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
там все подробно пишетсо )))
удачи
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
>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 targetWelcome...