Страница 1 из 1

Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2006-10-24 7:13:16
DmyJr
Рассказываю всё по порядку. Прочитав стать всем небезызвестного автора http://www.lissyara.su/?id=1134, решил заняться подсчётом трафика и у себя. Устанавливаю из портов ipacctd (система у меня уже собрана с поддержкой IPFW). В rc.firewall дописываю после ${FwCMD} -f flush следующее:
${FwCMD} add divert 10001 ip from any to any via vr0

Соответственно дописываю в rc.conf
ipacctd_enable="YES"
ipacctd_flags="-v"
ipacctd_rules="vr0"
ipacctd_rule_vr0_flags="-p 10001 -f /var/log/traffic_vr0.log"
ipacctd_rule_vr0_pid="/var/run/ipacctd.sk0"

Стартую ipacctd. Оный запускается без проблем. Перезагружаю правила фаервола. И тут вылезает первая проблема – система всю сеть потеряла. Решил заменой divert на tee. Теперь вроде и сеть видно, и вроде ipacctd трафик считает. Но системная консоль мне каждые две минуты выдаёт следующее:
ipacctd [482] : (port 10001) send: Can’t assign requested address
Limiting closed port response from 249 to 200 packets per second
Limiting closed port response from 212 to 200 packets per second
Limiting closed port response from 232 to 200 packets per second
Limiting closed port response from 258 to 200 packets per second
ipacctd [482] : (port 10001) send: Permission denied
ipacctd [482] : (port 10001) send: Permission denied
Limiting closed port response from 233 to 200 packets per second
ipacctd [482] : (port 10001) send: Permission denied
ipacctd [482] : (port 10001) send: Host is down
ipacctd [482] : (port 10001) send: Can’t assign requested address
...
и так далее... Хотя трафик вроде считается. В первую очередь меня обеспокоило почему не получилось через divert? Что может быть не так?

Добавлено: 2006-10-24 7:23:23
Alex Keda

Код: Выделить всё

sockstat | grep ipacc

Код: Выделить всё

ipfw show

Добавлено: 2006-10-25 3:11:33
DmyJr
Совсем забыл упомянуть - у меня работает NAT.

Код: Выделить всё

sockstat | grep ipacc
root ipacctd 482 5 div4 *:10001 *:*
root ipacctd 482 6 dgram syslogd[423]:3

Код: Выделить всё

ipfw show
00100 21884 3655671 divert 8668 ip from any to any via vr0
00100 144 6542 allow ip from any to any via lo0
00200 21884 3655671 tee 10001 ip from any to any via vr0
00200 0 0 deny ip from any to 127.0.0.0/8
00200 0 0 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
00210 0 0 unreach host ip from 179.1.79.255 to any in recv vr0
00300 0 0 deny ip from 127.0.0.0/8 to any
00400 188 10528 allow icmp from any to any
00500 0 0 deny tcp from any to any 135
00600 0 0 deny tcp from any to any 139
00700 0 0 deny ip from 179.1.0.0/16 to any in recv vr0
00800 0 0 deny ip from 80.237.x.y/27 to any in recv xl0
00900 0 0 deny ip from any to 10.0.0.0/8 via vr0
01000 0 0 deny ip from any to 172.16.0.0/12 via vr0
01100 0 0 deny ip from any to 192.168.0.0/16 via vr0
01200 498 238714 deny ip from any to 179.1.79.0/24 via vr0
01300 0 0 deny ip from any to 0.0.0.0/8 via vr0
01400 0 0 deny ip from any to 169.254.0.0/16 via vr0
01500 0 0 deny ip from any to 192.0.2.0/24 via vr0
01600 0 0 deny ip from any to 224.0.0.0/4 via vr0
01700 0 0 deny ip from any to 240.0.0.0/4 via vr0
01800 28793 6463700 allow tcp from any to any established
01900 0 0 allow ip from any to any frag
02000 0 0 allow tcp from any to 80.237.x.xx 21 setup
02100 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 21 setup
02200 0 0 allow tcp from any to 80.237.x.xx 20 setup
02300 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 20 setup
02400 1 48 allow tcp from any to 80.237.x.xx 25 setup
02500 1 48 allow tcp from any to 179.1.79.254 25 setup
02600 0 0 allow tcp from any to 80.237.x.xx 587 setup
02700 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 587 setup
02800 0 0 allow tcp from any to any 53
02900 0 0 allow tcp from any 53 to any
03000 245 16065 allow udp from any to any 53
03100 418 66622 allow udp from any 53 to any
03200 0 0 deny tcp from any to any 135-139 via vr0
03300 0 0 deny tcp from any 135-139 to any
32300 0 0 allow tcp from any to 80.237.x.xx 80 setup
32400 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 80 setup
32500 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 10000 setup
32700 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 1080 setup
32800 0 0 allow tcp from any to 80.237.x.xx 110 setup
32900 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 110 setup
33000 0 0 allow tcp from any to 80.237.x.xx 44 setup
33100 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 44 setup
33200 0 0 allow tcp from 179.1.79.255 to 179.1.79.254 3128 setup
33300 0 0 deny log tcp from any to any in recv vr0 setup
33400 682 30816 allow tcp from any to any setup
33500 0 0 allow udp from 80.237.x.xx to any 53 keep-state
33600 0 0 allow udp from 80.237.x.xx to any 123 keep-state
65535 168 19550 deny ip from any to any

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2006-10-25 10:32:59
dikens3
Из man ipacctd.

