Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #33, АВГУСТ 2003 г.

КТО СКАЧАЛ МЯУ? - система подсчета трафика на FreeBSD

DemiurG (arkhangel@mail.ru)

Спецвыпуск Xakep, номер #033, стр. 033-058-4


http://ipa-system.sourceforge.net/

Первым делом прочитай там все, что тебе надо (если я пишу "man 8 ipa", то я имею в виду файл ipa.8.txt):

http://ipa-system.sourceforge.net/ipa.8.txt

http://ipa-system.sourceforge.net/ipastat.8.txt

http://ipa-system.sourceforge.net/ipa.conf.5.txt

http://ipa-system.sourceforge.net/ipa.5.txt

http://kirill.alphaclub.net/sprav.html - patch sql+web интерфейс. У меня поставить (чтоб работало) не получилось.

НАХ-НАХ, НЕХ-НЕХ И ПОХ-ПОХ

Скачиваем архив (http://ipa-system.sourceforge.net/ipa-1.3.1.tar.gz), разархивируем (tar -xvfz ipa-1.3.1.tar.gz). Уже появился билд 1.3.4 (но для примера я все бацаю на 1.3.1). Ставим скрипты: make, make install. Читаем документацию (обязательно). Основной конфигурационной файл ipa - /usr/local/etc/ipa.conf (по умолчанию существует файл ipa.conf.default, переименуй его в ipa.conf). Сама база пишется в каталог /var/ipa/"user name"/"номер месяца". Система такова: у нас есть сеть с 3 пользователями и соответствующими ip-адресами:

admin - 192.168.6.200

masha - 192.168.6.210

gosha - 192.168.6.234

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

Данные для Маши:

ipfw add 300 allow ip from 192.168.6.210 to any

ipfw add 310 allow ip from any to 192.168.6.210 via xl1

ipfw add 320 allow ip from any to 192.168.6.210 via xl0

Правила, по которым будет считаться трафик в данном случае, - 300 и 310 (320 служит для разрешения доступа по внутреннему интерфейсу). В нижеследующем конфиге я создал еще и юзера "all", через которого мы подсчитаем трафик для всей сети по всем пользователям, просто складывая номера их правил - очень удобно, советую.

Пример реального файла ipa.conf:

## в секции global задаются какие-либо глобальные правила.

global {

## означает, что данные в базе обновляются каждые 5 минут.

update_db_time = 5m

}

## когда ты запускаешь IPA командой ipa, первым делом прогружаются данные, находящиеся в секции startup.

startup {

## очищаем таблицу рулесов ipfw.

exec = /sbin/ipfw -f flush

exec = /sbin/ipfw add 20 divert natd all from any to any via xl1

## запрещаем извне порт 3306 (mysql).

exec = /sbin/ipfw add 35 deny tcp from any to any 3306 via xl1

exec = /sbin/ipfw add 37 deny tcp from any 3306 to any via xl1

## запрещаем netbios порты 138-139 (135-137 порты тоже стоит запретить на всякий случай, они используются в специфических микрософтовских программках).

exec = /sbin/ipfw add 40 deny tcp from any to any 135-139

exec = /sbin/ipfw add 45 deny tcp from any 135-139 to any

## разрешаем отсылать порты от роутера.

exec = /sbin/ipfw add 65000 allow ip from 212.212.212.212 to any

}

## когда ты убиваешь ipa (команда ipa -k shutdown), выполняется секция shutdown.

shutdown {

## очищаем таблицу рулесов ipfw.

exec = /sbin/ipfw -f flush

## разрешаем внутренний интерфейс. Бывает, очень часто требуется, когда работаешь с роутером, удаленно по ssh надо убить все правила (или просто отключить IPA). Если бы не это правило, тебя бы просто выбросило из PUTTY, и пришлось искать бы монитор для роутера (так как доступ к нему извне по сети был бы наглухо закрыт).

Назад на стр. 033-058-3  Содержание  Вперед на стр. 033-058-5