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

Правильный редирект Автоматический перевод абона на информационную страницу

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

 

$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)

 

Проблема в том, что наблюдаются жуткие тормоза при перенаправлении. ДНС для тестируемого адреса доступен.

Периодически правда, "пробивается" и редирект происходит практичски моментально.

 

Вот не могу понять в каком месте и что поправить.

Может кто уже настраивал такую схему.

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


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

Может не в резолвере дело?

Не понял, простите.

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


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

Не понял, простите.

 

443 порт нельзя редиректить.

 

Правильно делать редирект на микротике через вебпрокси, тогда не требуется держать включенным функционал НАТа, что увеличивает производительность.

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


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

Не понял, простите.

 

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 браузер долго тупит, и открывает нужную страницу через раз.

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


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

Правильно редиректить через -j REDIRECT + nginx.

Как-то так: http://forum.nag.ru/forum/index.php?showtopic=77543 .

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


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

Правильно редиректить через -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)

 

есть у кого рабочая схема?

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


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

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

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


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

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

 

443 - ладно, хоть бы для 80 заставить работать хорошо.

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


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

ну с айпитейблсом не помогу, я адепт другой религии, где с редиректом попроще :)

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


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

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

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


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

Правьте sysctl у вас сокиты забиваются :) netstat -anp , там наверняка куча в таймвейтов

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


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

Правьте sysctl у вас сокиты забиваются :) netstat -anp , там наверняка куча в таймвейтов

совсем немного, причина не в этом(

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


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

запустите tcpdum, если увидите syn но не увидите syn,ack то проблема в ядре, если будет syn-syn,ack,ack но не будет редиректа , то проблема в софте.

У вас нат на этом же сервере делается , таблица connrtack не переполняется ?

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


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

у меня это вот так работает

 

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

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


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

у меня это вот так работает

 

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 ? У вас же все клиенты будут на веб сервере светиться с одним и темже сорцом, Я понимаю что возможно вам это не принципиально , но в чем смысл ?

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


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

у меня так

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

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


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

А чего такие сложности с этим-то? Прям, такое обсуждение. :)

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


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

А чего такие сложности с этим-то? Прям, такое обсуждение. :)

Для кого-то видимо да ))

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


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

Для кого-то видимо да ))

 

Там, в принципе, не так уж и много вариантов. Если страница "заплати, скотина!" находится за роутером (на другом интерфейсе), то надо ставить DNAT. В ином случае REDIRECT. При этом, если страница на самом же роутере (оптимальный вариант), то больше ничего не надо делать. Если в том же сегменте (за тем же интерфесом), откуда пришел клиент, то либо делаем редирект на коленке (через nc и inetd), либо используется встроенный редирект от xinetd, либо ставим прокси/nginx. Похоже, что это весь список вариантов.

 

PS Для варианта "на том же интерфейсе" можно еще сделать тоннель к серверу со страницей. Тогда можно и DNAT поставить.

Изменено пользователем vop

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


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

Товарищ Saab95, поделитесь "правильным" редиректом для RouterOs. Задача редиректить на инфостраницу каждые 3 часа.

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


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

Попробуйте сделать ещё дополнительно реджект на соединения во внешку на 443 порт.

У меня в тестах тупило т.к. некоторые браузеры лезли проверять каждый урл на предмет фишинга

или чего-то подобного по ssl на своих сервисах. REJECT решил проблему.

 

И ещё, если пускать в свой ЛК по SSL с серых адресов без внешки, то тоже нужно делать реджект на 443 во внешку,

т.к. есть проверка сертификата в браузерах, тупит очень долго.

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


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

Всем неплательщикам реджектить 443 порт во внешку?

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


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

Никогда не понимал эти глупости со страницами. Кроме 80 есть еще другие порты. Все не затерминируешь.

 

Достаточно перекрыть доступ в инет, оставив доступ к ЛК. Абоны сами баланс посмотрят и сразу внесут обещанный.

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


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

Мы просто режем скорость до 100кбит, а вверх всех страничек(которые по http) вставляем информацию о том, что баланс отрицательный и неплохо бы положить денег.

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


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

Join the conversation

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

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

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

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

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

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

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