Код: Выделить всё

     -m recs  Максимальное число записей в хэше (по умолчанию - 30000).  Под
              записью понимается уникальное сочетание ip_src/ip_dst для обыч-
              ного режима и ip_src/ip_dst/s_port/d_port/ip_proto для расширен-
              ного режима. Наличие этой опции предотвращает DoS атаки, так как
              для каждого элемента хэша требуется определённое количество опе-
              ративной памяти.

Код: Выделить всё

 -b size  Установить размеры буферов приёма/передачи divert(4) сокета рав-
              ные size.  При большом количестве пакетов в секунду рекоменду-
              ется выставлять равным максимальному значению (равному значению
              sysctl(8) переменной kern.ipc.maxsockbuf.
Попробуй выставить побольше.

Limiting closed port response from 249 to 200 packets per second
Такие вещи у меня появлялись на 3COM'ах.

Мой лог:

Код: Выделить всё

Oct 25 09:50:00 ns ipacctd[50013]: (port 666) accounting dumped to /tmp/ipacct/ipacct.666 (17778 packets, 24548238 bytes)

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-14 21:52:48
burn
та же самая фигня...

Код: Выделить всё

Oct 14 15:40:27  ipacctd[16706]: (port 10001) send: Can't assign requested address
Oct 14 21:44:35  ipacctd[16706]: (port 10001) send: Can't assign requested address
Oct 14 21:44:46  ipacctd[16706]: (port 10001) send: Can't assign requested address
Конфиг такой:

Код: Выделить всё

ipacctd_rule_fxp0_flags="-p 10001 -m 100000 -b 130000 -f /var/log/traffic.log"

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-14 23:11:20
dikens3
Не может забиндить 10001 порт:
sockstat | grep 10001

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-14 23:53:10
burn

Код: Выделить всё

root     ipacctd    16706 5  div4   *:10001               *:*
может дело в этом

Код: Выделить всё

system("killall -1 ipacctd && sync && sleep 5");

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-15 9:31:44
dikens3
У тебя висит на 10001 порту ipacctd

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-15 20:41:21
burn
dikens3 писал(а):У тебя висит на 10001 порту ipacctd
и? а разьве не должен? у него по конфигу этот порт. после killall -1 выводится в лог сообщение

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-15 23:54:59
dikens3
burn писал(а):
dikens3 писал(а):У тебя висит на 10001 порту ipacctd
и? а разьве не должен? у него по конфигу этот порт. после killall -1 выводится в лог сообщение
Не простите, как вопрос задаём, так и отвечаем:
Oct 14 15:40:27 ipacctd[16706]: (port 10001) send: Can't assign requested address
Oct 14 21:44:35 ipacctd[16706]: (port 10001) send: Can't assign requested address
Oct 14 21:44:46 ipacctd[16706]: (port 10001) send: Can't assign requested address
Что я тут должен был подумать? Предположил что он у тебя не запускается. :-)

Думай почему такие строки вываливаются. Попробуй другие способы.

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-17 11:04:10
burn
какие другие?

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-17 12:25:24
dikens3
Снимай статистику не через kill, а через cat к примеру.
Побалуйся с параметрами запуска.

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-17 17:26:31
burn
dikens3 писал(а):Снимай статистику не через kill, а через cat к примеру.
Побалуйся с параметрами запуска.
пробовал через кат) там периодически пишет host is down =)

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-10-17 17:29:04
dikens3
Чё то глюки какие-то.

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-11-28 11:17:33
ADRE
  • письмо от разработчика:
    RVP> Основная причина по которой sendto() в divert сокет может вернуть
    > RVP> permission denied это наличие ниже deny правила ipfw, под которое попадает
    > RVP> посылаемый пакет.
    > Так оно и есть,
    > Я бы хотел считать весь трафик, который например приходит с внешнего
    > интерфеса что бы контролировать провайдера, но часть есстественно
    > попадает под deny.
    > Я так понял беспокоиться незачем? Такой пакет считается?
    RVP>Ну да. На оба вопроса :)
и почаще сбрасывать из хеша... минут 5 - 10 либо его увеличть... как выше написано

Re: Простите за ламерские вопросы, но опять ipacctd

Добавлено: 2007-11-28 11:27:30
burn
гуд, спасибо!