Megas Опубликовано 6 декабря, 2011 · Жалоба буду краток: iptables -t nat -A PREROUTING -s 192.168.50.55 -p tcp --dport 80 -j REDIRECT --to-ports 8080 хочу, чтобы его редиректило на мою страничку где ему говорится связаться ТП. на 8080 повесил обычный lighttpd, но как всегда кумкалки не хватило, на 404 повесил свою index.html, но как-то все не понятно и не работает Как правильно такое реализовывается? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ThreeDHead Опубликовано 6 декабря, 2011 · Жалоба DNAT-ом делайте: # Packets to port 80 redirecting to local HTTPD /sbin/iptables -t nat -A PREROUTING -i $GUEST_INTERFACE -s $LOCAL_NETWORK -p tcp --dport www -j DNAT --to-destination $GUEST_SYSTEM_IP Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Megas Опубликовано 6 декабря, 2011 · Жалоба Спасибо тебе добрый человек. Теперь я обретаю новое понятие для счастья. А те кому интересно: скрипт, раз в 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 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dmitry_ Опубликовано 6 декабря, 2011 · Жалоба через ipset делайте будет и красивее в iptables и проще добавлять/удалять ip-ы из цепочек, +производительность не потеряете если будет несколько тысяч ip а теперь вопрос: у меня такая же схема работает для предупреждения о задолженности, на странице можно нажать кнопку "Продолжить" правило удаляется из ipset-a и пользователь продолжает ходить в сеть на странице запоминается куда абонент пытался достучаться (к примеру на ya.ru) и пытается переадресовать через php header("Location: ...") и вот тут или какой-то кэш или conntrack записи, помнят что была переадресация и по нажатию на кнопку "Продолжить" перекидывает опять на эту же страницу с кнопкой "Продолжить" (запоминается именно 1 адрес куда нужно переадресовывать), тут особенность если попытаться вручную открыть к примеру google.ru все уже успешно открывается никто не сталкивался с такой проблемой? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ThreeDHead Опубликовано 7 декабря, 2011 · Жалоба никто не сталкивался с такой проблемой? Модифицируйте строку запроса и сделайте задержку в 15 секунд $redirect = $_POST['url'].(preg_match('/\?/', $_POST['url']) ? '&' : '?').'r='.rand(); <meta http-equiv="refresh" content="15; url=<?php echo $redirect;?>"> Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 7 декабря, 2011 · Жалоба Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую, то TCP-сессия подвиснет, а если через BRAS, то это изврат. Как вариант, можно запускать на 81 порту BRAS'a вот такой сценарий: http://forum.nag.ru/forum/index.php?showtopic=61117&view=findpost&p=547399 Файрволл заворачивает на него обращения заблокированных клиентов к 80 порту, сценарий делает HTTP-редирект на биллинг, после чего биллинг общается с клиентом напрямую. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ThreeDHead Опубликовано 7 декабря, 2011 · Жалоба Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую, то TCP-сессия подвиснет, а если через BRAS, то это изврат. После того как у меня откроется Опера с 50-ю вкладками, в которых появится в адресной строке адрес биллинга - я скажу вам "спасибо". зыж Но тем не менее решение красивое. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 7 декабря, 2011 · Жалоба Редирект через файрволл - не очень хорошо, потому если биллинг начнёт отвечать напрямую, то TCP-сессия подвиснет, а если через BRAS, то это изврат. После того как у меня откроется Опера с 50-ю вкладками, в которых появится в адресной строке адрес биллинга - я скажу вам "спасибо". зыж Но тем не менее решение красивое. А лучше чтоб вообще ничего не открылось? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 8 декабря, 2011 · Жалоба А лучше чтоб вообще ничего не открылось? У меня %времени это чтение из браузера, и открыто там много, это представляет для меня ценность, потому что на это потрачено моё время и это сохраняет моё время. Зачем провайдеру злить/делать плохо человеку, который ему платит деньги? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 8 декабря, 2011 · Жалоба Зачем провайдеру злить/делать плохо человеку, который ему платит деньги? Редирект на биллинг делается только у должников, которые как раз _не_ платят. Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?". Заплатили - нажимают в браузере backspace и радуются жизни. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a_andry Опубликовано 8 декабря, 2011 · Жалоба через ipset делайте будет и красивее в iptables и проще добавлять/удалять ip-ы из цепочек, +производительность не потеряете если будет несколько тысяч ip а теперь вопрос: у меня такая же схема работает для предупреждения о задолженности, на странице можно нажать кнопку "Продолжить" правило удаляется из ipset-a и пользователь продолжает ходить в сеть на странице запоминается куда абонент пытался достучаться (к примеру на ya.ru) и пытается переадресовать через php header("Location: ...") и вот тут или какой-то кэш или conntrack записи, помнят что была переадресация и по нажатию на кнопку "Продолжить" перекидывает опять на эту же страницу с кнопкой "Продолжить" (запоминается именно 1 адрес куда нужно переадресовывать), тут особенность если попытаться вручную открыть к примеру google.ru все уже успешно открывается никто не сталкивался с такой проблемой? Помнит броузер пользователя. На странице с редиректом добавьте в заголовки connection: close . Я еще на всякий случай добавлял запреты для кеширования страницы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 8 декабря, 2011 · Жалоба Редирект на биллинг делается только у должников, которые как раз _не_ платят.Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?".Заплатили - нажимают в браузере backspace и радуются жизни. Сомнительное удовольствие нажимать 400-800 раз НАЗАД. Не все должники умышленно не платят. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
s.lobanov Опубликовано 8 декабря, 2011 · Жалоба Редирект на биллинг делается только у должников, которые как раз _не_ платят.Это делается для их удобства, чтобы сразу был ответ на вопрос "почему пропал Интернет?".Заплатили - нажимают в браузере backspace и радуются жизни. Сомнительное удовольствие нажимать 400-800 раз НАЗАД. Не все должники умышленно не платят. Если http-редиректа не будет и url изменяться не будет, то после оплаты можно перезапустить браузер. P.S. 400-800 вкладок это какой браузер и сколько памяти на компе? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
a_andry Опубликовано 8 декабря, 2011 · Жалоба Гммм, не дочитал. А зачем вообще "назад"? На сервере с редиректом через rewrite заворачиваем все на свой index.чего-то-там . В индексе запоминаем оригинальный запрос пользователя в hidden форму. На нажатие кнопки "продолжить" ставим что-то вроде <script type=\"text/javascript\"> setTimeout( document.location = '$fulluri' , 500); </script> - сразу редирект по ранее запрашиваемому адресу с нужными параметрами запроса. Для GET работает на ура со всеми броузерами. Для POST не делал, просто лениво, но тоже должно работать. Отдельный демон считает таймауты показа для каждого должника страницы и добавляет адреса в ipset - нагрузка "размазана" по времени, нету редиректа одновременно сотен абонентов (можно и через таймауты в самом ipset + cron). Один раз эта радость поломалась, народ некоторый даже жаловаться по телефону начал - не предупредили мы их, понимаешь, о задолженности :) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 8 декабря, 2011 · Жалоба P.S. 400-800 вкладок это какой браузер и сколько памяти на компе? фаерфокс ~ 300-350, опера ~150-300. Win7 x64, Е8500, 8Гб, без свопа, можно поставить 16Гб, тк ддр3 4 слота, EP43 чипсет. На 2к3х64 тоже самое укладывалось в 4-5 Гб легко, теперь вот 6+. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
st_re Опубликовано 8 декабря, 2011 · Жалоба А что Вы в этих вкладках делаете ? 8-[] Еще помню была жалоба от абонента "Интернет не работает".. Выяснилось, что там была опера с 666 запомненными вкладками (их конечно никто не считал, но дюже дохрена), и в каких то, типа 10 15 33 и 55 попались помершие по таймауту сайты и еще пара просто тормозящих. В итоге оно уперлось в количество параллельно открываемых УРЛов и до его 666 вкладки дело доходило минуты через 3, если не дольше.... Дядя не дожидался. Настроили забывать открытые вкладки, и настало дяде счастье. А то он в тындексе что найдет, новая вкладка. А что это вкладка, и там старая осталась он не в курсе, браузер закроет, откроет а они все снова там. А там, где авторефреш, где анимация навернутая, где еще что... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...