Jump to content

Recommended Posts

Posted

буду краток:

iptables -t nat -A PREROUTING -s 192.168.50.55 -p tcp --dport 80 -j REDIRECT --to-ports 8080

хочу, чтобы его редиректило на мою страничку где ему говорится связаться ТП.

на 8080 повесил обычный lighttpd, но как всегда кумкалки не хватило, на 404 повесил свою index.html, но как-то все не понятно и не работает

Как правильно такое реализовывается?

Posted

Спасибо тебе добрый человек.

Теперь я обретаю новое понятие для счастья.

А те кому интересно:

скрипт, раз в 10 минут выгребает из базы всех зверей в utm у которых стоит статус выкл., сравнивает предыдущию выгрузку и если она изменилась то применяет обновленную версию правил.

при чем: правила вносятся в отдельную цепочку но в таблице nat, тем самым убиваем кучу времени.

почему так? да кто его знает, только учусь.

Ну а так как надо делится, то вот:

 

SQL="SELECT inet_ntoa(ig.ip &4294967295) AS FIELD_1, inet_ntoa(ig.mask &4294967295) AS FIELD_2 FROM accounts a, service_links sl, iptraffic_service_links il, ip_groups ig WHERE  sl.account_id = a.id AND  sl.id = il.id AND  il.ip_group_id = ig.ip_group_id AND  sl.is_deleted = 0 AND  il.is_deleted = 0 AND  ig.is_deleted = 0 AND   a.int_status = 0"
mysql --user="$user" --password="$password" -e "$SQL INTO outfile '/tmp/blockusers.txt';" utm5

iptables -t nat -F BLOCKUSERS
iptables -t nat -N BLOCKUSERS

cat /tmp/blockusers.txt | while read ip mac; do
   iptables -t nat -A BLOCKUSERS -s $ip -p tcp --dport 80 -j DNAT --to-destination myhost:port
done

Posted

через ipset делайте будет и красивее в iptables и проще добавлять/удалять ip-ы из цепочек, +производительность не потеряете если будет несколько тысяч ip

 

а теперь вопрос:

у меня такая же схема работает для предупреждения о задолженности, на странице можно нажать кнопку "Продолжить" правило удаляется из ipset-a и пользователь продолжает ходить в сеть

на странице запоминается куда абонент пытался достучаться (к примеру на ya.ru) и пытается переадресовать через php header("Location: ...") и вот тут или какой-то кэш или conntrack записи, помнят что была переадресация и по нажатию на кнопку "Продолжить" перекидывает опять на эту же страницу с кнопкой "Продолжить" (запоминается именно 1 адрес куда нужно переадресовывать), тут особенность если попытаться вручную открыть к примеру google.ru все уже успешно открывается

 

никто не сталкивался с такой проблемой?

Posted

никто не сталкивался с такой проблемой?

Модифицируйте строку запроса и сделайте задержку в 15 секунд

 

$redirect = $_POST['url'].(preg_match('/\?/', $_POST['url']) ? '&' : '?').'r='.rand();

<meta http-equiv="refresh" content="15; url=<?php echo $redirect;?>">

Posted

Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую,

то TCP-сессия подвиснет, а если через BRAS, то это изврат.

 

Как вариант, можно запускать на 81 порту BRAS'a вот такой сценарий:

http://forum.nag.ru/forum/index.php?showtopic=61117&view=findpost&p=547399

Файрволл заворачивает на него обращения заблокированных клиентов к 80 порту,

сценарий делает HTTP-редирект на биллинг, после чего биллинг общается с клиентом напрямую.

Posted

Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую,

то TCP-сессия подвиснет, а если через BRAS, то это изврат.

После того как у меня откроется Опера с 50-ю вкладками, в которых появится в адресной строке адрес биллинга - я скажу вам "спасибо".

зыж Но тем не менее решение красивое.

Posted

Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую,

то TCP-сессия подвиснет, а если через BRAS, то это изврат.

После того как у меня откроется Опера с 50-ю вкладками, в которых появится в адресной строке адрес биллинга - я скажу вам "спасибо".

зыж Но тем не менее решение красивое.

 

А лучше чтоб вообще ничего не открылось?

Posted
А лучше чтоб вообще ничего не открылось?

