iptables redirect transparent

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Виталмий
Сообщения: 468
Статус: Любитель
ОС: Gentoo Linux

iptables redirect transparent

Сообщение Виталмий »

Приветствую Вас.
Хачу настроить заворачивание пакетов с одного порта на другой.
в моём случае с 80 на 8000.
и так по порядку что я делаю.
ядро 2.6.17

Код: Выделить всё

CONFIG_IP_FIB_HASH=y
CONFIG_INET_IPCOMP=m
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
# IP: Netfilter Configuration
CONFIG_IP_NF_CONNTRACK=m
CONFIG_IP_NF_FTP=m
CONFIG_IP_NF_IRC=m
CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_IPRANGE=m
CONFIG_IP_NF_MATCH_TOS=m
CONFIG_IP_NF_MATCH_RECENT=m
CONFIG_IP_NF_MATCH_ECN=m
CONFIG_IP_NF_MATCH_DSCP=m
CONFIG_IP_NF_MATCH_AH=m
CONFIG_IP_NF_MATCH_TTL=m
CONFIG_IP_NF_MATCH_OWNER=m
CONFIG_IP_NF_MATCH_ADDRTYPE=m
CONFIG_IP_NF_MATCH_HASHLIMIT=m
CONFIG_IP_NF_FILTER=m
CONFIG_IP_NF_TARGET_REJECT=m
CONFIG_IP_NF_TARGET_LOG=m
CONFIG_IP_NF_TARGET_ULOG=m
CONFIG_IP_NF_TARGET_TCPMSS=m
CONFIG_IP_NF_NAT=m
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_SAME=m
CONFIG_IP_NF_NAT_SNMP_BASIC=m
CONFIG_IP_NF_NAT_IRC=m
CONFIG_IP_NF_NAT_FTP=m
CONFIG_IP_NF_NAT_TFTP=m
CONFIG_IP_NF_NAT_AMANDA=m
CONFIG_IP_NF_MANGLE=m
CONFIG_IP_NF_TARGET_TOS=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_DSCP=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m

установил iptables-1.3.5
далее создаю правило
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
сматрю:

Код: Выделить всё

# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:http redir ports 8000

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

есть редирект.
но на самом деле он нечего не делает. как будто его нету.
пробую использовать браузер, захожу на какой-нить сайт. в итоге не перебрасывает.

Код: Выделить всё

#iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 101 packets, 68666 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8000

Chain POSTROUTING (policy ACCEPT 227 packets, 13884 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 227 packets, 13884 bytes)
 pkts bytes target     prot opt in     out     source               destination

модули вроде бы все подгружены:

Код: Выделить всё

# lsmod | grep ip
ipt_REDIRECT             896  1
iptable_nat             3204  1
ip_nat                  8108  2 ipt_REDIRECT,iptable_nat
ip_conntrack           23060  2 iptable_nat,ip_nat
iptable_mangle          1024  0
iptable_filter          1024  0
xt_multiport            1920  0

вопрос: почему у меня не редиректит? можь что я неправильно делаю?
в iptables я новичок.

З.Ы. хачу настроить transparent режим для глобакса
linux-2.6.17-gentoo-r5 x86 on AMD Athlon XP 2000+
OpenSuse 11.0 x86_64 on Sony VNG-FZ31ER
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: iptables redirect transparent

Сообщение serzh-z »

/proc/sys/net/ipv4/ip_forward должен быть установлен в 1.
Спасибо сказали:
kvs
Сообщения: 84

Re: iptables redirect transparent

Сообщение kvs »

а что на 8000 порту???
http://******:8000 каков результат
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: iptables redirect transparent

Сообщение serzh-z »

kvs, прокси на 8000-порту. Только таким образом его не проверить.
Спасибо сказали:
Аватара пользователя
vtur
Сообщения: 29
ОС: ALT Linux

Re: iptables redirect transparent

Сообщение vtur »

serzh-z писал(а):
28.12.2006 12:33
kvs, прокси на 8000-порту. Только таким образом его не проверить.

а если посмотреть логи самой прокси? там то будет отражено - попытка подключения, запросы и т.п.
Спасибо сказали:
kvs
Сообщения: 84

Re: iptables redirect transparent

Сообщение kvs »

telnet ip-proxy 8000 ???????
и еще
iptables -t filter -L ? интересует INPUT OUTPUT
Спасибо сказали:
Аватара пользователя
Unknown_Error
Сообщения: 36

Re: iptables redirect transparent

Сообщение Unknown_Error »

vtur
а если посмотреть логи самой прокси? там то будет отражено - попытка подключения, запросы и т.п.

По идее там ничего не должно быть, т.к.:
Виталмий
#iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 101 packets, 68666 bytes)
pkts bytes target prot opt in out source destination
0 0 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000

Под правило трафик не попадает, все по нулям.
Видимо трафик где-то блокируется...

kvs
iptables -t filter -L ? интересует INPUT OUTPUT

Наврятли это что-то даст, т.к. сперва мангл прероутинг, потом нат прероутинг... если конечно этот сервак, как шлюз работает.

