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

    Автоматическое отключение пользователе&

    Scheduled Pinned Locked Moved Russian
    19 Posts 8 Posters 12.2k 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.
    • C
      Clista
      last edited by

      Извините, что не сразу ответил

      пробовал
      open(FF,"> /usr/local/squid/blocked_users");
      open(FF,"> /usr/local/etc/squid/blocked_users");

      теперь выдает такие ошибки

      [2.0-RC2][root@pfsense.localdomain]/root(1): perl /usr/local/etc/squid/ter.pl
      String found where operator expected at /usr/local/etc/squid/ter.pl line 44, near "print FF (""
        (Might be a runaway multi-line "" string starting on line 41)
              (Missing semicolon on previous line?)
      Backslash found where operator expected at /usr/local/etc/squid/ter.pl line 44, near "$user\"
              (Missing operator before \?)
      String found where operator expected at /usr/local/etc/squid/ter.pl line 49, near "printf(""
        (Might be a runaway multi-line "" string starting on line 44)
              (Missing semicolon on previous line?)
      syntax error at /usr/local/etc/squid/ter.pl line 41, near "/usr/local"
      Unmatched right curly bracket at /usr/local/etc/squid/ter.pl line 54, at end of line
      syntax error at /usr/local/etc/squid/ter.pl line 54, near "}"
      Execution of /usr/local/etc/squid/ter.pl aborted due to compilation errors.
      
      

      44я строка соответственно
        print FF ("$user\n") if ($h{$user}{size} > $tt{$user}{limit});
      как понимаю он ругается на ввод информации в файл /usr/local/etc/squid/limit
      файлу я на всякий случай присвоил 777 права

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

        c.35-40

          open FF,"  while (<ff>) {
            ($user,$limit)=split;
            $tt{$user}{limit}=$limit;
          } 
          close FF;</ff>
        

        SquidGuardDoc EN  RU Tutorial
        Localization ru_PFSense

        1 Reply Last reply Reply Quote 0
        • C
          Clista
          last edited by

          @dvserg:

          c.35-40

            open FF,"  while (<ff>) {
              ($user,$limit)=split;
              $tt{$user}{limit}=$limit;
            } 
            close FF;</ff>
          

          спасибо тебе о великий гуру пфсенса  ;)
          с этим изменением скрипт запускается
          но вроде бы в файл limit всё равно пользователи не добавляются =\ поковыряюсь пока ещё со скриптом

          только не сердитесь, тут велез другой вопрос, который я задавал ранее
          о возможности блокировки пользователей по ипу
          этой строчкой баняться только учетные записи
          _acl bl_users proxy_auth_regex -i '/usr/local/squid/blocked_users'_к сожалению инфы по настройке асл для фряхи я ещё не нашел (но сейчас продолжаю поиск)
          или подскажите какой каким параметром заменить proxy_auth_regex, чтобы блокировался ип?

          1 Reply Last reply Reply Quote 0
          • C
            Clista
            last edited by

            @Clista:

            этой строчкой баняться только учетные записи
            _acl bl_users proxy_auth_regex -i '/usr/local/squid/blocked_users'_к сожалению инфы по настройке асл для фряхи я ещё не нашел (но сейчас продолжаю поиск)
            или подскажите какой каким параметром заменить proxy_auth_regex, чтобы блокировался ип?

            url_regex верно?
            ипы я прописываю вида 192.168.0.х/32

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

              В сквиде есть опция

              acl banned_hosts src "/var/squid/acl/banned_hosts.acl"
              

              содержит

              10.10.10.10
              10.100.2.100

              Только опция появляется, если что-то было добавлено в  Proxy server: Access control  > Banned host addresses

              Можно в опции настроек ГУИ добавить фиктивный адрес и потом спокойно использовать указанный файл.

              SquidGuardDoc EN  RU Tutorial
              Localization ru_PFSense

              1 Reply Last reply Reply Quote 0
              • C
                Clista
                last edited by

                ух половину проблемы решили) с такой командой все баняться на отличненько  ;D
                acl bl_users src "/usr/local/squid/blocked_users"
                http_access deny bl_users

                пойду добивать, почему пользователи не добавляются в файл blocked_users

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

                  @Clista:

                  ух половину проблемы решили) с такой командой все баняться на отличненько  ;D
                  acl bl_users src "/usr/local/squid/blocked_users"
                  http_access deny bl_users

                  пойду добивать, почему пользователи не добавляются в файл blocked_users

                  Попробуй сквид погасить - может он держит файл.

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

                  1 Reply Last reply Reply Quote 0
                  • C
                    Clista
                    last edited by

                    сейчас отключены хавп, сквид и сквидгуард

                    результ прежний =(

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

                      @Clista:

                      сейчас отключены хавп, сквид и сквидгуард

                      результ прежний =(

                      Какие разрешения на файл?

                      SquidGuardDoc EN  RU Tutorial
                      Localization ru_PFSense

                      1 Reply Last reply Reply Quote 0
                      • C
                        Clista
                        last edited by

                        пробовал развные, включая 777

                        1 Reply Last reply Reply Quote 0
                        • P
                          PlanB
                          last edited by

                          Если нет необходимости вести лог трафика, а нужно лишь контролировать его лимит, то лучше использовать Captive Portal + Radius.
                          Правда, по умолчанию FreeRadius в pfSense не умеет считать трафик, но с помощью командной строки и правки пары конфигурационных файлов его можно этому научить.

                          Вместо CP можно использовать PPPoE или PPTP. Причём лучше второе.

                          Вариант с радиусом позволяет контролировать весь трафик, а не только тот, который проходит через сквид.

                          Если кому интересно, напишу подробнее, что нужно править в конфигурационных файлах.

                          Я реализовывал этот вариант на базе 2.0 RC1, но в промышленную эксплуатацию в нашей компании он не пошёл, так как в этом случае не ведётся логирование, т.е. нельзя узнать кто на что этот трафик потратил.
                          Можно конечно использовать в дополнение к радиусу что-то типа ntop, но во-первых он у меня не заработал (какие-то там библиотеки кривые), а во-вторых железо слабовато (PF стоит на ALIX).

                          1 Reply Last reply Reply Quote 0
                          • V
                            vit2002
                            last edited by

                            @PlanB:

                            Если нет необходимости вести лог трафика, а нужно лишь контролировать его лимит, то лучше использовать Captive Portal + Radius.
                            Правда, по умолчанию FreeRadius в pfSense не умеет считать трафик, но с помощью командной строки и правки пары конфигурационных файлов его можно этому научить.

                            Вместо CP можно использовать PPPoE или PPTP. Причём лучше второе.

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

                            Если кому интересно, напишу подробнее, что нужно править в конфигурационных файлах.

                            Я реализовывал этот вариант на базе 2.0 RC1, но в промышленную эксплуатацию в нашей компании он не пошёл, так как в этом случае не ведётся логирование, т.е. нельзя узнать кто на что этот трафик потратил.
                            Можно конечно использовать что-то типа nmap, но во-первых он у меня не заработал (какие-то там библиотеки кривые), а во-вторых железо слабовато (PF стоит на ALIX).

                            если можно расскажи по подробней плиз очень интересно

                            1 Reply Last reply Reply Quote 0
                            • E
                              Eugene
                              last edited by

                              @PlanB:

                              Правда, по умолчанию FreeRadius в pfSense не умеет считать трафик, но с помощью командной строки и правки пары конфигурационных файлов его можно этому научить.

                              Считает вроде без шаманства? что за правки? если не секрет -)

                              Отредактировано: Считает вроде без шаманства. что за правки? если не секрет -)

                              http://ru.doc.pfsense.org

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

                                Отлично всё работает. Как уже говорилось, для блокирования по ip забиваем через гуи фиктивный адрес, а потом используем файл /var/squid/acl/banned_hosts.acl
                                Нюансы:

                                1. нужно пропускать первые 2 строки в файле .total:
                                      $totaluser=<ff>;chomp $totaluser;$totaluser=~s/^user: //;
                                      $totalsize=<ff>;chomp $totalsize;$totalsize=~s/^size: //;
                                  while (<ff>) {
                                    ($user, $size, $hit) = split;
                                    $h{$user}{size}+=$size;
                                    $h{$user}{hit}+=$hit;

                                2. Если пока никто не забанен, то получается пустой файл, поэтому через скрипт прописываем тот же фиктивный ip в файл banned_hosts.acl:
                                    open FF,">","/var/squid/acl/banned_hosts.acl";
                                    print FF ("фиктивный ip\n");
                                  foreach $user (sort {$h{$b}{size}<=>$h{$a}{size}} keys    %h) {
                                    print FF ("$user\n") if ($h{$user}{size} > $tt{$user}{limit});

                                3. Так как скрипт пользуется результатами работы скрипта /usr/local/www/lightsquid/lightparser.pl то более логично дописать весь этот функционал именно в него.</ff></ff></ff>

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