The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"  +/
Сообщение от alphil email(ok) on 10-Сен-09, 00:47 
Прошу помощи по iptables.

Есть такое правило (приблизительно):
iptables -t nat -A POSTROUTING -o ppp0 -d ! $NET1 -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0 -d ! $NET1 -p udp --dport 53 -j MASQUERADE

Клиенты получают доступ в Инет, если --destination не есть одна конкретная сеть. В эту сеть они попадают посредством VPN и не должны натиться. Так работало до сегодняшнего дня. Возникли осложнения, - необходимо добавить $NET2 и $NET3 и правило должно стать следующим:
"Натить все что идет в направлении ppp0, но только если это не в $NET1 ИЛИ не в $NET2 ИЛИ не в $NET3"

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

Заранее благодорю за помощь.

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"  +/
Сообщение от aaa (??) on 10-Сен-09, 08:31 
>[оверквотинг удален]
>Так работало до сегодняшнего дня. Возникли осложнения, - необходимо добавить $NET2
>и $NET3 и правило должно стать следующим:
>"Натить все что идет в направлении ppp0, но только если это не
>в $NET1 ИЛИ не в $NET2 ИЛИ не в $NET3"
>
>Ставить цепочки друг за другом нельзя, так как если мы прошли первое
>правило, которое не маскарадит пакеты для этой сети, то попадаемся на
>другом, которое говорит, что да - надо маскарадить.
>
>Заранее благодорю за помощь.

iptables -t nat -A POSTROUTING -o ppp0 -d $NET1 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -d $NET2 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -d $NET3 -p tcp --dport 80 -j ACCEPT

iptables -t nat -A POSTROUTING -o ppp0  -p tcp --dport 80 -j MASQUERADE
iptables -t nat -A POSTROUTING -o ppp0  -p udp --dport 53 -j MASQUERADE

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"  +/
Сообщение от Andrey Mitrofanov on 10-Сен-09, 09:40 
>"Натить все что идет в направлении ppp0, но только если это не
>в $NET1 ИЛИ не в $NET2 ИЛИ не в $NET3"

-t NAT -N chain
-t NAT -A chain -d $NET1 -j RETURN
-t NAT -A chain -d $NET2 -j RETURN
-t NAT -A chain -d $NET3 -j RETURN
-t NAT -A chain -j MASQUERADE

-t NAT -A POSTROUTING  -o ppp0 -p tcp --dport 80 -j chain

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"  +/
Сообщение от boykov email(ok) on 10-Сен-09, 10:06 
>Ставить цепочки друг за другом нельзя, так как если мы прошли первое
>правило, которое не маскарадит пакеты для этой сети, то попадаемся на
>другом, которое говорит, что да - надо маскарадить.
>
>Заранее благодорю за помощь.

что значит нельзя? не понимаем принцип acl или еще что? разбираемся в логике (алгоритме) того, что надо сделать; помним, что первый сработал -- остальные пох.

то бишь
1) если пришло на net1 и ppp0 -- пропускаем
2) если пришло на net2 и ppp0 -- пропускаем
3) если пришло на ppp0 -- натим
4) что-то делаем с остальным трафиком...

уже потом переводим это на язык iptables и запускаем

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. " Натить весь трафик кроме сети1 ИЛИ сети2 ИЛИ сети3"  +/
Сообщение от alphil email(ok) on 10-Сен-09, 12:25 
Решение от Andrey Mitrofanov мне показалось наиболее элегантным. Попробовал - работает - "то что доктор прописал".

Спасибо всем отклинувшимся - за просветление.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

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

Индекс форумов | Темы | Пред. тема | След. тема




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

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