Fantomas Iptconf :: FAQ



О программе
1.1 Что такое Fantomas Iptconf?
1.2 Какова сфера применения Fantomas Iptconf?
1.3 Почему программа имеет такое название?
1.4 На каких дистрибутивах Linux работает Fantomas? Есть ли какие-то ограничения или рекомендации?
1.5 Есть ли в Fantomas Iptconf возможность авторизации клиентов с помощью LDAP/Active Directory?
   
Установка и запуск
2.1 Насколько сложно установить и начать использовать Fantomas?
2.2 Обязательно ли БД MySQL располагать непосредственно на роутере?
   
Использование программы
3.1 Где программа хранит текущие показания счетчиков трафика и как избежать их случайной утери?
3.2 Остановка сервиса "iptcldr" прошла неудачно и показания счетчиков утеряны. Что делать?
3.3 Возможно ли восстановить показания счетчиков после их утери?
3.4 Как считать трафик локальных сервисов средствами Fantomas Iptconf?
3.5 Почему формируются пустые отчеты по клиентам, без сведений о трафике? Ведь в трафик-мониторе и при просмотре страниц клиентов видны счетчики их трафика. Значит, трафик все таки считается?

На главную







1.1 Что такое Fantomas Iptconf?


    Fantomas Iptconf - это front-end система для управления, учета и контроля сетевого трафика Iptables/Netfilter, использующая для работы только штатные средства пакета Netfilter (iptables, ipset, ulogd), без дополнительного программного обеспечения.

    Проще говоря, Fantomas Iptconf это свободно распространяемая программа с открытым исходным кодом, которая позволяет имея под рукой только дистрибутив ОС Linux, создать полноценный интернет-шлюз с подсчетом трафика, ведением статистики, отчетами, лимитами, квотами и всем прочим, используя для этого только встроенные средства пакета Netfilter framework.
    Ах ну да, еще Вам потребуются PHP, Apache и MySQL :).

Наверх    Содержание



1.2 Какова сфера применения Fantomas Iptconf?


    По сути, требовательность к ресурсам Fantomas сводится к тому насколько хватит ресурсов сервера для выполнения операционной системой сформированной конфигурации Iptables. На моей практике, даже с использованием всех возможностей Fantomas на полную, мне не удалось достичь условий когда программа бы не смогла функционировать устойчиво или даже роутер начал бы слегка притормаживать. Поэтому, я полагаю что Netfilter и Fantomas Iptconf вполне потянут и сотню и две сотни и даже тысячу клиентов - "все дело в волшебных пузырьках" :) .

    Хотя, справедливости ради, отмечу что Fantomas ни коим образом не претендует на место в ряду с платными сертифицированными программами для подсчета трафика.

Наверх    Содержание



1.3 Почему программа имеет такое название?


    Название "Fantomas" программа получила в честь маршрутизатора, который несколько месяцев героически выполнял свою неоценимую работу будучи брошенным в тылу чужой территории.
    С этим связана целая история: как-то не очень давно я работал сисадмином в одном небольшом банке, и было в той сети, как водится, два провайдера. Соответственно, маршрутизация через обоих настроена, посредством системы банк-клиент через интернет принимались платежи и все такое... И вот, ни жданно ни гадано, настал момент когда руководством банка было принято решение съезжать из занимаемого здания в достаточно ограниченные сроки... А поскольку клиентов, посылавших свои платежи на наши IP-адреса, достаточно много, то было решено в новое место дислокации провести канал того же провайдера и договориться с ним о привязке к этому новому каналу наших прошлых IP-шников... Надо ли говорить что представители провайдера были немало удивлены такой наглой просьбой с нашей стороны :), и переговоры по данному вопросу заняли какое то свое время (огромнейший респект моему бывшему начальнику управления за талант управляющего менеджера и дар убеждения)... А время то шло... И решено было сделать роутер на линуксе, который делал бы вполне простую вещь: через одного из провайдеров поднимал vpn-туннель до новой территории, и дальше, через второго провайдера принимал бы платежи клиентов и через vpn-туннель пересылал бы их до нужного сервера на новой территории... Но в самый тот день когда в старом офисе остался только шкаф с проводами и один этот самый уже подготовленный роутер, т.е. когда собственно все должно было запуститься, тот провайдер через которого мы планировали отправлять данные, вобщем эти нехорошие люди нас кинули - мы остались только с одним каналом, с тем через который мы принимали платежи...
    И начались пляски с бог знает чем (я даже не знаю были ли это бубны) - vpn-туннель был поднят через оставшегося провайдера, была переделана маршрутизация для отправки принятого трафика через vpn-туннель, располагавшийся на этом же интерфейсе. Ситуация осложнялась еще тем что в сети на новой территории на тот момент уже тоже было два провайдера... Было весело :).

    Тот роутер на чужой территории проработал несколько месяцев, пересылая все платежи всех клиентов банка, до последнего, покуда я сам лично не потушил его удаленно по ssh, предварительно грохнув ключи ssl. Забрать его нам так и не дали. Его звали Fantomas... ОС была Fedora Core 8... Все бы железки так работали...

