mrsaygo Posted March 23, 2015 Posted March 23, 2015 Нужно, чтобы при истечении срока оплаты пользователя заворачивало на инфо страницу (скажем, вход в личный кабинет) при попытке зайти на любую другую страницу. $IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 80 --match-set disallow_nat src -j DNAT --to-destination 192.168.10.1:80 $IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 443 --match-set disallow_nat src -j DNAT --to-destination 192.168.10.1:80 192.168.10.1 - веб, он же шлюз (временно на одном тазике для теста). web - lighhttpd (все что 404 автоматом уходит на /index.php) Проблема в том, что наблюдаются жуткие тормоза при перенаправлении. ДНС для тестируемого адреса доступен. Периодически правда, "пробивается" и редирект происходит практичски моментально. Вот не могу понять в каком месте и что поправить. Может кто уже настраивал такую схему. Вставить ник Quote
mrsaygo Posted March 23, 2015 Author Posted March 23, 2015 Может не в резолвере дело? Не понял, простите. Вставить ник Quote
Saab95 Posted March 23, 2015 Posted March 23, 2015 Не понял, простите. 443 порт нельзя редиректить. Правильно делать редирект на микротике через вебпрокси, тогда не требуется держать включенным функционал НАТа, что увеличивает производительность. Вставить ник Quote
mrsaygo Posted March 23, 2015 Author Posted March 23, 2015 Не понял, простите. 443 порт нельзя редиректить. Правильно делать редирект на микротике через вебпрокси, тогда не требуется держать включенным функционал НАТа, что увеличивает производительность. Ок, можно сделать так $IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 80 --match-set disallow_nat src -j DNAT --to-destination 192.168.10.1 $IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 443 --match-set disallow_nat src -j DNAT --to-destination 192.168.10.1 Но проблема сейчас даже при попытке зайти на адрес http://8.8.8.8 браузер долго тупит, и открывает нужную страницу через раз. Вставить ник Quote
Abram Posted March 23, 2015 Posted March 23, 2015 Правильно редиректить через -j REDIRECT + nginx. Как-то так: http://forum.nag.ru/forum/index.php?showtopic=77543 . Вставить ник Quote
mrsaygo Posted April 10, 2015 Author Posted April 10, 2015 Правильно редиректить через -j REDIRECT + nginx. Как-то так: http://forum.nag.ru/forum/index.php?showtopic=77543 . 1) Пытаюсь сделать так: (попеременно оба варианта) #$IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 80 --match-set disallow_nat src -j DNAT --to-destination 192.168.0.1:80 #$IPTABLES -m set -t nat -A PREROUTING -p TCP --dport 443 --match-set disallow_nat src -j DNAT --to-destination 192.168.0.1:80 $IPTABLES -m set -t nat -A PREROUTING -i eth1.3400 -p tcp --dport 80 --match-set disallow_nat src -j REDIRECT --to-ports 80 $IPTABLES -m set -t nat -A PREROUTING -i eth1.3400 -p tcp --dport 443 --match-set disallow_nat src -j REDIRECT --to-ports 80 (сеть 192.168.0.0/24)------> eth1.3400[192.168.0.1=NAT+lighttpd] Есть 2 сета - одному доступ разрешен, а disallow_nat нужно перенаправлять. с 80 портом бывает нормально, а вот 443 ... "тупняки" такого плана- долгое открытие, вообще не открывает, net::ERR_TIMED_OUT (443) есть у кого рабочая схема? Вставить ник Quote
GrandPr1de Posted April 10, 2015 Posted April 10, 2015 да не пытайтесь редиректить 443 порт, либо браузер начнет визжать про подмену сертификата, либо просто не сработает. Вставить ник Quote
mrsaygo Posted April 10, 2015 Author Posted April 10, 2015 да не пытайтесь редиректить 443 порт, либо браузер начнет визжать про подмену сертификата, либо просто не сработает. 443 - ладно, хоть бы для 80 заставить работать хорошо. Вставить ник Quote
GrandPr1de Posted April 10, 2015 Posted April 10, 2015 ну с айпитейблсом не помогу, я адепт другой религии, где с редиректом попроще :) Вставить ник Quote
pppoetest Posted April 10, 2015 Posted April 10, 2015 iptables -t nat -I PREROUTING -i eth1.3400 -p tcp -m set --match-set disallow_nat src --dport 80 -j DNAT --to-destination 192.168.0.1:80 Вставить ник Quote
orlik Posted April 10, 2015 Posted April 10, 2015 Правьте sysctl у вас сокиты забиваются :) netstat -anp , там наверняка куча в таймвейтов Вставить ник Quote
mrsaygo Posted April 10, 2015 Author Posted April 10, 2015 Правьте sysctl у вас сокиты забиваются :) netstat -anp , там наверняка куча в таймвейтов совсем немного, причина не в этом( Вставить ник Quote
orlik Posted April 12, 2015 Posted April 12, 2015 запустите tcpdum, если увидите syn но не увидите syn,ack то проблема в ядре, если будет syn-syn,ack,ack но не будет редиректа , то проблема в софте. У вас нат на этом же сервере делается , таблица connrtack не переполняется ? Вставить ник Quote
AKim Posted April 12, 2015 Posted April 12, 2015 у меня это вот так работает iptables -t nat -A POSTROUTING -s 172.22.0.0/20 -d 10.0.0.1 -o eth1 -j SNAT --to-source 192.168.1.9 iptables -t nat -A PREROUTING -s 172.22.0.0/20 ! -d 10.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to-port 80 Вставить ник Quote
orlik Posted April 12, 2015 Posted April 12, 2015 у меня это вот так работает iptables -t nat -A POSTROUTING -s 172.22.0.0/20 -d 10.0.0.1 -o eth1 -j SNAT --to-source 192.168.1.9 iptables -t nat -A PREROUTING -s 172.22.0.0/20 ! -d 10.0.0.0/8 -p tcp --dport 80 -j REDIRECT --to-port 80 А в чем смысл делать SNAT ? У вас же все клиенты будут на веб сервере светиться с одним и темже сорцом, Я понимаю что возможно вам это не принципиально , но в чем смысл ? Вставить ник Quote
Antares Posted April 14, 2015 Posted April 14, 2015 у меня так iptables -t nat -A PREROUTING ! -d ip-адрес веб сервера компании/32 -p tcp -m set --match-set block src -m tcp --dport 80 -j DNAT --to-destination ip-странички-блокировки:80 Вставить ник Quote
vop Posted April 14, 2015 Posted April 14, 2015 А чего такие сложности с этим-то? Прям, такое обсуждение. :) Вставить ник Quote
Antares Posted April 14, 2015 Posted April 14, 2015 А чего такие сложности с этим-то? Прям, такое обсуждение. :) Для кого-то видимо да )) Вставить ник Quote
vop Posted April 14, 2015 Posted April 14, 2015 (edited) Для кого-то видимо да )) Там, в принципе, не так уж и много вариантов. Если страница "заплати, скотина!" находится за роутером (на другом интерфейсе), то надо ставить DNAT. В ином случае REDIRECT. При этом, если страница на самом же роутере (оптимальный вариант), то больше ничего не надо делать. Если в том же сегменте (за тем же интерфесом), откуда пришел клиент, то либо делаем редирект на коленке (через nc и inetd), либо используется встроенный редирект от xinetd, либо ставим прокси/nginx. Похоже, что это весь список вариантов. PS Для варианта "на том же интерфейсе" можно еще сделать тоннель к серверу со страницей. Тогда можно и DNAT поставить. Edited April 14, 2015 by vop Вставить ник Quote
npokypop Posted June 22, 2015 Posted June 22, 2015 Товарищ Saab95, поделитесь "правильным" редиректом для RouterOs. Задача редиректить на инфостраницу каждые 3 часа. Вставить ник Quote
disappointed Posted June 22, 2015 Posted June 22, 2015 Попробуйте сделать ещё дополнительно реджект на соединения во внешку на 443 порт. У меня в тестах тупило т.к. некоторые браузеры лезли проверять каждый урл на предмет фишинга или чего-то подобного по ssl на своих сервисах. REJECT решил проблему. И ещё, если пускать в свой ЛК по SSL с серых адресов без внешки, то тоже нужно делать реджект на 443 во внешку, т.к. есть проверка сертификата в браузерах, тупит очень долго. Вставить ник Quote
hsvt Posted June 23, 2015 Posted June 23, 2015 Всем неплательщикам реджектить 443 порт во внешку? Вставить ник Quote
nu11 Posted June 23, 2015 Posted June 23, 2015 Никогда не понимал эти глупости со страницами. Кроме 80 есть еще другие порты. Все не затерминируешь. Достаточно перекрыть доступ в инет, оставив доступ к ЛК. Абоны сами баланс посмотрят и сразу внесут обещанный. Вставить ник Quote
swelf Posted June 23, 2015 Posted June 23, 2015 Мы просто режем скорость до 100кбит, а вверх всех страничек(которые по http) вставляем информацию о том, что баланс отрицательный и неплохо бы положить денег. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.