КТО СКАЧАЛ МЯУ? - система подсчета трафика на 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 килобайтам. |