| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование *NIX систем > iptables forward |
| Автор: Goganchic 18.4.2007, 09:55 | ||
| Вопрос такой: машина является NAT-ом, таким образом на нее сливаются все пакеты которые предназначены для другой сети. Как сделать так, чтобы пакеты, предназначенные не этой машине форвардились дальше? Надо сделать чтобы это было на все порты, причем если пакет попадает под определенное правило (тоже порт), то он остается на данной машине (нужно для каких-либо проверок, например начальство хочет видеть все разговоры пользователей по ICQ и т.п., естественно пользователи об этом осведомлены и дают свое согласие). Подоволя итог, надо чтобы в общем случае пакеты посылались дальше в сеть, а в частных случаях оставлялись на данной машине. Для частного случая команда для iptables выглядит так:
где 123 - номер порта, а 1.1.1.1 - IP текущей машины (NAT'а) Как сделать правило по-умолчанию для форвардинга всего дальше в сеть? |
| Автор: bilbobagginz 18.4.2007, 10:35 |
| если я вас правильно понял вы хотите всего лишь сделать это: echo "1" >> /proc/sys/net/ipv4/ip_forward когда ваш машина поднимается. Часто в дистрибутивах есть для этого уже скриптик, а включают его либо установив какую-то переменную в /etc/sysconfig/ ( и грепнув на forward: grep -i forward ... ) либо если система основана на Дебиан - /etc/default/ и грепнув в том же духе. если что-то непонятно... дайте больше данных о вашей системе, и возьмите это за правило. |
| Автор: Goganchic 18.4.2007, 11:01 |
Спасибо, помогло. И еще такой вопрос: не будут ли пакеты, которые мы забираем себе в user space с помощью iptables форвардиться дальше в сеть? Машина - Debian 4.0 Еще нужны данные о машине? |
| Автор: bilbobagginz 18.4.2007, 15:18 | ||||||
для того, чтобы это:
не делать самому каждый ребут, нужно редактировать файл /etc/network/options и добавить в него строку:
тогда система сама будет это делать автоматически ( при запуске системного скрипта /etc/init.d/networking )
не понимаю вопрос... можно пример ? |
| Автор: Goganchic 18.4.2007, 21:36 |
| предположим что машина 1 имеет ip 1.2.3.4. У машины 2 1.2.3.5 машина 1 установлена в качестве default gateway. Машина 2 устанавливает tcp сессию с машиной 3 с ip адресом 1.2.4.1 и посылает все пакеты через машину 1. На машине 1 мы вынимаем сессию в user space с помощью соответствующего правила в iptables. С другой стороны на машине 2 установлен ip forwarding. Вопрос в том получит ли машина 2 только копии пакетов от машины 1 к машине 3 или же сессия будет только на машине 2 и дальше в сеть не пойдет? |
| Автор: bilbobagginz 19.4.2007, 00:30 |
| если вопрос: можно ли отражать все сообщения проходящие между 2 и 3 в обоих направлениях и обрабатывать их, без эффекта на коммуникацию между 2 и 3, то ответ - ДА. если вопрос обратный - буду ли они отражаться автоматически, - то ответ зависит от оборудования сети: если связь между 1,2,3 - на концентраторе (hub) - то все узлы локальной сети видят ВСЕ СООБЩЕНИЯ. если на коммутаторе (switch), то обычно - НЕТ, если не включен особый режим. если связь - беспроводная, то сообщения слышат/видят не только узлы данной локальной сети, но и все узлы способные принимать передачу на канале данной сети. не понимаю к чему были слова "юзер спейс", "вынимаем сессию", "копии пакетов" и т.д. |
| Автор: bilbobagginz 19.4.2007, 09:59 | ||
Подписываюсь Под Каждым Словом. |
| Автор: Goganchic 19.4.2007, 14:04 |
| в общем, вопрос решен |