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

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

DemiurG (arkhangel@mail.ru)

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


exec = /sbin/ipfw add 5 allow all from any to any via xl0

exec = /sbin/ipfw add 25 deny ip from any to any

}

## правила для админа.

rule admin {

## просто информационная строка, может быть написано все что угодно, очень часто служит как напоминание и будет просто необходима, когда мы начнем писать скрипты для трафика.

info = 192.168.6.200

ipfw = 190 195

startup {

## мы считаем трафик по правилу 190 (сколько мы отсылаем) и по правилу 195 (сколько мы закачиваем), правила 185 и 187 служат для работы по ssh (так как они лежат раньше 190, 195, по ним трафик не считается).

exec = /sbin/ipfw add 185 allow tcp from 192.168.6.200 to 192.168.6.22 22

exec = /sbin/ipfw add 187 allow tcp from 192.168.6.22 22 to 192.168.6.200

exec = /sbin/ipfw add 190 allow ip from 192.168.6.200 to any via xl0

exec = /sbin/ipfw add 195 allow ip from any to 192.168.6.200 via xl1

exec = /sbin/ipfw add 197 allow ip from any to 192.168.6.200 via xl0

}

}

rule masha {

info = 192.168.6.210

ipfw = 300 310

startup {

exec = /sbin/ipfw add 300 allow ip from 192.168.6.210 to any

exec = /sbin/ipfw add 310 allow ip from any to 192.168.6.210 via xl1

exec = /sbin/ipfw add 320 allow ip from any to 192.168.6.210 via xl0

}

## для примера приведена секция shutdown (хотя когда у нас есть глобальная секция shutdown, эта теряет всякий смысл)

shutdown {

exec = /sbin/ipfw delete 300

exec = /sbin/ipfw delete 310

}

}

rule gosha {

info = 192.168.6.234

ipfw = 400 410

startup {

exec = /sbin/ipfw add 400 allow ip from 192.168.6.234 to any

exec = /sbin/ipfw add 410 allow ip from any to 192.168.6.234 via xl1

exec = /sbin/ipfw add 420 allow ip from any to 192.168.6.234 via xl0

}

}

rule all {

info = 255.255.255.255

ipfw = 190 195 300 310 400 410

}

Ну что, вбил правила? Теперь разберемся, как их вывести на экран. В IPA этим занимается команда "ipastat". Как всегда, будем на примерах разбираться?

Пример 1: "ipastat -x -R ." - выводит информацию по всем пользователям за текущий месяц работы (ключ -х позволяет использовать регулярные выражения - примеры использования см. "man 8 ipastat").

Пример 2: "ipastat -r admin" - выводит статистику за текущий месяц работы по пользователю admin и делает разбивку по дням

Пример 3: "ipastat -R admin" - выводит статистику за текущий месяц работы по пользователю admin и не делает разбивки по дням.

Пример 4: "ipastat -r admin -i 2003.07.07" - выводит статистику по админу за 7 июля.

По умолчанию (как ты заметил) IPA в таблице выводят данные в байтах и мегабайтах, но данные в мегабайтах получаются делением данных в байтах не на 1000000, а на 1048576=1024*1024, что как-то немного бесит - легко исправляется, если еще указывать ключ -k. Пример 5: "ipastat -R gosha -i 2003.07.02 -k" - вывод по трафику для юзера Гоша за 2 июля, считаем, что мегабайт равен 1000 килобайтам.

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