LINUX.ORG.RU
ФорумAdmin

Напоминалка об оплате, FreeBSD, IPFW, Forward


0

0

Привет!

Возможно кто-нибудь сталкивался с похожей ситуацией и поделится опытом.

Есть домашняя сеть, больше правда похоже на мелкого провайдера, роутеры обслуживающие подсети на FreeBSD, шейпинг с помошью ipfw.

Проблема:

В начале месяца, происходит отключение интернета пользователям забывшим внести плату. И в саппорт лавина звонков типа: "А почему у меня любимый порносайт не открывается?!", "А у меня турнир по контре, почему не гамается?!" Да, юзвери банально забывают платить (

Частичное решение:

Отключённым пользователям при попытке запросить что-то с 80, 20, 21 и тд. портов выкидывается html страничка с просьбой заплатить. То есть в конце цепочки, докуда доходят только не пропущенные прежде пакеты стоит что-то вроде

fwd 127.0.0.1,$port tcp from $subnet/24 to any dst-port 20,21,80 via $LIF in

Практика показала, что для "домохозяек" это то что надо :)

Но этого всё же мало (

Пока хочется, например за 5 дней до срока отключения, показывать юзверям напоминалку, тем же способом что и просьбу об оплате. Только показывать её *один* раз в день, при первом запросе, например. Нужно как-то считать показы для каждого юзверя, эта-то часть и в разработке.

Разные идеи, вэлкам :)


А что, простая почта уже не канает?

p.s. а вообще за появления како-нить фигни в браузере, я бы обиделся... мда

anonymous
()
Ответ на: комментарий от anonymous

Скажу от себя, если бы мой провайдер что-то сувал в броузер я бы его тут же послал.

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

Так что это выбор наименьшего из зол.

Как всё-таки лучше реализовать ежедневную одноразовую напоминалку?

Den0k
() автор топика

>Пока хочется, например за 5 дней до срока отключения, показывать юзверям напоминалку, тем же способом что и просьбу об оплате. Только показывать её *один* раз в день, при первом запросе, например. Нужно как-то считать показы для каждого юзверя, эта-то часть и в разработке.

А если этот первый запрос в день — не посещение сайта, а докачка файла менеджером закачек?

anonymfus ★★★★
()
Ответ на: комментарий от anonymfus

Да, херня получается. Вот из-за такого рода проблем и советуюсь.

User-agent что-ли проверять, просто так много тонкостей из-за "одноразовости" напоминалок, что все идею выходят монстрообразными...

А как ещё можно?

Den0k
() автор топика
Ответ на: комментарий от Den0k

>User-agent что-ли проверять

1. Есть пользователи браузеров, о которых вы даже никогда не слышали.

2. Многие менеджеры закачек маскируются под браузеры.

3. В конце концов, менеджер закачек может быть и встроенный (в той же Опере).

По сути, напоминание добросовестным пользователям таким способом — очень раздражающая вещь.

Есть ли у вас какой-нибудь личный кабинет на сайте, чтобы состояние счёта посмотреть, например? Можно ли порекомендовать юзерам сети использовать вашу стартовую страничку (которую заодно сделать катологом внутрисетевых ресурсов, интегрировать туда гугль с яндексом и т. п.)?

anonymfus ★★★★
()
Ответ на: комментарий от anonymfus

>>> напоминание добросовестным пользователям таким способом — очень раздражающая вещь.

согласен 100% - Но делать что-то надо же...

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

Я уже ищу альтернативные решения, может кому-то придёт в голову, что-то приемлемое и реализуемое

Den0k
() автор топика
Ответ на: комментарий от Den0k

Бредоставить и разрекламировать какой-нибудь уникальный сервис, что бы им все пользовались, работающий и при неуплате.

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

anonymfus ★★★★
()

Это где в Кишинёве такая сетка? %)

> Пока хочется, например за 5 дней до срока отключения, показывать юзверям напоминалку

С этой задачей легко справится скриптик на том же Перле, который после показа пользователю странички изменяет правило пакетного фильтра, разрешая этому пользователю выходить в интернет.

Единственное разумное решение я вижу в том, чтобы показывать такую напоминалку в течении нескольких дней ПОСЛЕ истечения срока уплаты, не отключая от инета. Таким образом, даже если человек забыл оплатить услуги в начале месяца, его не отключают от инета, но он видит напоминалку и вспоминает, что должен заплатить в течении нескольких дней.

grad
()
Ответ на: комментарий от grad

grad, спасибо за дельный ответ.

>>>Это где в Кишинёве такая сетка? %)

Такая это какая? :)

В принципе так и будет, отключение не сразу после 1 числа.

>>> С этой задачей легко справится скриптик на том же Перле, который после показа пользователю странички изменяет правило пакетного фильтра, разрешая этому пользователю выходить в интернет.

Вот что-то с "легко" и проблемы :) Как точно отловить что показ произошёл? Единственно что у меня есть это каунтеры для правила, сколько байт прошло (страничка должна быть показана только 1 раз), и вообще получается надо будет изначально создавать доп. правило для каждого пользователя, а потом скриптом удалать его, получается нехилая манипуляция правилами, что тут простого...

Den0k
() автор топика
Ответ на: комментарий от Den0k

Вот конкретная мысль:

Скажем, за несколько дней до отключения с 08:00 каждому пользователю будет создаваться правило с forward на напоминалку, пока юзер не посмотрел её, счётчики у этого правила по нулям, получается нужен скрипт всё время проверяющий эти счётчики и отменяющий forward если они > 0

Покритикуйте идею?

З.Ы. ушёл на LinuxFest :)

Den0k
() автор топика
Ответ на: комментарий от Den0k

>Как точно отловить что показ произошёл?

Единственный кто знает, что показ произошел, это тот, кто генерировал страничку. Лично бы я это сделал так:

1. Раз в N дней запускается скрипт, который генерирует нужные правила файрвола. Которые перенаправляют port 80 на локальный lighthttpd.
2. С помощью модуля либо mod_redirect, либо mod_rewrite (но тогда не будет информации об источнике) перенаправляем запрос на (Fast)CGI скрипт-напоминалку.
3. На последнем этапе работы скрипта стираем правило файрвола.
4. В случае mod_redirect через n секунд еще раз редиректим на настоящий источник. Эти заморочки уже внутри html файла.

Macil ★★★★★
()

Подпиши их на рассылку уведомлений по E-mail или по RSS. Остальное никчему. Если деньги на счету кончаются - перенаправлять http-запросы на страницу об оплате.

Вариант номер два: сделать стартовую страницу в локалке, типа iGoogle, где будет отображаться помимо новостей всяких статус оплаты.

anonymous
()

Почему бы не сделать удаление из таблиц неоплативших при показе этой напоминалке? через sudo вполне прокатит

FatBastard ★★
()

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

При приближении ко дню отключения сексуальность надо подымать.

Потом отключать - выкидывать страничку и тд по списку выше.
Голос мужской\женский в зависимости от профиля юзера.
 

kilolife ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.