ИМХО: Я бы сперва попробовал tcpdump прослушать трафик с интерфейса с которого он должен валиться.
Спасибо сказали:
kvs
Сообщения: 84

Re: iptables redirect transparent

Сообщение kvs »

#iptables -nvL -t nat
ИМХО: Я бы сперва попробовал tcpdump прослушать трафик с интерфейса с которого он должен валиться.

Если закрыто все, то 0 0 REDIRECT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 redir ports 8000, пакеты кот. режутся кажется не показ.
Спасибо сказали:
Аватара пользователя
Виталмий
Сообщения: 468
Статус: Любитель
ОС: Gentoo Linux

Re: iptables redirect transparent

Сообщение Виталмий »

serzh-z писал(а):
27.12.2006 23:59
/proc/sys/net/ipv4/ip_forward должен быть установлен в 1.

установил.
вот что у меня в /etc/sysctl.conf:

Код: Выделить всё

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.accept_source_route = 1
net.ipv4.conf.default.accept_source_route = 1
net.ipv4.conf.all.accept_redirects = 1
net.ipv4.conf.default.accept_redirects = 1
net.ipv4.conf.all.secure_redirects = 1
net.ipv4.conf.default.secure_redirects = 1

нет редиректа. что может быть ещё неправильно?
linux-2.6.17-gentoo-r5 x86 on AMD Athlon XP 2000+
OpenSuse 11.0 x86_64 on Sony VNG-FZ31ER
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: iptables redirect transparent

Сообщение serzh-z »

serzh@notix ~ $ sudo iptables -L -t nat
target prot opt source destination
REDIRECT tcp -- anywhere anywhere ! OWNER UID match squid tcp dpt:ftp redir ports 3128
REDIRECT tcp -- anywhere anywhere ! OWNER UID match squid tcp dpt:http redir ports 3128
Т.е., то что исходит с текущего хоста попадает в цепочку OUTPUT, то что попадает на текущий хост как на роутер, проходит через цепочку PREROUTING.

Про ip_forward я мог перепутать - на десктопе, который служит иногда шлюзом - ip_forward включен, но на ноуте (где так же работае перехватывающий сквид) отключен.

Вышепревиденная таблица была с хоста, который сам для себя (ноут) вляется переватывающим прокси.
Спасибо сказали:
Аватара пользователя
Виталмий
Сообщения: 468
Статус: Любитель
ОС: Gentoo Linux

Re: iptables redirect transparent

Сообщение Виталмий »

serzh-z
так вот у меня на машине всё локально, никакой маршрутизации нет.
значит мне надо это правило вешать на OUTPUT?
получается что цепочка PREROUTING не срабатывает?

как попробую после работы результат скажу.
linux-2.6.17-gentoo-r5 x86 on AMD Athlon XP 2000+
OpenSuse 11.0 x86_64 on Sony VNG-FZ31ER
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: iptables redirect transparent

Сообщение serzh-z »

(Виталмий @ Dec 29 2006, в 11:24) писал(а):значит мне надо это правило вешать на OUTPUT?
Да.
Спасибо сказали:
Аватара пользователя
Karen
Сообщения: 160
ОС: Slackware 11.0

Re: iptables redirect transparent

Сообщение Karen »

2 serzh-z

а как же пакет придет обратно к юзеру? ты же таким образом разрешил токо исходящие ИЛИ я ошибаюсь?

и кажется перед
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8000
не помешало бы
iptables -t nat -A PREROUTING -p TCP --dport 3128 -j REJECT
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: iptables redirect transparent

Сообщение serzh-z »

Karen писал(а):
29.12.2006 23:43
а как же пакет придет обратно к юзеру? ты же таким образом разрешил токо исходящие ИЛИ я ошибаюсь?
Что это значит?

Пакеты классифицированные трассировщиком пакетов, как ESTABLISHED должны пропускаться файрволом (разумеется это равило нужно первым делом добавить) без вопросов.
Спасибо сказали:
Аватара пользователя
Виталмий
Сообщения: 468
Статус: Любитель
ОС: Gentoo Linux

Re: iptables redirect transparent

Сообщение Виталмий »

заработало. теперь редиректит как надо.

Код: Выделить всё

iptables -nvL -t nat
Chain PREROUTING (policy ACCEPT 4987 packets, 1133K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 5705 packets, 1115K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 802 packets, 48963 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   360 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 3129
    0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443 redir ports 3129
    0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:20 redir ports 3129
    0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21 redir ports 3129

а как же пакет придет обратно к юзеру? ты же таким образом разрешил токо исходящие ИЛИ я ошибаюсь?

в моём случае нужно было только перебросить пакеты с одного порта на другой. а тот другой порт случает прокси. он то мне его и вернёт
всем спасибо за помосчь. )))
linux-2.6.17-gentoo-r5 x86 on AMD Athlon XP 2000+
OpenSuse 11.0 x86_64 on Sony VNG-FZ31ER
Спасибо сказали: