Вы здесь

iptables проблема (Решено)

Ввожу:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

Получаем:

iptables: No chain/target/match by that name.

Проверил ядро, ВСЕ касаемо netfilter включено. Излазил весь интернет, пересобирал ядро и iptables, не помогает. Что я делаю не так?

micbal написал:
Ввожу:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

Получаем:

iptables: No chain/target/match by that name.

Проверил ядро, ВСЕ касаемо netfilter включено. Излазил весь интернет, пересобирал ядро и iptables, не помогает. Что я делаю не так?

Когда получаем? После ввода команды или при проверке правил?
P.S. Покажите

zegrep 'NETFILTER|NF_' /proc/config.gz

Я Gentoo & Funtoo

Сообщение сразу после ввода команды. Щас обновил ядро до 2.6.30-r4, не помогло.

router micbal # zegrep 'NETFILTER|NF_' /proc/config.gz
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
# CONFIG_NETFILTER_ADVANCED is not set
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CONNTRACK_SECMARK=y
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_IRC=y
CONFIG_NF_CONNTRACK_SIP=y
CONFIG_NF_CT_NETLINK=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y
CONFIG_NETFILTER_XT_TARGET_MARK=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_SECMARK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_MARK=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
CONFIG_NF_DEFRAG_IPV4=y
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=y
# CONFIG_NF_NAT_TFTP is not set
# CONFIG_NF_NAT_AMANDA is not set
# CONFIG_NF_NAT_PPTP is not set
# CONFIG_NF_NAT_H323 is not set
CONFIG_NF_NAT_SIP=y
CONFIG_IP_NF_MANGLE=y

micbal написал:
Ввожу:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128

Получаем:

iptables: No chain/target/match by that name.

Проверил ядро, ВСЕ касаемо netfilter включено. Излазил весь интернет, пересобирал ядро и iptables, не помогает. Что я делаю не так?

Попробуй так:
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Опять тоже самое. Модулями старался не чего не делать, только fuse.

router micbal # iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables: No chain/target/match by that name.
router micbal # lsmod
Module Size Used by
fuse 52752 0

netfilter лучше модулями
и после ввода вышеприведённой команды покажите lsmod
скорее всего не загрузился нужный модуль ядра.

Сегодня попробую пересобрать модулями. Только не понял какие пункты из всех. И еще вопрос, а как потом грузить модули, из /etc/modules.autoload.d, или сами загрузятся?

router micbal # lsmod
Module Size Used by
fuse 52752 0

в конфиге ядра включить автомаическую загрузку модулей.
всё что касается netfilter собрать модулями
модули будут грузиться автоматом при необходимости (добавлении правила, например)

Дайте пожалуйста рабочий кусок конфига ядра касающегося iptables.

http://dpaste.com/75422/

И, заметьте, у меня там есть

zegrep 'NETFILTER|NF_' /proc/config.gz | grep REDIRECT
CONFIG_IP_NF_TARGET_REDIRECT=m

Я Gentoo & Funtoo

Всем ОГРОМНОЕ спасибо за помощь! Кажется дело вот в чем, вечером проверю:

У меня не включено:

CONFIG_NETFILTER_ADVANCED=n

а должно быть:

CONFIG_NETFILTER_ADVANCED=y

Еще раз всем спасибо! Действительно нужно было включить CONFIG_NETFILTER_ADVANCED
и появилась еще куча опций. Собрал все жестко в ядро, не модулями, все работает. Остался один вопрос:

Так работает:

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.110 --dport 80 -j REDIRECT --to-ports 3128

А так на что-то ругается:

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.110 -d ! 192.168.0.5 --dport 80 -j REDIRECT --to-ports 3128

Using intrapositioned negation (`--option ! this`) is deprecated in favor of extrapositioned (`! --option this`).

a 192.168.0.5 это адрес шлюза, но на нем почта в web мордой. Как сообщить iptables чтоб запросы на вебпочту не уходили на squid?

Попробуйте так

iptables -t nat -A PREROUTING -p tcp -s 192.168.0.110 ! -d 192.168.0.5 --dport 80 -j REDIRECT --to-ports 3128

Я Gentoo & Funtoo

Ага, СПАСИБО, получилось. Оказывается поменялся способ написания.