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

    Ipcad, hostname и лог squid-a

    Scheduled Pinned Locked Moved Russian
    14 Posts 4 Posters 3.3k 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.
    • R
      rubic
      last edited by

      Хотя инструкцию писал я, убей бог - ничего не помню. Там как-то сложно все с вложенностью кавычек. Может имеет смысл поменять в вашем скрипте все ' на ", а " на '

      1 Reply Last reply Reply Quote 0
      • werterW
        werter
        last edited by

        Kак вариант :

        _NAME=$(awk "{system ("grep 192.168.1.100 /etc/hosts")}" | awk "{print $2}") # объявляем переменную

        rsh localhost show ip accounting checkpoint | grep $net1 | awk -v vtime=$ttime '{print (vtime".000",1,$NAME,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/log/access.log # используем переменную_

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

          @werter:

          Kак вариант :

          _NAME=$(awk "{system ("grep 192.168.1.100 /etc/hosts")}" | awk "{print $2}") # объявляем переменную

          rsh localhost show ip accounting checkpoint | grep $net1 | awk -v vtime=$ttime '{print (vtime".000",1,$NAME,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/log/access.log # используем переменную_

          Так не прокатит. NAME определяется один раз, а "rsh localhost show ip accounting…" - это все-таки много строк

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

            @rubic:

            @werter:

            Kак вариант :

            _NAME=$(awk "{system ("grep 192.168.1.100 /etc/hosts")}" | awk "{print $2}") # объявляем переменную

            rsh localhost show ip accounting checkpoint | grep $net1 | awk -v vtime=$ttime '{print (vtime".000",1,$NAME,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/log/access.log # используем переменную_

            Так не прокатит. NAME определяется один раз, а "rsh localhost show ip accounting…" - это все-таки много строк

            да и заместо 192.168.1.100 надо подставлять как раз $2.. уже всю голову сломал..

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

              Я еще вспомнил, что это вам вообще не нужно. В /usr/local/etc/lightsquid/realname.cfg можно для каждого локального IP прописать удобочитаемое имя, оно и будет в отчетах.

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

                @rubic:

                Я еще вспомнил, что это вам вообще не нужно. В /usr/local/etc/lightsquid/realname.cfg можно для каждого локального IP прописать удобочитаемое имя, оно и будет в отчетах.

                знаю, тока не подойдет.. Трафик считается на freewifi и всех я не внесу в файлик.

                Клиент подключается, dhcp выделяет ему IP, dns forvarder записывает имя в hosts  и он наглядно отображается в lightsquid-е.
                На след день, после перезапуска этому клиенту выделяется уже другой IP и в lightsquid-е завтра уже в перемешку хостнеймы с айпишниками, т.к. dhcpd затирает старые записи и выдает первый попавшийся. Хотя я точно знаю, что вчера это IP был у этого клиента, но сегодня у этого хостнейма другой IP.

                В общем уже даже сам себя запутал, короче, приходят товарисчи с айпадиками и андройдами и подключаются к халявному WiFi.
                Об этом есть записи в /etc/hosts

                192.168.1.128  android-388a8e1edb078a9c.freewifi android-388a8e1edb078a9c              # dynamic entry from dhcpd.leases
                192.168.1.152  iPhone-Ila.freewifi iPhone-Ila          # dynamic entry from dhcpd.leases

                завтра или через неделю, после перезапуска pf, у этих андройдов и айфонов уже другие айпишники и в lightsquid-е в перемешку и  iPhone-Ila. и голые IP, и я точно знаю, что этот илья вчера был не одном из этих голых айпишников. Или того хуже, я подключил только что распечатаный ноут, а в отчете показывает, что этот хостнейм месяц назад накачал 2 гига  порнухи, потомучто lightsquid построил отчет на основании текущих записей в hosts…

                так вот все бы решила возможность писать в лог сразу имена...

                ух... ну и накалякал..

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

                  Static Mappings по MAC в DHCP решает все проблемы, к тому же так и безопаснее - не пускать в инет кого попало

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

                    @rubic:

                    Static Mappings по MAC в DHCP решает все проблемы, к тому же так и безопаснее - не пускать в инет кого попало

                    Я про Ярему, Вы про Фому…

                    Публичный WiFi, для гостей и сотрудников, пароль написан на стене за секретаршей.  Подчеркиваю. Задача не стоит безопаснее.. Пускать нужно кого попало, но надо писать, кто куда ходил. Сотрудники уже записаны в статик..

                    Static Mappings по MAC в DHCP решает проблему, если клиенты известны.

                    Хорошо, пойдем с другого конца.. можно ли dhcpd сказать, чтобы определенному маку всегда выделялся 1 IP, какой был первый раз выделен и никакой другой? И если сеть кончилась, то прекратить выдачу.. (сетку можно и на /16 нарезать если что..)

                    1 Reply Last reply Reply Quote 0
                    • werterW
                      werter
                      last edited by

                      Дурную работу себе ищите, честное слово. Про смену MAC и имени хоста слышали ? Что мешает клиенту сменить MAC? И на кой мониторить точку, пароль к к-ой написан на стене за секретаршей ?

                      Если интересно мое мнение :

                      • открытие только определенных портов и протоколов для wi-fi клиентов;
                      • урезание скорости (Limiter);
                      • если надо защиту от прона и т.д. - выдавайте принудительно клиентам адреса dns-ы Яндекса (http://dns.yandex.ru/) - 77.88.8.7, 77.88.8.3. И даже если они руками пропишут себе другие адреса днс-серверов, можно сделать так , чтобы все запросы на 53-ый порт редиректились на днс-ы яндекса. У меня так в одном учебном заведение и сделано.
                      1 Reply Last reply Reply Quote 0
                      • F
                        fvf
                        last edited by

                        @werter:

                        Дурную работу себе ищите, честное слово. Про смену MAC и имени хоста слышали ? Что мешает клиенту сменить MAC? И на кой мониторить точку, пароль к к-ой написан на стене за секретаршей ?

                        Если интересно мое мнение :

                        • открытие только определенных портов и протоколов для wi-fi клиентов;
                        • урезание скорости (Limiter);
                        • если надо защиту от прона и т.д. - выдавайте принудительно клиентам адреса dns-ы Яндекса (http://dns.yandex.ru/) - 77.88.8.7, 77.88.8.3. И даже если они руками пропишут себе другие адреса днс-серверов, можно сделать так , чтобы все запросы на 53-ый порт редиректились на днс-ы яндекса. У меня так в одном учебном заведение и сделано.

                        Согласен, работа дурная, но тут изначальная посылка такая - клиент тупой и никто менять маки и хостнеймы не будет, канал толстый… И от прона с торрентами защищаться не надо. С закрытием портов тоже не сладко - руководство качает торренты, да и всякие клиент-банки. Важна просто объективная картина расхода трафика , которой я пока не могу добиться.

                        Но все равно спасибо за совет.

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

                          Решено

                          _net1="192.168.1"
                          ttime=/usr/bin/rsh localhost sh ip acco | grep 'Accounting data saved' | awk '{print ($4)}'
                          rsh localhost clear ip accounting

                          #Создаем файл с соответствием ip->host
                          cat /dev/null > iptohost.sed
                          grep $net1 /etc/hosts | awk '{print("s/",$1,"/",$2,"/g")}' | sed 's/ //g' | sed 1d >> iptohost.sed

                          Меняем в выводе IP на host

                          rsh localhost show ip accounting checkpoint | grep $net1 | sed -f iptohost.sed | awk -v vtime=$ttime '{print (vtime".000",1,$2,"TCP_MISS/200",$4,"CONNECT",$1":"$5,"-","DIRECT/"$1,"-")}' >> /var/squid/logs/access.log
                          chown proxy:proxy /var/squid/logs/access.log_

                          Важно избегать коллизий такого рода - если в hosts у gateway 192.168.1.1, а у IphoneMashutka 192.168.1.100, то после отработки скрипта мы будем иметь gateway и gateway00.
                          Во избежании этого в скрипте я удаляю первую строку (sed 1d), т.к. именно в ней gateway и раздача dhcpd идет с 192.168.1.26.

                          В результате в лог squid-a и самим сквидом штатно  и ipcadom через скрипт пишется в качестве имени пользователя его hostname.

                          1 Reply Last reply Reply Quote 0
                          • werterW
                            werter
                            last edited by

                            О, вы молодец! Решили все-таки  ;)

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

                              Подскажите следующее если тема жива, пробую настроить по данному скрипту но ничего не получается, проблема в том что у меня DNCP и DNS сервера на контролере домена отдельно на машине и в /etc/hosts у меня только локальные имена pfsense.

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