Наверх    Содержание



1.4 На каких дистрибутивах Linux работает Fantomas? Есть ли какие-то ограничения или рекомендации?


    Fantomas Iptconf не "заточен" под конкретный дистрибутив, программа может работать на любом дистрибутиве Linux.
    Если быть до конца объективным, то стоит упомянуть о системах, на которых и изначально для которых создавалась программа - это были redhat-based системы Fedora Core и CentOS. Первые версии Fantomas Iptconf ставились на "боевое дежурство" на сервера, на которых были установлены именно эти дистрибутивы Linux. Этим объясняется то, что ранние версии достаточно плохо находили общий язык с debian-based дистрибутивами. В дальнейшем Fantomas повзрослел, окреп, и, начиная с версии 0.2.1, успешно устанавливается и работает на любой системе Linux.
    Fantomas Iptconf был протестирован на следующих дистрибутивах: Debian Lenny, Ubuntu 9.10, CentOS 5, Fedora Core 8-12. Хотелось бы еще протестировать программу на OpenSUSE и Slackware, но руки не дошли.
    Если будете выбирать из перечисленого, то я бы рекомендовал CentOS - все таки, "пилотная" версия Fantomas была запущена на этой системе :).

Наверх    Содержание



1.5 Есть ли в Fantomas Iptconf возможность авторизации клиентов с помощью LDAP/Active Directory?


    Насколько известно лично мне, еще не существует технологии, позволяющей с помощью Netfilter авторизовывать источники пакетов по LDAP/SMB/Kerberos. Поэтому, Fantomas, как средство управления Netfilter framework, по определению не умеет этого.
    Я бы рад добавить такую возможность в Fantomas, но для этого прийдется писать match-модуль для Iptables, который сможет работать с kerberos и выполнять проверочные запросы на совпадение условий. Хотя, на самом деле попытки создать такой модуль уже предпринимались, в интернет даже были какие-то доступные для скачивания версии. Но увы, карма всех таких проектов оказалась печальной и сейчас информация о них утеряна. Причина такой ситуации банальна и нелепа до смешного - скрестить модули iptables/netfilter, работающие на уровне ядра системы, и какие либо библиотеки ldap/kerberos - это реально очень сложно. Слишком много эта связка вызывает сложностей и противоречий.

Наверх    Содержание






2.1 Насколько сложно установить и начать использовать Fantomas?


    Вся документация к программе писалась изначально в рассчете на начинающего пользователя ОС Linux, под этим подразумевается человек, который в состоянии самостоятельно установить ОС и произвести какие то первоочередные настройки. Т.е. если Вас не испугала текстовая консоль и Вы с ней осознанно общаетесь - скорее всего Вы сможете по документации установить Fantomas.
    Для работы же с программой крайне желательно иметь хотя бы начальное представление об Iptables. При разработке были приложены все усилия для того чтобы придать программе больше юзабилити путем местами автоматизации а местами упрощения тех или иных административных действий, но это было невозможно сделать там где подобный подход пошел бы в ущерб функциональности. Хотя, в целом по отзывам, сложной программу вряд ли можно назвать.

Наверх    Содержание



2.2 Обязательно ли БД MySQL располагать непосредственно на роутере?


    Вовсе нет. Вы можете совершенно спокойно расположить службу MySQL на другом сервере - для этого Вам нужно указать адрес этого сервера в конфиге демона Ulogd и в конфиге самой программы - config.php.

Наверх    Содержание





3.1 Где программа хранит текущие показания счетчиков трафика и как избежать их случайной утери?


    Fantomas Iptconf это всего лишь front-end для Iptables/Netfilter, и трафик Fantomas считает вовсе не сам - он всего лишь генерирует нужные правила Iptables и в последствии снимает показания счетчиков трафика с этих правил. А подсчетом трафика занимается непосредственно ядро Linux, увеличивая показания счетчиков байт и пакетов при срабатывании каждого правила iptables. Так что, текущие самые актуальные показания счетчиков содержатся в оперативной памяти маршрутизатора и владеют ими непосредственно модули Netfilter, включенные в ядро Linux. Каждый раз, показывая Вам показания счетчиков трафика, Fantomas считывает их для того чтобы отобразить.
    При выключении маршрутизатора или при остановке сервиса "iptcldr" показания счетчиков экспортируются в файл counters, а при старте сервиса "iptcldr" инит-скрипт читает этот файл и вновь формируемая конфигурация iptables загружается уже с сохраненными при выгрузке показания счетчиков.

    Соответственно, встает вполне серьезный вопрос как обезопасить счетчики от случайной утери. Случиться ведь может все что угодно - от внезапного отключения электричества вплоть до также (не дай бог, конечно) внезапного обрушения системы (поплюем через плечо). Первое что следует сделать - позаботиться о системе бесперебойного питания, которая позволит корректно завершить работу системы, при этом сохранив показания счетчиков. Согласитесь, ИБП стоит не так дорого как возможный геморрой который может возникнуть в ситуации когда его не окажется...
    Далее, Вы можете обезопасить себя от случайной утери показаний счетчиков, повесив в crontab задание сохранять счетчики через какой то небольшой интервал времени, к примеру, через 5 минут:

