Еще раз о ipcad+squid+lightsquid
-
ipcad не стартует, /var/log/ipcad очистили?
Да, чистил (#rm /var/log/ipcad/ipcad*).
Сейчас в /var/log/ipcad/ находяться:
ipcad.pid4167
ipcad.dump
Source Destination Packets Bytes SrcPt DstPt Proto IF Accounting data age is 0 Accounting data age exact 59 Accounting data saved 1300266899 Interface bge0: received 12195, 5 m average 52 bytes/sec, 0 pkts/sec, dropped 0 Flow entries made: 0 Memory usage: 0% (0 from 10485760) Free slots for rsh clients: 10 IPCAD uptime is 11 minutes pfsense.local uptime is 12 minutes
Так как же заставить ipcad запускаться?
Сравнил Ваш конфиг и свой (с рабочей машины) - отличие только одно (не знаю поможет ли) #chroot = /var/log/ipcad; т.е. у меня эта строчка закомментирована, у Вас нет. (при этой, закомментированной, строчке ipcad скидывает дамп в /var/log/ipcad)
-
2Broodval
Какая версия PFsense у вас? Что получается если попробовать запустить ipcad руками (ipcad -rds)?
На всякий случай:
@zar0ku1:версия 1.2.2 выдает ошибку
Can't lock PID file ipcad.pid: Invalid argument Can't initialize pid file /tmp/ipcad.pid: Operation not permitted Make sure you have . under /tmp used as new root. man 2 chroot.
комментируем строчки
#chroot #pidfile
прописываем:
dumpfile = /var/log/ipcad/ipcad.dump;
и создаем его
mkdir /var/log/ipcad/ touch /var/log/ipcad/ipcad.dump chmod 600 /var/log/ipcad/ipcad.dump
-
rubic
Версия: 1.2.3
Закомментировал chroot = /var/log/ipcad (также пробовал комментировать pidfile и chroot, результат аналогичный)
Прописал и создал ещё раз dumpfile = /var/log/ipcad/ipcad.dump;
Результаты:
#toplast pid: 3150; load averages: 0.00, 0.04, 0.07 up 0+00:13:31 18:52:52 57 processes: 1 running, 52 sleeping, 4 zombie CPU: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle Mem: 30M Active, 12M Inact, 66M Wired, 420K Cache, 88M Buf, 885M Free Swap: 2048M Total, 2048M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 472 root 1 4 0 41736K 14920K accept 0 0:00 0.00% php 847 proxy 1 4 0 14244K 8860K kqread 1 0:00 0.00% squid 703 root 1 8 20 3492K 1392K wait 1 0:00 0.00% sh 2561 root 1 44 0 7780K 3276K select 0 0:00 0.00% sshd 437 root 1 44 0 7780K 3212K select 1 0:00 0.00% sshd 1448 root 1 8 20 3156K 784K nanslp 0 0:00 0.00% check_reload_ 453 root 1 8 0 39688K 5252K wait 1 0:00 0.00% php 461 root 1 8 0 39688K 5252K wait 0 0:00 0.00% php 324 root 1 44 0 3268K 1136K select 0 0:00 0.00% syslogd 459 root 1 8 0 39688K 5252K wait 0 0:00 0.00% php 458 root 1 8 0 39688K 5252K wait 1 0:00 0.00% php 552 root 1 4 0 5156K 2864K kqread 0 0:00 0.00% lighttpd 1436 root 1 8 0 3492K 1368K wait 1 0:00 0.00% sh 447 root 1 4 0 5144K 2160K kqread 1 0:00 0.00% lighttpd 3110 root 1 44 0 3524K 1796K CPU1 1 0:00 0.00% top 344 root 1 -58 0 5716K 2092K bpf 0 0:00 0.00% tcpdump 2528 root 1 8 0 3516K 1476K wait 0 0:00 0.00% login
#ipcad -rds
Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized.
# ipcad
Opening bge0... [LCap] [ERSH] [4096] [bge0/interactive] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 Can't bind socket for RSH Server. Failed to start one or more servers.
-
#ipcad -rds
Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized.
Вот это и есть нормальный запуск ipcad, больше ничего делать не надо
-
#ipcad -rds
Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized.
Вот это и есть нормальный запуск ipcad, больше ничего делать не надо
Это конечно радует, однако когда после всего вышеизложенного я делаю команду #ipcad, то получаю вот что:
# ipcad -rds Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized. # ipcad Opening bge0... [LCap] [ERSH] [4096] [bge0/interactive] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 Can't bind socket for RSH Server. Failed to start one or more servers.
Это так и надо или ещё что-то надо покрутить?
-
У вас ipcad уже запущен, а вы пытаетесь его запустить еще раз. Вот и лезут ошибки. Вам нужно добиться чтобы вот это:
Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized.
появлялось при загрузке системы, больше ничего не нужно запускать.
-
У вас ipcad уже запущен, а вы пытаетесь его запустить еще раз. Вот и лезут ошибки. Вам нужно добиться чтобы вот это:
Opening bge0... [LCap] [ERSH] [4096] Initialized as 1 Aggregate network 10.10.200.0/255.255.255.0 -> 255.255.255.255 Aggregate network 0.0.0.0/0.0.0.0 -> 255.255.255.255 Configured RSH Server listening at 127.0.0.1 No valid entries found in /var/log/ipcad/ipcad.dump. Daemonized.
появлялось при загрузке системы, больше ничего не нужно запускать.
Исправил! Проблема была в файле config.xml, а именно он содержал две одинаковые строчки запуска ipcad.
<shellcmd>/usr/local/bin/ipcad -rds</shellcmd> -
Добрый день!
все тоже самое было, поправил… НО! статистика считается только со сквида... как получить статистику по другим портам и протоколам? -
Да, небольшая проблема осталась(
Вот при такой строчке:nterface bge0 filter "ip and dst net 10.10.200.0/24 and not src net 10.10.200.0/24";и полностью закомментированных "aggregate <port_range_start>[-<port_range_end>]</port_range_end></port_range_start>
в статистике есть всё, но не ресолвятся адреса, статистика имеет вид ip:port.
А вот при такой строчке:nterface bge0 filter "ip and dst net 10.10.200.0/24 and not src net 10.10.200.0/24 and not src port 80";и полностью закомментированных "aggregate <port_range_start>[-<port_range_end>]</port_range_end></port_range_start>
в статистике отображается только статистика ipcad, вида IP:port (для ipcad вид IP:port это нормально).
P.S. Спасибо rubic что помог решить предыдущие проблемы и указал направление действий!</ip:port>
-
@Axl:
Добрый день!
все тоже самое было, поправил… НО! статистика считается только со сквида... как получить статистику по другим портам и протоколам?Если ты делал тоже самое, то твоей целью и должно было быть получение статистики по другим портам. Уточни проблему!
-
пишу свои параметры:
1. Версия pfSense
1.2.3-release2. Лог загрузки системы в части касающейся ipcad и rsh
less /var/log/dmesg.boot | grep ipcad
less /var/log/dmesg.boot | grep rsh
Ничего не выводят.3. Права на ipcad.dump, ipcad.pid, rsh, tolog.sh
-rw–----- 1 root wheel 0 Mar 21 10:27 ipcad.dump
-rw-r--r-- 1 root wheel 4 Mar 23 15:56 ipcad.pid
-rwxr-xr-x 1 root wheel 356 Mar 18 15:50 tolog.sh
-r-xr-xr-x 1 root wheel 8684 Mar 21 15:19 rsh4. cat ipcad.conf | grep -v '^(#|$)'
capture-ports enable; interface em1 filter "ip and dst net 192.168.0.0/16 and not src net 192.168.0.0/16 and not src port 80"; aggregate 192.168.0.0/16 strip 32; /* Don't aggregate internal range */ aggregate 0.0.0.0/0 strip 32; /* Don't! Aggregate external networks */ aggregate 21 into 21; /* FTP */ aggregate 22 into 22; /* SSH */ aggregate 23 into 23; /* Telnet */ aggregate 25 into 25; /* SMTP */ aggregate 81 into 81; /* 81 */ aggregate 110 into 110; /* POP3 */ aggregate 123 into 123; /* NTP */ aggregate 143 into 143; /* IMAP */ aggregate 443 into 443; /* HTTPS */ aggregate 465 into 465; /* SMTP/S */ aggregate 993 into 993; /* IMAP/S */ aggregate 995 into 995; /* POP3/S */ aggregate 1863 into 1863; /* MSN */ aggregate 5190 into 5190; /* ICQ */ aggregate 5900 into 5900; /* VNC */ aggregate 5938 into 5938; /* TeamViewer */ aggregate 8081 into 8081; /* 8081 */ netflow export version 5; # NetFlow export format version {1|5} netflow timeout active 30; # Timeout when flow is active, in minutes netflow timeout inactive 15; # Flow inactivity timeout, in seconds netflow engine-type 73; # v5 engine_type; 73='I' for "IPCAD" netflow engine-id 1; # Useful to differentiate multiple ipcads. netflow ifclass eth mapto 0-99; # i.e., "eth1"->1, "eth3"->3 netflow ifclass fxp mapto 0-99; # i.e., "fxp4"->4, "fxp0"->0 netflow ifclass ppp mapto 100-199; # i.e., "ppp32"->532, "ppp7"->507 netflow ifclass gre mapto 200-299; netflow ifclass tun mapto 300-399; # i.e., "tun0"->300 rsh enable at 127.0.0.1; /* Note the order! */ rsh root@127.0.0.1 admin; /* Can shutdown ipcad */ rsh root@127.0.0.1 backup; /* Can dump/restore/import accounting table */ rsh root@127.0.0.1; /* Can view and modify accounting tables */ rsh 127.0.0.1 view-only; /* Other users can view current tables */ rsh ttl = 3; rsh timeout = 30; dumpfile = /var/log/ipcad/ipcad.dump; # The file is inside chroot(), see below... chroot=/var/log/ipcad; pidfile = ipcad.pid; memory_limit = 10m;
5. tolog.sh
#!/bin/sh net="192.168" ttime=`/usr/bin/rsh localhost sh ip acco | grep 'Accounting data saved' | awk '{print ($4)}'` rsh localhost clear ip accounting rsh localhost show ip accounting checkpoint | grep $net | awk -v vtime=$ttime '{if ($5 != 0) print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/log/access.log
6. из config.xml с настройками cron:
<cron><minute>0</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 newsyslog <minute>1,31</minute> <hour>0-5</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 adjkerntz -a <minute>1</minute> <hour>3</hour> <mday>1</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 /etc/rc.update_bogons.sh <minute>*/60</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 /usr/local/sbin/expiretable -v -t 3600 sshlockout <minute>1</minute> <hour>1</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 /etc/rc.dyndns.update <minute>*/60</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 /usr/local/sbin/expiretable -v -t 3600 virusprot <minute>*/5</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/local/bin/checkreload.sh <minute>*/5</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/etc/ping_hosts.sh <minute>*/140</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/local/sbin/reset_slbd.sh <task_name>squid_rotate_logs</task_name> <minute>0</minute> <hour>0</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/local/sbin/squid -k rotate <minute>*/1</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/root/tolog.sh <minute>*/1</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/local/bin/vnstat -u <minute>0</minute> <hour>*/1</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/nice -n20 /usr/local/etc/rc.d/havp_avupdate <task_name>lightsquid_parser_today</task_name> <minute>*/10</minute> <hour>*</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/perl /usr/local/www/lightsquid/lightparser.pl today <task_name>lightsquid_parser_yesterday</task_name> <minute>15</minute> <hour>0</hour> <mday>*</mday> <month>*</month> <wday>*</wday> <who>root</who> <command></command>/usr/bin/perl /usr/local/www/lightsquid/lightparser.pl yesterday</cron>
7. squid mode и к каким интерфесам привязан:
Transparent, привязан к LAN (em1 - 192.168.1.1)проблема с тем, что считается только статистика squid, т.е. только 80 порт.
изначально пользовался этой инструкцией: http://ru.doc.pfsense.org/index.php/Подсчет_трафика_с_помощью_Squid_и_ipcad_в_pfSense_1.2.3
перечитал эту тему, попробовал разные варианты… возможно я что-то упустил или протупил, заранее прошу прощения...
-
Скажите, а как можно закрыть статистику, например, паролем?
-
Меня тоже этот вопрос интересует!
-
ipcad записывает логи сам себя, т.е. ВСЁ скачал он, например
10.0.0.22 192.168.1.1 5 1165 53 64440 17 bge0
Где 192.168.1.1 это ip-адрес проксисервера, надо чтобы считал по каждому ip из локальной сети а не отображал как сам скачал….
ipcad.conf
capture-ports enable; interface bge0 filter "ip and dst net 192.168.0.0/24 and not src net 192.168.0.0/24"; aggregate 192.168.0.0/24 strip 32; /* Aggregate external networks */ ... aggregate 5191-65535 into 65535; netflow export version 5; # NetFlow export format version {1|5} netflow timeout active 30; # Timeout when flow is active, in minutes netflow timeout inactive 15; # Flow inactivity timeout, in seconds netflow engine-type 73; # v5 engine_type; 73='I' for "IPCAD" netflow engine-id 1; # Useful to differentiate multiple ipcads. netflow ifclass eth mapto 0-99; # i.e., "eth1"->1, "eth3"->3 netflow ifclass fxp mapto 0-99; # i.e., "fxp4"->4, "fxp0"->0 netflow ifclass ppp mapto 100-199; # i.e., "ppp32"->532, "ppp7"->507 netflow ifclass gre mapto 200-299; netflow ifclass tun mapto 300-399; # i.e., "tun0"->300 ###################### # RSH SERVER OPTIONS # ###################### rsh enable at 127.0.0.1; rsh root@127.0.0.1 admin; rsh root@127.0.0.1 backup; rsh root@127.0.0.1; #rsh root@127.0.0.1 deny; rsh 127.0.0.1 view-only; rsh ttl = 3; rsh timeout = 30; dumpfile = ipcad.dump; # The file is inside chroot(), see below... ################# # OTHER OPTIONS # ################# chroot = /usr/logs/ipcad; pidfile = ipcad.pid; memory_limit = 5m;
ipcad.sh
net="192.168" ttime=`/usr/bin/rsh localhost sh ip acco | grep 'Accounting data saved' | awk '{print ($4)}'` rsh localhost clear ip accounting rsh localhost show ip accounting checkpoint | grep $net | awk -v vtime=$ttime '{if ($5 != 0) print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /usr/logs/squid/access.log
В чём может быть проблема?! Спасибо.
-
Приведите полный ipcad.conf и фрагмент лога, не надо ничего сокращать. Вот это:
10.0.0.22 192.168.1.1 5 1165 53 64440 17 bge0
вообще не вывод ipcad, если только вы не отредактировали его руками.
-
Полный конфиг выше, сократил только про порты, т.к. там как обычно.
ee /usr/logs/ipcad/ipcad.dump
Source Destination Packets Bytes SrcPt DstPt Proto IF ... 83.69.195.90 192.168.1.1 6 3767 0 13757 6 bge 83.69.195.90 192.168.1.1 9 5394 0 37941 6 bge 83.69.195.90 192.168.1.1 1 69 0 0 1 bge 66.231.176.36 192.168.1.1 327 403536 0 16688 6 bge 83.69.195.90 192.168.1.1 11 8948 0 28165 6 bge 10.0.0.22 192.168.1.1 5 1165 53 64440 17 bge 77.88.21.14 192.168.1.1 5 399 0 31296 6 bge Accounting data age is 4 Accounting data age exact 273 Accounting data saved 1300884873 Interface bge0: received 7582776, 5 m average 17601 bytes/sec, 16 pkts/sec, dr Flow entries made: 48 Memory usage: 0% (5376 from 5242880) Free slots for rsh clients: 10 IPCAD uptime is 5 days 6:58 home.local uptime is 5 days 6:59
Собственно, проблема в том, что трафик не считается пользователем, а всё "сервер скачал"
http://www.pictureshack.ru/view_8645sams.JPG -
Вопрос снимается, разобрался.
Теперь возник другой вопрос, ipcad записывает статистику почты как шттп трафик.
Например: скачиваю тундербёрдом письма с gmail.com, mail.ru смотрю как записал это ipcad:
rsh localhost show ip accountingSource Destination Packets Bytes SrcPt DstPt Proto IF 209.85.149.138 192.168.1.1 111 133586 0 64413 6 bge0
1. Скачал его я, а не сервер (Destination должен быть 192.168.1.55)
2. Порт должен быть 995 или 110 (0 это правило aggregate 3128 into 0)В чём проблема? У меня фрибсд прописан шлюзом, сам проксисервер настроен прозрачно с редиректом pf
rdr inet proto tcp from $lan_net to any port www -> 127.0.0.1 port 3128P.S. сейчас ещё заметил, аська по 5190 порту тоже никак не фиксируется, mirc по 6669 порту аналогично.
Что фиксируется?! 443 порт, 53, 2041, 5, 9999 -
Спасибо за статью, очень пригодилась… но как посчитать исходящий трафик ipcad-ом в pfsense 2.0-rc-1...? теоретически есть возможность....?
-
Скажите, а как можно закрыть статистику, например, паролем?
Точно не помню где нарыл, может и здесь. Суть в следующем:
- нужно внести в файл lighty-webConfigurator.conf некоторые изменения, для этого правим файл /etc/inc/system.inc
делаем так (добавили "mod_auth", ссылку на файл паролей "/.pa.txt" и защищаемый путь):
... ## modules to load server.modules = ( {$captive_portal_module} "mod_access", "mod_accesslog", "mod_expire", "mod_compress", "mod_redirect", "mod_auth", {$module}{$captiveportal} ) ..... // Add HTTP to HTTPS redirect if ($captive_portal == false && $config['system']['webgui']['protocol'] == "https" && !isset($config['system']['webgui']['disablehttpredirect'])) { if($lighty_port != "443") $redirectport = ":{$lighty_port}"; $lighty_config .= <<<eod<br>\$SERVER["socket"] == ":80" { \$HTTP["host"] =~ "(.*)" { url.redirect = ( "^/(.*)" => "https://%1{$redirectport}/$1" ) } } EOD; } $lighty_config .= <<<eod<br>auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/.pa.txt" auth.require = ( "/lightsquid/" => ( "method" => "basic", "realm" => "Statistic", "require" => "valid-user" ) ) EOD; $fd = fopen("{$filename}", "w"); ....</eod<br></eod<br>
-
далее создаем файл с паролями /.pa.txt с помощью htpasswd.exe от apache (делал под виндой) и кладем на место
-
перегружаемся и проверяем
-
Подскажите, где можно скачать rsh, а то по старому пути его нет(((
и еще не ставиться pkg_add -r compat6x-i386, говорит Error: FTP Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.2-release/Latest/compat6x-i386.tbz: No address record