У меня %времени это чтение из браузера, и открыто там много, это представляет для меня ценность, потому что на это потрачено моё время и это сохраняет моё время.

Зачем провайдеру злить/делать плохо человеку, который ему платит деньги?

Posted

Зачем провайдеру злить/делать плохо человеку, который ему платит деньги?

Редирект на биллинг делается только у должников, которые как раз _не_ платят.

Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?".

Заплатили - нажимают в браузере backspace и радуются жизни.

Posted

через ipset делайте будет и красивее в iptables и проще добавлять/удалять ip-ы из цепочек, +производительность не потеряете если будет несколько тысяч ip

 

а теперь вопрос:

у меня такая же схема работает для предупреждения о задолженности, на странице можно нажать кнопку "Продолжить" правило удаляется из ipset-a и пользователь продолжает ходить в сеть

на странице запоминается куда абонент пытался достучаться (к примеру на ya.ru) и пытается переадресовать через php header("Location: ...") и вот тут или какой-то кэш или conntrack записи, помнят что была переадресация и по нажатию на кнопку "Продолжить" перекидывает опять на эту же страницу с кнопкой "Продолжить" (запоминается именно 1 адрес куда нужно переадресовывать), тут особенность если попытаться вручную открыть к примеру google.ru все уже успешно открывается

 

никто не сталкивался с такой проблемой?

 

Помнит броузер пользователя. На странице с редиректом добавьте в заголовки connection: close . Я еще на всякий случай добавлял запреты для кеширования страницы.

Posted
Редирект на биллинг делается только у должников, которые как раз _не_ платят.Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?".Заплатили - нажимают в браузере backspace и радуются жизни.

Сомнительное удовольствие нажимать 400-800 раз НАЗАД.

Не все должники умышленно не платят.

Posted
Редирект на биллинг делается только у должников, которые как раз _не_ платят.Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?".Заплатили - нажимают в браузере backspace и радуются жизни.

Сомнительное удовольствие нажимать 400-800 раз НАЗАД.

Не все должники умышленно не платят.

 

Если http-редиректа не будет и url изменяться не будет, то после оплаты можно перезапустить браузер.

 

P.S. 400-800 вкладок это какой браузер и сколько памяти на компе?

Posted

Гммм, не дочитал.

А зачем вообще "назад"?

На сервере с редиректом через rewrite заворачиваем все на свой index.чего-то-там . В индексе запоминаем оригинальный запрос пользователя в hidden форму. На нажатие кнопки "продолжить" ставим что-то вроде <script type=\"text/javascript\"> setTimeout( document.location = '$fulluri' , 500); </script> - сразу редирект по ранее запрашиваемому адресу с нужными параметрами запроса.

 

Для GET работает на ура со всеми броузерами. Для POST не делал, просто лениво, но тоже должно работать.

 

Отдельный демон считает таймауты показа для каждого должника страницы и добавляет адреса в ipset - нагрузка "размазана" по времени, нету редиректа одновременно сотен абонентов (можно и через таймауты в самом ipset + cron).

 

Один раз эта радость поломалась, народ некоторый даже жаловаться по телефону начал - не предупредили мы их, понимаешь, о задолженности :)

Posted
P.S. 400-800 вкладок это какой браузер и сколько памяти на компе?

фаерфокс ~ 300-350, опера ~150-300.

Win7 x64, Е8500, 8Гб, без свопа, можно поставить 16Гб, тк ддр3 4 слота, EP43 чипсет. На 2к3х64 тоже самое укладывалось в 4-5 Гб легко, теперь вот 6+.

Posted

А что Вы в этих вкладках делаете ? 8-[]

 

Еще помню была жалоба от абонента "Интернет не работает".. Выяснилось, что там была опера с 666 запомненными вкладками (их конечно никто не считал, но дюже дохрена), и в каких то, типа 10 15 33 и 55 попались помершие по таймауту сайты и еще пара просто тормозящих. В итоге оно уперлось в количество параллельно открываемых УРЛов и до его 666 вкладки дело доходило минуты через 3, если не дольше.... Дядя не дожидался. Настроили забывать открытые вкладки, и настало дяде счастье. А то он в тындексе что найдет, новая вкладка. А что это вкладка, и там старая осталась он не в курсе, браузер закроет, откроет а они все снова там. А там, где авторефреш, где анимация навернутая, где еще что...

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.