lan-viper Posted April 16, 2012 Posted April 16, 2012 (edited) В последнее время озадачился данным вопросом. Интересно послушать, кто каким способом пользуется или что может посоветовать? Изначально принимаю за основу наличие управляемых коммутаторов на доступе (des-3526), vlan на дом, абонентский ip или подсеть закрепляется за определённым портом с помощью acl, доступ к интернет - чистая маршрутизация. В каждом домовом vlan-е своя подсеть, всё сходится звездой на центральный маршрутизатор (dgs-3612) и дальше на сервер доступа (ещё один маршрутизатор, NAS, BRAS или как там его) в служебной подсети, на нём осуществляется контроль доступа, шейпинг, netflow, vpn, dhcp и пр. (универсальный солдат). На данный момент всё ограничивается только лишь прекращением маршрутизации в интернет при исчерпании средств абонента. Руководство и коллеги выразили недавно пожелание, что надо бы сделать так, что бы при блокировке у абонента отключалось всё (локальные сайты, хаб, пиринг внутри локальной сети) за исключением личного кабинета. Причём при попытке абонента зайти на какой-либо интернет ресурс через браузер, его перенаправляло на страницу входа в личный кабинет и там-же в шапке или подвале красовалась надпись о недостатке средств на счёте // пишу, аж самому смешно... // Вот такая вот постановка задачи... Что можно придумать? ))) 1. Создать на всех коммутаторах условный гостевой vlan, допустим с номером 5. На сервере доступа создать интерфейс vlan5, натравить на него dhcp и выдавать в этом vlan-е большую подсеть со шлюзом на данный интерфейс. Тут же в iptables в таблице mangle делать подмену адреса назначения для 80 порта на адрес сервера с личным кабинетом, всё остальное блочить. Больше ничего в этом vlan-е не светить на третьем уровне, да и на всех остальных. При блокировке абонента по команде биллинга порт абонента переводится в vlan=5. Как бы вот такая мысль есть, но с реализацией имеем кучу различных проблем. 2. Делать подмену адреса назначения для 80 порта непосредственно на коммутаторах доступа с помощью acl, остальное всё блокировать. Тут даже не знаю, возможно-ли такое, но реализовать оное видится гораздо легче. У меня пока всё... Edited April 16, 2012 by lan-viper Вставить ник Quote
grfmaniak Posted April 16, 2012 Posted April 16, 2012 1. Создать на всех коммутаторах условный гостевой vlan, допустим с номером 5. На сервере доступа создать интерфейс vlan5, натравить на него dhcp и выдавать в этом vlan-е большую подсеть со шлюзом на данный интерфейс. Тут же в iptables в таблице mangle делать подмену адреса назначения для 80 порта на адрес сервера с личным кабинетом, всё остальное блочить. Больше ничего в этом vlan-е не светить на третьем уровне, да и на всех остальных. При блокировке абонента по команде биллинга порт абонента переводится в vlan=5. Как бы вот такая мысль есть, но с реализацией имеем кучу различных проблем. Никаких проблем, у меня так и переключается, скриптом башевским. Только редирект делается циской. 2. Делать подмену адреса назначения для 80 порта непосредственно на коммутаторах доступа с помощью acl, остальное всё блокировать. Тут даже не знаю, возможно-ли такое, но реализовать оное видится гораздо легче. У меня пока всё... Не получится. Коммутатору мозгов не хватит для редиректа, к тому же надо не только адрес назначения сменить, надо еще и чтобы пакет обратно пришел и еще раз произошла подмена адреса. Иначе хост, пославший пакет на yandex.ru, ответ, пришедший от babla.net просто выкинет, он же его не заказывал ) Вставить ник Quote
Alex/AT Posted April 17, 2012 Posted April 17, 2012 В вашем случае варианта три: 1. Транслировать на NAT-железках 2. Гостевой VLAN 3. Закрывать по ACL, и использовать DNS для подмены адресов - но это не совсем хорошо Вставить ник Quote
pppoetest Posted April 17, 2012 Posted April 17, 2012 (edited) серые ип + нат, гостевой влан не юзаем, на маршрутизаторе после терминации по дефолту запрещен весь форвард, 3 правила в iptables разрешающих прохождение пакетов в тырнет и лок. ресурсам, если IP в ipset не стоит, блочится всё кроме ЛК, все запросы на dst port 80 редиректятся на "дай денег" Edited April 17, 2012 by pppoetest Вставить ник Quote
bos9 Posted April 17, 2012 Posted April 17, 2012 а с браузерными кэшами не возникает проблем при включении тырнетов? Вставить ник Quote
pppoetest Posted April 17, 2012 Posted April 17, 2012 (edited) Cache-Control no-cache + expire, иногда не помогает, на страничке "дай денег" написано почему такое бывает и как с этим бороться. Бывают звонки 1-2 в месяц. Edited April 17, 2012 by pppoetest Вставить ник Quote
grfmaniak Posted April 17, 2012 Posted April 17, 2012 использовать DNS для подмены адресов - но это не совсем хорошо Это очень плохо. Потом обладатели виндов, где применялись "улучшайзеры" вынесут весь мозг, т.к. там с кэшированием днс что-то страшное. Вставить ник Quote
lan-viper Posted April 17, 2012 Author Posted April 17, 2012 У меня реализована схема доступа - серый ip на интерфейс абонента + NAT на один реальник, пока так. Подсети у нас нет, что поделать? Как появится, реализую схему NAT 1:1. Про iptables и mangle по моему я слегка погорячился. Когда-то пробовал делать так, что-бы пользователь, открыв любую ссылку, попадал на наш сайт, но я это делал с помощью NAT, надо бы уточнять. Вставить ник Quote
lan-viper Posted April 17, 2012 Author Posted April 17, 2012 (edited) По поводу надписи "Дай денег!". Личный кабинет можно повесить на два разных ip (алиасы интерфейса). Первый для обычного использования, второй для "гостевого" vlan. С кэшами браузера тогда не должно быть проблем. UPD И для второго ip алиаса в apache настроить какой-нибудь модуль, типа mod_banner (если таковой существует конечно), который будет выводить сообщения. Ну знаете, как на бесплатных хостингах делают, внизу или вверху страницы с твоей вёрсткой врезается их блок с текстом "Переходите на платные тарифы!"? Edited April 17, 2012 by lan-viper Вставить ник Quote
grfmaniak Posted April 17, 2012 Posted April 17, 2012 По поводу надписи "Дай денег!". Личный кабинет можно повесить на два разных ip (алиасы интерфейса). Первый для обычного использования, второй для "гостевого" vlan. С кэшами браузера тогда не должно быть проблем. В варианте с подменой адреса через днс в кеше ресолвера остается значение yandex.ru = 192.168.дай.денег, и потом клиент мучается с этим адресом, пока кеш не сбросит. Два там адреса у личного кабинета или один - роли не играет. С правильным редиректом таких проблем нет. Вставить ник Quote
lan-viper Posted April 17, 2012 Author Posted April 17, 2012 (edited) А я пытаюсь полностью переосмыслить данную задачу в целом. Что-то в ней есть такое - неестественное... Думаю, надо просто блокировать всё, кроме личного кабинета, без всяких выкрутасов. У абонента должна быть голова на плечах. Если яндекс не открывается + ты давно не ходил в кассу платить за инет => надо просто зайти в свой личный кабинет и прояснить ситуацию! Тем более для Win7 я написал им гаджет для просмотра состояния счёта. Edited April 17, 2012 by lan-viper Вставить ник Quote
st_re Posted April 17, 2012 Posted April 17, 2012 2 lan-viper Как показвает практика есть 10% абонентов, которые каждый месяц, когда у них заканчиваются деньги и у них просто отрубает интернет начинают звонить в ТП и сразу выносить мозг. Через пару десятков слов ТП конечно успевает вставить свое слово и сообщить, что незачем так орать, а достаточно заплатить. При внедрении редиректа количество таких звонков свелось к почти 0. Еще неплохо там (куда редиректят) реализовать нечто типа обещанного платежа, чтобы абонент мог не напрягаться в 2 часа ночи поиском автомата оплаты, а оттянуть это на пару дней. Вставить ник Quote
bos9 Posted April 17, 2012 Posted April 17, 2012 (edited) Думаю, надо просто блокировать всё, кроме личного кабинета, без всяких выкрутасов. Я бы добавил туда еще всякие qiwi и прочие платежные системы с интернет-кошельками, у которых есть с вами договор на прием платежей. Edited April 17, 2012 by bos9 Вставить ник Quote
lan-viper Posted April 17, 2012 Author Posted April 17, 2012 (edited) нечто типа обещанного платежаЕсть такое. И думаю, что не удивлю Вас тем, что 9% идиотовабонентов из тех 10% понятия не имеют, как сделать обещанный платёж! // да и не такой маразм видели...При внедрении редиректа количество таких звонков свелось к почти 0.Это и привлекает. Знаю, что как минимум, хуже не станет. Edited April 17, 2012 by lan-viper Вставить ник Quote
st_re Posted April 17, 2012 Posted April 17, 2012 такие 9% из 10%, прочитав "нет денег" пойдут платить ногами :) По любому бывает 0.1%, которые вообще ничего не читают и не понимают. Таким ничто не поможет. Но отсеять звонки от 9.9% уже хорошо. Раньше в йцукен по моему номеру телефона мне сообщали, что у меня интернет не работает по причине проблем на линии (незнаю, может и сейчас сообщают, похоже про последние 2 проблемы они от меня узнали). Туда же, если есть система обработки входящих звонков достаточно умная, можно прикрутить говорящую тетю сообщающую "денег дай", а уже потом сбрасывающую на живую ТП, если не отключились. Вставить ник Quote
lan-viper Posted April 17, 2012 Author Posted April 17, 2012 По поводу надписи "Дай денег!". Личный кабинет можно повесить на два разных ip (алиасы интерфейса). Первый для обычного использования, второй для "гостевого" vlan. С кэшами браузера тогда не должно быть проблем. В варианте с подменой адреса через днс в кеше ресолвера остается значение yandex.ru = 192.168.дай.денег, и потом клиент мучается с этим адресом, пока кеш не сбросит. Два там адреса у личного кабинета или один - роли не играет. С правильным редиректом таких проблем нет. Так, а если установить прозрачный прокси (squid, nginx, etc) на интерфейсе vlan5 и настроить его как нам нужно? Он ведь отдаёт браузеру корректные http заголовки, что типа запрос был перенаправлен? Заранее извиняюсь, если несу чушь, т.к. прокси ни разу не приходилось настраивать. Вставить ник Quote
xcme Posted April 22, 2012 Posted April 22, 2012 использовать DNS для подмены адресов - но это не совсем хорошо Это очень плохо. Потом обладатели виндов, где применялись "улучшайзеры" вынесут весь мозг, т.к. там с кэшированием днс что-то страшное. Месяц назад ввели как доп. блокировку - пока жалоб нет. Кеш надо ставить минимальный. Абонентам на страничке можно давать рекомендации вида: 1. Оплатить. 2. Перезагрузить компьютер. Вставить ник Quote
vIv Posted April 22, 2012 Posted April 22, 2012 У абонента должна быть голова на плечах. Если яндекс не открывается + ты давно не ходил в кассу платить за инет => ... опять у этих криворуких красноглазиков интернет не работает! Говно, а не провайдер! Надо менять провайдера! Вставить ник Quote
pppoetest Posted April 22, 2012 Posted April 22, 2012 Угу, это будет первая мысль у абона, если он тырк в "сининькую буковку Е", а приват.ком не открывается Вставить ник Quote
white_crow Posted April 22, 2012 Posted April 22, 2012 (edited) Я щитаю - есть тока один правильный вариант : ) Есть правило на NAS/BRAS - если юзерский IP попал в список адресов "balance_negative" по событию из биллинга, то хрен ему, а не форвард трафика в мир. И 80 TCP порт редиректить на страничку "Превышен лимит. И описание тысячи сиксильярдов способов оплаты. Инструкции, контакты суппорта etc". И главное - делаем список адресов разных банков, платежных систем, сотовых операторов, вебмани и прочих яндекс деньгов и добавляем в исключение в форвард - т.е. даже с отрицательным балансом можно воспользоваться онлайн платежами. С кешами браузера проблем не видел, как только денежки пришли на счет - юзерский IP тут же удаляется из списка "balance_negative" по событию из биллинга и юзерский трафик снова течет в мир, и не подпадает под правило редиректа. Все манипуляции происходят без обрыва соединения юзера (речь идет о тунелях - если они юзаются), никакие адреса юзеру не меняются, VLANы тоже. Все просто, логично, прозрачно для юзера, без переподключений, релизов и прочее, и не зависит от железок и технологий доступа. Все остальные варианты с днс, выдачей адресов из "плохого пула", загоном в "плохие VLAN" - это как-то не камильфо : ) И реализуется редирект легко и просто централизованно на любом NAS/BRAS. Edited April 22, 2012 by white_crow Вставить ник Quote
Ivan_83 Posted April 23, 2012 Posted April 23, 2012 С кешами браузера проблем не видел, как только денежки пришли на счет - юзерский IP тут же удаляется из списка "balance_negative" по событию из биллинга и юзерский трафик снова течет в мир, и не подпадает под правило редиректа. Сто раз уже говорили: откроет такой абонент фаерфокс/оперу с кучей вкладок, и на всех будет одно и тоже, если ещё и адреса там похерятся в итоге то вообще матов куча. Вставить ник Quote
s.lobanov Posted April 23, 2012 Posted April 23, 2012 Ivan_83 Есть вариант когда не делается http-redirect, т.е. на bras для неплательщиков устанавливается свой next-hop(на сервер должников), а на нём уже tcp/80 через prerouting заворачивается на лупбэк, т.е. можно прикидываться любым сайтом, при этом не подменяя DNS-записи. После закрытия и повторного открытия браузера адреса во вкладках будут старые Вставить ник Quote
taf_321 Posted April 23, 2012 Posted April 23, 2012 Есть вариант когда не делается http-redirect, т.е. на bras для неплательщиков устанавливается свой next-hop(на сервер должников), а на нём уже tcp/80 через prerouting заворачивается на лупбэк, т.е. можно прикидываться любым сайтом, при этом не подменяя DNS-записи. После закрытия и повторного открытия браузера адреса во вкладках будут старые Это да. Правда тут встает в полный рост проблема "отравленного кэша браузера". В первый день месяца примерно 60% обращений в ТП именно из-за "залипшего" браузера, когда приходится чистить кэш вручную. Вставить ник Quote
s.lobanov Posted April 23, 2012 Posted April 23, 2012 taf_321 Поставьте вы нормальные http-хедеры и html-хедеры и даже опера, которая кеширует всё что можно и нельзя не будет запихивать вашу страничку "дай денег" в кеш Вставить ник Quote
AlKov Posted April 24, 2012 Posted April 24, 2012 С кешами браузера проблем не видел, как только денежки пришли на счет - юзерский IP тут же удаляется из списка "balance_negative" по событию из биллинга и юзерский трафик снова течет в мир, и не подпадает под правило редиректа. Сто раз уже говорили: откроет такой абонент фаерфокс/оперу с кучей вкладок, и на всех будет одно и тоже, если ещё и адреса там похерятся в итоге то вообще матов куча. Да вроде как бы без проблем. Проверил, все нормально отрабатывает (см. картинку - так выглядит попытка зайти сюда с заблокированного клиента). После снятия блокировки ссылки не исчезают и не "портятся". Реализовал следующим образом: при блокировке клиенту выдается как и обычно серый IP, но только из другой подсети, которая не NAT-ится в Интернет, а заворачивается DNAT-ом в личный кабинет, где на моменте логина проверяется src IP. Если IP от DNAT-а, то просим денег, если другой - обычная страница логина. Вставить ник 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.