Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Еще раз о ipcad+squid+lightsquid

    Scheduled Pinned Locked Moved Russian
    222 Posts 39 Posters 167.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Broodval
      last edited by

      Меня тоже этот вопрос интересует!

      Я новичок FreeBSD, поэтому если Вас не затруднит, объясняйте мне как первокласснику. Заранее спасибо!

      1 Reply Last reply Reply Quote 0
      • A
        Antip
        last edited by

        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
        
        

        В чём может быть проблема?! Спасибо.

        1 Reply Last reply Reply Quote 0
        • R
          rubic
          last edited by

          Приведите полный ipcad.conf и фрагмент лога, не надо ничего сокращать. Вот это:

          10.0.0.22        192.168.1.1         5         1165     53 64440    17 bge0
          

          вообще не вывод ipcad, если только вы не отредактировали его руками.

          1 Reply Last reply Reply Quote 0
          • A
            Antip
            last edited by

            Полный конфиг выше, сократил только про порты, т.к. там как обычно.

            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

            1 Reply Last reply Reply Quote 0
            • A
              Antip
              last edited by

              Вопрос снимается, разобрался.

              Теперь возник другой вопрос, ipcad записывает статистику почты как шттп трафик.
              Например: скачиваю тундербёрдом письма с gmail.com, mail.ru смотрю как записал это ipcad:
                rsh localhost show ip accounting

              
                 Source           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 3128

              P.S. сейчас ещё заметил, аська по 5190 порту тоже никак не фиксируется, mirc по 6669 порту аналогично.
              Что фиксируется?! 443 порт, 53, 2041, 5, 9999

              1 Reply Last reply Reply Quote 0
              • S
                sergeyfromkomi
                last edited by

                Спасибо за статью, очень пригодилась… но как посчитать исходящий трафик ipcad-ом в pfsense 2.0-rc-1...? теоретически есть возможность....?

                1 Reply Last reply Reply Quote 0
                • B
                  Buch
                  last edited by

                  @denis-k:

                  Скажите, а как можно закрыть статистику, например, паролем?

                  Точно не помню где нарыл, может и здесь. Суть в следующем:

                  • нужно внести в файл 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 (делал под виндой) и кладем на место

                  • перегружаемся и проверяем

                  2.2.6-RELEASE  (amd64)  built on Mon Dec 21 14:50:08 CST 2015 FreeBSD 10.1-RELEASE-p25
                  AMD Turion™ II Neo N40L Dual-Core Processor Current: 187 MHz, Max: 1497 MHz

                  1 Reply Last reply Reply Quote 0
                  • S
                    strelok
                    last edited by

                    Подскажите, где можно скачать 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

                    1 Reply Last reply Reply Quote 0
                    • D
                      DasTieRR
                      last edited by

                      @strelok:

                      Подскажите, где можно скачать 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

                      1. http://narod.ru/disk/12770498001/rsh.gz.html
                      2. Зайти на сайт freebsd найти где там лежат порты, в портах найти путь до compat6x-i386, написать в консоли pkg_add -r и вставить скопирвоанный путь до compat6x-i386, включая имя файла.

                      1 Reply Last reply Reply Quote 0
                      • S
                        strelok
                        last edited by

                        Ссылку нашел, но какой путь прописать и название фаила-не пойму ???
                        http://www.freebsd.org/cgi/cvsweb.cgi/ports/misc/compat6x/

                        1 Reply Last reply Reply Quote 0
                        • D
                          DasTieRR
                          last edited by

                          @strelok:

                          Ссылку нашел, но какой путь прописать и название фаила-не пойму ???
                          http://www.freebsd.org/cgi/cvsweb.cgi/ports/misc/compat6x/

                          не ту ссылку нашёл

                          pkg_add -r http://ftp.freebsd.org/pub/FreeBSD/releases/i386/7.3-RELEASE/packages/Latest/compat6x-i386.tbz
                          это если pfsense 1.2.3

                          P.S. Я в предыдущем посте неверно написал, не порты, а пакеты.

                          1 Reply Last reply Reply Quote 0
                          • S
                            strelok
                            last edited by

                            Установил, спасибо.
                            Все пошло с 4 попытки,когда прочитал формум и понял что надо открыть  агрегацию портов и вуаля!)
                            Только одно НО-разве наормально что в логе есть порты с номером 0,я думал такие вообще не должны отображаться чтобы избежать двойного подсчета

                            1 Reply Last reply Reply Quote 0
                            • A
                              Antip
                              last edited by

                              @Antip:

                              Вопрос снимается, разобрался.

                              Теперь возник другой вопрос, ipcad записывает статистику почты как шттп трафик.
                              Например: скачиваю тундербёрдом письма с gmail.com, mail.ru смотрю как записал это ipcad:
                                rsh localhost show ip accounting

                              
                                 Source           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 3128

                              P.S. сейчас ещё заметил, аська по 5190 порту тоже никак не фиксируется, mirc по 6669 порту аналогично.
                              Что фиксируется?! 443 порт, 53, 2041, 5, 9999

                              • up -
                                Подскажите пожалуйста, куда копать? я не могу посчитать и контролировать данный трафик, т.к. если уберу сортировку по порту 3128/80/8080? то трафик будет удваиваться, сквид + ipcad.
                              1 Reply Last reply Reply Quote 0
                              • R
                                rubic
                                last edited by

                                Всем, кто использует данное решение подсчета трафика, необходимо отредактировать файл tolog.sh
                                Причина: при ротации логов squid, возможна ситуация когда файл /var/squid/log/access.log уже переименован в access.log.0, а новый файл access.log еще не создан. Если в это время сработает tolog.sh (а он таки срабатывает в 00:00, как и ротация), то новый файл access.log будет создан самим tolog.sh с владельцем root. В результате squid не сможет писать в него и остановится. Если установлен SquidGuard, то остановится и он. Пользователи не смогут открывать странички.
                                Новый файл tolog.sh (добавлена проверка существования access.log):

                                #!/bin/sh
                                
                                if [ -f "/var/squid/log/access.log" ]
                                then
                                net="192.168.0"
                                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 '{print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/log/access.log
                                fi
                                
                                
                                1 Reply Last reply Reply Quote 0
                                • Z
                                  zar0ku1
                                  last edited by

                                  сделай чтобы ротация лога сквида проходила в 00:05 и всего делов

                                  закрывайте темы, если ответ на ваш вопрос полон.
                                  если схема сложная - не поленитесь ее нарисовать

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    rubic
                                    last edited by

                                    Подозреваю (но не уверен, кто бы подсказал?), что при ротации LightSquid'ом новый access.log вообще не создается. А создается он только в момент первой записи в него. Тут уж кто раньше встал - того и тапки. Squid или tolog.sh

                                    1 Reply Last reply Reply Quote 0
                                    • Z
                                      zar0ku1
                                      last edited by

                                      @rubic:

                                      Подозреваю (но не уверен, кто бы подсказал?), что при ротации LightSquid'ом новый access.log вообще не создается. А создается он только в момент первой записи в него. Тут уж кто раньше встал - того и тапки. Squid или tolog.sh

                                      создается при ротации

                                      закрывайте темы, если ответ на ваш вопрос полон.
                                      если схема сложная - не поленитесь ее нарисовать

                                      1 Reply Last reply Reply Quote 0
                                      • R
                                        rubic
                                        last edited by

                                        Поторопился с определением причины такого поведения. Сегодня сбойнуло уже утром, далеко-далеко от ротации. У access.log владелец root, группа - proxy, и никакие проверки на существование файла естественно не помогают. Сам файл под 2 мега. Жаль не посмотрел содержимое, кто последний в него писал((
                                        chown что ли в tolog.sh еще ставить?

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          NegoroX
                                          last edited by

                                          а не хард ли подсбаивает перед гибелью? смарт посмотреть (вот только чем его глянуть?

                                          1 Reply Last reply Reply Quote 0
                                          • F
                                            forestman99
                                            last edited by

                                            @rubic:

                                            Поторопился с определением причины такого поведения. Сегодня сбойнуло уже утром, далеко-далеко от ротации. У access.log владелец root, группа - proxy, и никакие проверки на существование файла естественно не помогают. Сам файл под 2 мега. Жаль не посмотрел содержимое, кто последний в него писал((
                                            chown что ли в tolog.sh еще ставить?

                                            я так и сделал, в конце tolog.sh chown добавил, потому как два раза за полгода файл сменил владельца и сквид встал колом

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.