Перейти к содержимому
Калькуляторы

Не работает iptables redirect

Всем привет.

Есть

# uname -a

Linux ipoe 2.6.32-431.20.3.el6.x86_64 #1 SMP Thu Jun 19 21:14:45 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

iptables v1.4.7

 

# netstat -an | grep 8001

tcp 0 0 0.0.0.0:8001 0.0.0.0:* LISTEN

 

пишу

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j REDIRECT --to-port 8001

 

и на этом ничего не происходит, счетчики набегают в правило, на ПК браузер просто крутит в ожидании...

Что такое и как исправить?

 

в iptables всего два правила НАТа, остальное открыто

# iptables -L -v

Chain INPUT (policy ACCEPT 415K packets, 53M bytes)

pkts bytes target prot opt in out source destination

 

Chain FORWARD (policy ACCEPT 42M packets, 35G bytes)

pkts bytes target prot opt in out source destination

 

Chain OUTPUT (policy ACCEPT 25M packets, 32G bytes)

pkts bytes target prot opt in out source destination

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

-j SNAT используйте.

 

//сорри, DNAT ессно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал так

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80

 

не сработало...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал изначальное правило на другом сервере, сработало на ура...но тут ОС убунта

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j REDIRECT --to-port 8001

и

попробовал так

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80

ни чего что порты в правилах разные??

SELinux выключен??

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

# cat /etc/selinux/config

 

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

# targeted - Targeted processes are protected,

# mls - Multi Level Security protection.

SELINUXTYPE=targeted

то что порты разные это так и должно быть, локальный порт 8001(если редиректить на себя) удаленный 80 (если редиректить на удаленный)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал так

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80

 

не сработало...

Странно однако. Попробуйте редирект на другую машину сделать, и послушать tcpdump'ом что там ходит... Альтернатива - в чейн INPUT добавить -j LOG.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80

 

эээ... А разве --dport в правиле указывать сейчас не надо? Пример из рабочего конфига:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.1.2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80

 

эээ... А разве --dport в правиле указывать сейчас не надо? Пример из рабочего конфига:

iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.1.1.2

Один хрен так бы тоже сработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Угу, в особенности если туда попадает траф до днс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Угу, в особенности если туда попадает траф до днс.

Вообще - правильное замечание.

Но я оттуда дампы видел - DNS там как-то по-другому идет, HTTP запросы проскакивают. Да и в iptables счетчик редиректов крутится; но не работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну дык.. а ответ от того серверва поди напрямую приходит? там же ип левый будет..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну дык.. а ответ от того серверва поди напрямую приходит? там же ип левый будет..

Поэтому, собственно, человеку и нужен был -j REDIRECT, который, как известно, на 127.0.0.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет. Подскажите, починили редирект, все работает отлично, редирект сделан для таблицы в ipset

Но встала другая задача, как сделать что бы редирект срабатывал на все кроме определенного ИП?

т.е. хочу сделать свободный доступ к ЛК (находится в интернете, home.site.ru) а на все остальное редиректить через nginx.

Или в том же nginx можно описать данную ситуацию?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я так понимаю Вам для асселя.

 

Когда делал халтуру, сделал так :

 

-A FORWARD -m set --match-set guest-ipoe src -m set --match-set guest-ipoe-allow dst -j ACCEPT
-A FORWARD -m set --match-set guest-ipoe src -j DROP


-A PREROUTING -p tcp -m set --match-set guest-ipoe src -m set ! --match-set guest-ipoe-allow dst -m tcp --dport 80 -j REDIRECT --to-ports 1123

 

guest-ipoe - сюда попадают IP абонов, которых надо завернуть.

guest-ipoe-allow - IP ресурсов на которые можно ходить мимо заглушки.

 

В iptables не гуру, но все работает как надо - так и оставил.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.