*/5 * * * * cd /usr/local/iptconf; ./iptconf.php savecounts

Наверх    Содержание



3.2 Остановка сервиса "iptcldr" прошла неудачно и показания счетчиков утеряны. Что делать?


    Идем в каталог iptconf/_backup, выбираем наиболее свежий или просто наиболее понравившийся файл счетчиков, подсовываем его программе и запускаем формирование конфигурации:

cd /usr/local/iptconf/_backup
cp counters200911121147.bkp ./../counters
cd ..
./iptconf.php nokeepcounts reload

Наверх    Содержание



3.3 Возможно ли восстановить показания счетчиков после их утери?


    Если в политиках, которые Вы применяли к клиентам для подсчета трафика была указана опция именно "count", но никак не "count nolog", то в теории у Вас есть шанс восстановить счетчики. Разница в том, что при отсутствии директивы "nolog" сведения о трафике пишутся в MySQL БД демона Ulogd, и тогда у Вас есть шанс выцепить кое какие данные из этой базы.
    Как это сделать? В Fantomas встроена возможность подобной обработки для одного конкретного клиента - эта возможность была включена на этапе отладки программы и с тех пор осталась просто как полезная фишка. Перед тем как начать пройдите в раздел "Система ->Iptables" и сделайте выгрузку счетчиков в файл. Далее, для того чтобы получить из БД ulogd сведения о трафике клиента просто сформируйте по клиенту отчет о его трафике, и в сформированном отчете в самом низу страницы увидите ссылку "Установить результат на счетчик пользователя <client_ip>", кликните по ней, и после этого пройдите в раздел "Система -> Iptables", отметьте опцию "не выполнять экспорт счетчиков" (!это важно!) и нажмите "Перезагрузка конфигурации". После этих действий конфигурация Iptables будет переформирована и будут применены счетчики с учетом внесенных Вами изменений.

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

Наверх    Содержание



3.4 Как считать трафик локальных сервисов средствами Fantomas Iptconf?


    Для этого нужно создать политику с использованием action input, она должна получиться примерно такой:

policy local_www_eth0 {
title "Трафик веб-сервера на интерфейсе eth0"
accept tcp 80
in eth0-provider
action input
count
}
    В этой политике кроме "action input" важно корректно указать "in <your-providername>". Причем, даже не так важно какое именно имя и IP-адрес Вы дадите клиенту, для которого Вы будете эту политику применять - все равно во время применения этой политики для формирования правил будет использован IP-адрес сетевого интерфейса, который будет указан в директиве "in <your-providername>".

    Таким образом, Вы можете создать клиента с адресом соответствующим адресу интерфейса eth0, дать ему удобное для Вас имя, и применить эту политику. И после этого сможете получать данные о входящем и исходящем трафике Вашего веб-сервера.
    Разумеется, на месте веб-сервера может быть любой другой сервис или даже комбинация портов вроде "accept tcp (80,25,21,443)", в этом случае Вы будете получать статистику по указанной комбинации трафика. Также, если Вы хотите получать статистику не только по протоколу tcp, то строк "accept ..." может быть несколько:
...
accept tcp (80,25,21,443)
accept udp 53
accept icmp in eth0-provider
...
    Для того чтобы считать вообще весь трафик на конкретном локальном интерфейсе можно использовать следующую конструкцию - "accept all".

Наверх    Содержание



3.5 Почему формируются пустые отчеты по клиентам, без сведений о трафике? Ведь в трафик-мониторе и при просмотре страниц клиентов видны счетчики их трафика. Значит, трафик все таки считается?


    Когда, находясь в веб-интерфейсе Fantomas Iptconf, Вы просматриваете состояние счетчиков трафика по клиентам на страницах клиентов или через монитор трафика, то данные о показаниях счетчиков берутся для отображения непосредственно с правил Iptables. Каждый раз, когда при входе на страницу клиента Вы видите лоадер "Чтение счетчиков", происходит непосредственно чтение показателей счетчиков байт/пакетов из соответствующих правил Iptables.
    В случае с отчетами по трафику ситуация иная - данные по трафику берутся из базы данных mysql демона ulogd, т.к. именно этот демон отвечает за ведение базы статистики трафика. Эта БД содержит описание всех пакетов, проходящих через правила iptables, соответствующие политиках клиента.
    Поэтому, если у Вас отчеты формируются пустые, но в трафик-мониторе и на страницах клиентов видны меняющиеся показания счетчиков трафика, то причина может быть только в некорректной работе ulogd. Проверьте лог демона на предмет ошибок.

Наверх    Содержание



















Назад