Отправляет email-рассылки с помощью сервиса Sendsay

iptables:SNAT не работает

Hi, all!

Mandrake 10.0. Тачка - gate на инет с локалки. Настроен iptables, в нем
- SNAT вот такой строчкой: $IPTABLES -t nat -A POSTROUTING \
-o $INET_IFACE -j SNAT --to-source $INET_IP
Все работало. Потом припекло собрать kernel-2.6.11.6 (родной был
2.6.3-7mdk - по-моему малость устарел, да и начинать когда-нить надо).
Все заработало, кроме этого SNAT - iptables при запуске ругался. Сейчас
не могу посмотреть, что именно он говорил, потому как ругаться перестал,
но проблема осталась. Попробовал
............
# iptables -L POSTROUTING
iptables: Table does not exist (do you need to insmod?)
...........
То есть ВООБЩЕ такой цепочки нет?? На # iptables -L FORWARD все
нормально выдается. В ядре все включено (вроде).
И еще: в старом (2.6.3-7mdk) ядре есть опция Device Drivers -->
Networking Support --> Networking Options --> Network packet filtering
(replaces ipchains) --> IP: Netfilter Configuration ---> [*] NAT of
local connections (READ HELP) и она включена, а в новом ядре такой
менюшки нема :( (Help прочитал - NAT как NAT). Может в нем все дело??
Какие есть мысли, пожелания, предложения?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18608; Возраст листа: 657; Участников: 1352
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366256

Ответить   daks Thu, 12 May 2005 13:34:15 +0300 (#366256)

 

Ответы:

Hello daks,

Thursday, May 12, 2005, 2:34:15 PM, you wrote:

из iptables tutorial

... в ядро должны быть включены следующие опции:
CONFIG_PACKET - Эта опция необходима для приложений, работающих непосредственно
с сетевыми устройствами, например: tcpdump или snort.
Строго говоря, опция CONFIG_PACKET не требуетсядля работы iptables, но, поскольку
она используется довольно часто, я включил ее в список. Если вам эта опция не
нужна, то можете ее не включать.
CONFIG_NETFILTER - Эта опция необходима, если вы собираетесь использовать компьютер
в качестве сетевого экрана (firewall) или шлюза (gateway) в Интернет. Другими
словами, вам она определенно понадобится, иначе зачем тогда читать это руководство!
И конечно нужно добавить драйверы для ваших устройств, т.е. для карты Ethernet,
PPP и SLIP. Эти опции необходимы для обеспечения базовых возможностей iptables,
для получения дополнительных возможностей придется включить в ядро некоторые
дополнительные опции. Ниже приводится список опций для ядра 2.4.9 и их краткое
описание:
CONFIG_IP_NF_CONNTRACK - Трассировка соединений. Трассировка соединений, среди
всего прочего, используется при трансляции сетевых адресов и маскарадинге (NAT
и Masquerading). Если вы собираетесь строить сетевой экран (firewall) для локальной
сети, то вам определенно потребуется эта опция. К примеру, этот модуль необходим
для работы rc.firewall.txt.
CONFIG_IP_NF_FTP - Трассировка FTP соединений. Обмен по FTP идет слишком интенсивно,
чтобы использовать обычные методы трассировки. Если не добавить этот модуль,
то вы столкнетесь с трудностями при передаче протокола FTP через сетевой экран
(firewall).
CONFIG_IP_NF_IPTABLES - Эта опция необходима для выполнения операций фильтрации,
преобразования сетевых адресов (NAT) и маскарадинга (masquerading). Без нее вы
вообще ничего не сможете делать с iptables.
CONFIG_IP_NF_MATCH_LIMIT - Этот модуль необязателен, однако он используется в
примерах rc.firewall.txt. Он предоставляет возможность ограничения количества
проверок для некоторого правила. Например, -m limit --limit 3/minute указывает,
что заданное правило может пропустить не более 3-х пакетов в минуту. Таким образом,
данный модуль может использоваться для защиты от нападений типа "Отказ в обслуживании".
CONFIG_IP_NF_MATCH_MAC - Этот модуль позволит строить правила, основанные на
MAC-адресации. Как известно, каждая сетевая карта имеет свой собственный уникальный
Ethernet-адрес, таким образом, существует возможность блокировать пакеты, поступающие
с определенных MAC-адресов (т.е. с определенных сетевых карт). Следует, однако,
отметить что данный модуль не используется в rc.firewall.txt или где либо еще
в данном руководстве.
CONFIG_IP_NF_MATCH_MARK - Функция маркировки пакетов MARK. Например, при использовании
функции MARK мы получаем возможность пометить требуемые пакеты, а затем, в других
таблицах, в зависимости от значения метки, принимать решение о маршрутизации
помеченного пакета. Более подробное описание функции MARK приводится ниже в данном
документе.
CONFIG_IP_NF_MATCH_MULTIPORT - Этот модуль позволит строить правила с проверкой
на принадлежность пакета к диапазону номеров портов источника/приемника.
CONFIG_IP_NF_MATCH_TOS - Этот модуль позволит строить правила, отталкиваясь от
состояния поля TOS в пакете. Поле TOS устанавливается для Type Of Service. Так
же становится возможным устанавливать и сбрасывать биты этого поля в собственных
правилах в таблице mangle или командами ip/tc.
CONFIG_IP_NF_MATCH_TCPMSS - Эта опция добавляет возможность проверки поля MSS
в TCP-пакетах.
CONFIG_IP_NF_MATCH_STATE - Это одно из самых серьезных усовершенствований по
сравнению с ipchains. Этот модуль предоставляет возможность управления TCP пакетами,
основываясь на их состоянии (state). К примеру, допустим, что мы имеем установленное
TCP соединение, с траффиком в оба конца, тогда пакет полученный по такому соединению
будет считаться ESTABLISHED (установленное соединение -- прим. ред). Эта возможность
широко используется в примере rc.firewall.txt.
CONFIG_IP_NF_MATCH_UNCLEAN - Этот модуль реализует возможность дополнительной
проверки IP, TCP, UDP и ICMP пакетов на предмет наличия в них несоответствий,
"странностей", ошибок. Установив его мы, к примеру, получим возможность "отсекать"
подобного рода пакеты. Однако хочется отметить, что данный модуль пока находится
на экспериментальной стадии и не во всех случаях будет работать одинаково, поэтому
никогда нельзя будет быть уверенным, что мы не "сбросили" вполне правильные пакеты.
CONFIG_IP_NF_MATCH_OWNER - Проверка "владельца" соединения (socket). Для примера,
мы можем позволить только пользователю root выходить в Internet. Этот модуль
был написан как пример работы с iptables. Следует заметить, что данный модуль
имеет статус экспериментального и может не всегда выполнять свои функции.
CONFIG_IP_NF_FILTER - Реализация таблицы filter в которой в основном и осуществляется
фильтрация. В данной таблице находятся цепочки INPUT, FORWARD и OUTPUT. Этот
модуль обязателен, если вы планируете осуществлять фильтрацию пакетов.
CONFIG_IP_NF_TARGET_REJECT - Добавляется действие REJECT, которое производит
передачу ICMP-сообщения об ошибке в ответ на входящий пакет, который отвергается
заданным правилом. Запомните, что TCP соединения, в отличие от UDP и ICMP, всегда
завершаются или отвергаются пакетом TCP RST.
CONFIG_IP_NF_TARGET_MIRROR - Возможность отправки полученного пакета обратно
(отражение). Например, если назначить действие MIRROR для пакетов, идущих в порт
HTTP через нашу цепочку INPUT (т.е. на наш WEB-сервер прим. перев.), то пакет
будет отправлен обратно (отражен) и, в результате, отправитель увидит свою собственную
домашнюю страничку. (Тут одни сплошные "если": Если у отправителя стоит WEB-сервер,
если он работает на том же порту, если у отправителя есть домашняя страничка,
и т.д. . Суть-то собственно сводится к тому, что с точки зрения отправителя все
выглядит так, как будто бы пакет он отправил на свою собственную машину, а проще
говоря, действие MIRROR меняет местами адрес отправителя и получателя и выдает
измененный пекет в сеть прим. перев.)
CONFIG_IP_NF_NAT - Трансляция сетевых адресов в различных ее видах. С помощью
этой опции вы сможете дать выход в Интернет всем компьютерам вашей локальной
сети, имея лишь один уникальный IP-адрес. Эта опция необходима для работы примера
rc.firewall.txt.
CONFIG_IP_NF_TARGET_MASQUERADE - Маскарадинг. В отличие от NAT, маскарадинг используется
в тех случаях, когда заранее неизвестен наш IP-адрес в Интернете, т.е. для случаев
DHCP, PPP, SLIP или какого-либо другого способа подключения, подразумевающего
динамическое получение IP-адреса. Маскарадинг дает несколько более высокую нагрузку
на компьютер, по сравнению с NAT, однако он работает в ситуациях, когда невозможно
заранее указать собственный внешний IP-адрес.
CONFIG_IP_NF_TARGET_REDIRECT - Перенаправление. Обычно это действие используется
совместно с проксированием. Вместо того, чтобы просто пропустить пакет дальше,
это действие перенаправляет пакет на другой порт сетевого экрана (прокси-серверу
прим. перев.). Другими словами, таким способом мы можем выполнять "прозрачное
проксирование".
CONFIG_IP_NF_TARGET_LOG - Добавляет действие LOG в iptables. Мы можем использовать
этот модуль для фиксации отдельных пакетов в системном журнале (syslog). Эта
возможность может оказаться весьма полезной при отладке ваших сценариев.
CONFIG_IP_NF_TARGET_TCPMSS - Эта опция может использоваться для преодоления ограничений,
накладываемых некоторыми провайдерами (Internet Service Providers), которые блокируют
ICMP Fragmentation Needed пакеты. В результате таких ограничений серверы провайдеров
могут не передавать web-страницы, ssh может работать, в то время как scp обрывается
после установления соединения и пр. Для преодоления подобного рода ограничений
мы можем использовать действие TCPMSS ограничивая значение MSS (Maximum Segment
Size) (обычно MSS ограничивается размером MTU исходящего интерфейса минус 40
байт прим. перев.). Таким образом мы получаем возможность преодолеть то, что
авторы netfilter называют "преступной безмозглостью провайдеров или серверов"
("criminally braindead ISPs or servers") в справке по конфигурации ядра.
CONFIG_IP_NF_COMPAT_IPCHAINS - Добавляет совместимость с более старой технологией
ipchains. Вполне возможно, что подобного рода совместимость будет сохранена и
в ядрах серии 2.6.x.
CONFIG_IP_NF_COMPAT_IPFWADM - Добавляет совместимость с ipfwadm, не смотря на
то что это очень старое средство построения брандмауэров.
Как вы можете видеть, я дал краткую характеристику каждому модулю. Данные опции
доступны в ядре версии 2.4.9. Если вам потребуются дополнительные возможности
- советую обратить внимание на расширения patch-o-matic, которые добавляют достаточно
большое количество дополнительных функций к Netfilter. Patch-o-matic - это набор
дополнений, которые, как предполагается, в будущем будут включены в состав ядра.

взято здесь http://www.opennet.ru/docs/RUS/iptables/

может чего забыто?

Ответить   Alexander Thu, 12 May 2005 15:08:03 +0400 (#366284)

 

Alexander пишет:

Когда-то брал оттуда, же правда за почти год работы мой rc.firewall
претерпел некоторые :) изменения. Короче - это все включено. Но вот в
старом ядре есть опция, которой нет в новом. Никто не в курсе, шо это??
CONFIG_IP_ROUTE_NAT=y

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18611; Возраст листа: 657; Участников: 1352
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366294

Ответить   daks Thu, 12 May 2005 14:19:33 +0300 (#366294)

 

а iptables -t nat -L POSTROUTING что сказал?

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18632; Возраст листа: 658; Участников: 1352
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366603

Ответить   kwin***@u*****.com Thu, 12 May 2005 13:55:46 +0300 (#366603)

 

kwin***@u*****.com пишет:

# iptables -t nat -L POSTROUTING
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
SNAT all -- anywhere anywhere to:193.201.208.71

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18646; Возраст листа: 658; Участников: 1349
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366984

Ответить   daks Fri, 13 May 2005 13:25:47 +0300 (#366984)

 

нужно указывать таблицу. -t nat именно для этого.
иначе (без параметров) он показывает таблицу filter, в которой нету
цепочки POSTROUTING.

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18647; Возраст листа: 658; Участников: 1349
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366992

Ответить   kwin***@u*****.com Fri, 13 May 2005 14:05:40 +0300 (#366992)

 

а так не пробовал?

# iptables -t nat -L POSTROUTING

лучше так

# iptables -t nat -nL POSTROUTING

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18633; Возраст листа: 658; Участников: 1349
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366645

Ответить   Fri, 13 May 2005 08:18:50 +0600 (#366645)

 

Алексей Степаненко пишет:

Понял, спасибо!

-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 18645; Возраст листа: 658; Участников: 1349
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/366966

Ответить   daks Fri, 13 May 2005 13:26:30 +0300 (#366966)