Контакты

Для связи с нами можно использовать:
irc://irc.chatnet.ru:#gfs
icq://546460
email://cobalt[@]gfs-team.ru

Все материалы предоставлены только с ознакомительной целью
ГлавнаяСтатьиДругоеДеньги из воздуха или как стать провайдером
© Cobalt 06.11.2006 статья не оптимизирована

 И так ты решил разделить свой хороший конал интернета с друзьями по локалке.
Вся проблема что за интернет-то платишь ты а не друзья, и было бы обидно
отдавать потом и кровью заработанный воздух за чужие удовольствия. Но как ты
наверно  уже слышал существуют решения позволяющие орагнизовать ограничение
трафика и тому подобные вещи. Будем исходить из того что ты не настолько богат
чтобы иметь возможность потратится на преобретение промышленного роутера или
комерческой биллинговой системы. Ведь так? Если нет, то дальше можешь не читать,
ибо эта статья не для тебя.

 Для начала тебе понадобится еще один компьютер. Не стоит бежеть в магазин и
покупать железо по последнему слову техники. Для твоих нужд вполне хватит
старенького пеньтиума I или даже 386-го. И так, заряжаем в него сетевуху, если
у тебя соеденение с интернет через адсл то еще одну (если конечно модем не усб),
видиокарту и прочие железки ставим туда хард гигобайта на 4 и сидиром. Эта груда
металолома будет выполнять функции роутера. Причем значительно лучше всяких
новомодных цисковских маршрутизаторов =).

 Теперь надо поставить на него ОС. Я для этой цели выбрал для себя Gentoo Linux.
Из-за того что там ставится именно тот минимум что тебе нужен и ничего более.
Для установки Gentoo необходим загрузочный liveCD и канал internet, т.к. эта
ОС ставится полностью с Интернет. Мануал по установке и список серверов где
можно скачать образы livecd ты можешь без труда найти на www.gentoo.org.
Единственное скажу, незобудь при компиляции ядра включить потдержку форвардинга
и прочих нетовых фич.

 Ну вот ты поставил Gentoo, и готов продолжать. Воопервых наладь канал с интернет
О настройке сети в генту написано в томже handbook. Далее потребуется установит
такую мощьную вещь как iptables. Это стандартный "фаервол" для линукс осей.
Слово "фаервол" я взял в кавычки, потому как его возможности значительно шире
чем у любого другого фаервола. Кроме него тебе понадобится средство для ведения
логов по трафику. Лично я использую для этих целей ULOGD. Он позволяет вести
запись логов непосредственно в БД. А раз БД, то тебе понадобится еще и mysql.
Т.к. для управления будет использоваться веб интерфейс, то необходимо еще
установить Apache и php. К томуже несомненно пригодятся такие сервисы как
dhcp и dns. Было бы не плохо поставить еще и сервер времени ntpd. А если ты
придерживаешься правила что экономика должна быть экономной - то и SQUID.

 Перед тем как ты приступишь к настройке установленного ПО объясню тебе в кратце
суть идеи. Ядром нашей биллинговой системы будет iptables. Пользователю
для того чтобы выйти в интернет необходимо будет авторизоватся на сервере по логину
и паролю. Если авторизация правильная, то в базу будет записан айди юзера,
время входа и айпи под которым зашел пользователь. Кроме того для iptables ,будут
добавлены минимум четыре правила. Два для логирования трафика, и два для разрешения
выхода в интернет. Специальный скрипт, который будет запускатся по condtab будет
проверять логи сервера. Если в течении какого-то промежутка времени с ip юзера
нет активности, то этот юзер будет считаться неавторизованым. Т.е. в базу будет
добавлено время выхода для пользователя и удалены правила из iptables

 Самый большой плюс такой системы, в том что нет необходимости привязывать
пользователя к ip или mac адресу, что в наше время практически все научились
обходить. Для динамической раздачи адресов тоже не будет никаких преград, т.к.
у нас есть привязка времени к айпи юзера. И чтобы например посмотреть сколько
трафика скачал тот или иной юзер надо просто сначала выбрать все промежутки
времени и айпи из таблицы входоввыходов пользователя и включить их в условие
выбора даннных из таблицы трафика.

 И так. Для начала зададим политику по умолчанию для фаервола:
 
 #!/bin/bash
 echo "1" > /proc/sys/net/ipv4/ip_forward # включить форвардинг
 iptables -P INPUT ACCEPT   # разрешить входящий трафик
 iptables -P OUTPUT ACCEPT  # разрешить исходящий
 iptables -P FORWARD DROP   # запретить перенаправление
 iptables -t nat -A POSTROUTING -j MASQUERADE # задать маскардинг для перенаправляемых
                                              # пакетов
                                              
 т.к. после перезагрузки настройки iptdbles сбрасываются, то лучше реализовать
эти команды в виде баш скрипта.

 Теперь необходимо разрешить апачу запускать рутовые скрипты (для задания правил
для iptables необходимы root привилегии) Это рулится через файл sudoers.
Самое главное написать сам вебинтерфейс для биллинга. Реализовать это можно
разными способами, и я оставляю эту задачу тебе =).

 Что касается разрешающих правил для иптаблес, то они выглядят примерно так:

#!/bin/bash
# Все протоколы

iptables -A FORWARD -s {ip} -j ULOG  --ulog-prefix "OUT"
iptables -A FORWARD -d {ip} -j ULOG  --ulog-prefix "IN"
iptables -A FORWARD -s {ip} -j ACCEPT
iptables -A FORWARD -d {ip} -j ACCEPT

 Первое правило ведет логи по исходящему трафику, второе по входящему.
Остальные два правила разрешают оба трафика для определенного адреса.
Удалить правила в нужный момент совсем просто. Надо вызвать команду
iptables -L -n найти строчки содержащие нужный ip, вычислить их номер (для
iptables нумерация правил ведется от 1) и выполнить iptables -D n где n -
номер удаляемого правила. В системе применяемой у меня, для каждой группы
пользователей, добавляются разные правила. Например есть группа geusts для
которой разрешен только irc трафик.

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

 В принципе самый большой плюс системы именно в ее гибкости. Ты можешь сам задавать
любые правила и тарифы, подключать пользователей по впн и т.п. Как говорится что
хочу то и кручу.
 Но в то же время в этом же и ее самый большой минус =). Именно поэтому я не могу
тебе выложить готовый для скачивания дистрибутив биллинговой системы. Она заточена
именно под конкретные нужды. Например у меня для размещения самого веб интерфейса
используется совсем другой сервер. Так что тебе придется писать все самому =).
 Но отчаиваться не стоит. У меня например на настройку и написание данного
биллинга ушло всего три вечера. К томуже ты всегда можешь задать свои вопросы
на нашем форуме, где я тебе обязательно постараюсь помочь =.

Удачи!



© Cobalt 06.11.2006 статья не оптимизирована

e-Commerce Partners Network
Ник:

Текст:
P Br B I Qute



Код: обновить
Последние комментарии
21.11.2017 21:49:37 Fedorrah написал:
reetly fredytor neusty ...
Пишем guestbook
21.11.2017 20:45:32 ThomasCet написал:
ThomasCetThomasCet
Пишем guestbook
21.11.2017 19:32:50 Vitaliyjew написал:
Diarseamews Meedayjex DicAccego ...
Пишем guestbook
Реклама

Тут должна была быть ваша реклама, но мы потеряли глиняную табличку с ее текстом. SapeId: 665044

Rambler's Top100