Cramac Posted July 6, 2014 · Report post Всем привет. Есть # uname -aLinux 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 8001tcp 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 -vChain 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 6, 2014 · Report post -j SNAT используйте. //сорри, DNAT ессно. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cramac Posted July 6, 2014 · Report post Если использовать SNAT не возникнет ли проблем с кэшем? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cramac Posted July 6, 2014 · Report post попробовал так iptables -t nat -A PREROUTING -p tcp -s 172.20.0.2 -j DNAT --to-destination 10.10.10.2:80 не сработало... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cramac Posted July 6, 2014 · Report post попробовал изначальное правило на другом сервере, сработало на ура...но тут ОС убунта Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Antares Posted July 6, 2014 · Report post 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 выключен?? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cramac Posted July 6, 2014 · Report post # 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 (если редиректить на удаленный) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
NiTr0 Posted July 6, 2014 · Report post попробовал так 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. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
taf_321 Posted July 7, 2014 · Report post 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 Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 7, 2014 · Report post 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 Один хрен так бы тоже сработало. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
pppoetest Posted July 7, 2014 · Report post Угу, в особенности если туда попадает траф до днс. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 7, 2014 · Report post Угу, в особенности если туда попадает траф до днс. Вообще - правильное замечание. Но я оттуда дампы видел - DNS там как-то по-другому идет, HTTP запросы проскакивают. Да и в iptables счетчик редиректов крутится; но не работает. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zhenya` Posted July 7, 2014 · Report post ну дык.. а ответ от того серверва поди напрямую приходит? там же ип левый будет.. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 8, 2014 · Report post ну дык.. а ответ от того серверва поди напрямую приходит? там же ип левый будет.. Поэтому, собственно, человеку и нужен был -j REDIRECT, который, как известно, на 127.0.0.1. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Cramac Posted July 19, 2014 · Report post Всем привет. Подскажите, починили редирект, все работает отлично, редирект сделан для таблицы в ipset Но встала другая задача, как сделать что бы редирект срабатывал на все кроме определенного ИП? т.е. хочу сделать свободный доступ к ЛК (находится в интернете, home.site.ru) а на все остальное редиректить через nginx. Или в том же nginx можно описать данную ситуацию? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Abram Posted July 19, 2014 · Report post -j ACCEPT перед правилом с редиректом. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
h1vs2 Posted July 20, 2014 · Report post Я так понимаю Вам для асселя. Когда делал халтуру, сделал так : -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 не гуру, но все работает как надо - так и оставил. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...