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

    Проблема с конфигурационным файлом SQUID

    Scheduled Pinned Locked Moved Russian
    7 Posts 3 Posters 2.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.
    • A
      akishin
      last edited by

      Добрый день!

      Может кто сталкивался:

      2.0.1-RELEASE (i386) built on Mon Dec 12 17:53:52 EST 2011 FreeBSD 8.1-RELEASE-p6

      squid 2.7.9 pkg v.4.3.1

      Настраиваю SQUID: Proxy server: Authentication - вкладка Auth Settings

      Прописываю 4 компьютера которые должны ходить через SQUID без авторизации (каждый с новой строки): Subnets that don't need authentication

      172.20.1.215/32
      172.20.1.190/32
      172.20.1.126/32
      172.20.1.76/32

      Жмем кнопку Save.

      По факту: некоторые из прописанных компьютеров запрашивают логин и пароль на доступ к SQUID.

      Смотрим squid.conf

      acl noauth  src 172.20.1.215/32^M 172.20.1.190/32^M 172.20.1.126/32^M 172.20.1.76/32

      Откуда то взялись ^M . Убираю в редакторе прямо на хосте. Все начинает правильно работать.
      Стоит что либо сделать на pfSense: обновить у кого либо настройки или перегрузиться. Конфиг восстанавливается с ^M

      Смотрим файл /cf/conf/config.xml

      <no_auth_hosts>MTcyLjIwLjEuMjE1LzMyDQoxNzIuMjAuMS4xOTAvMzINCjE3Mi4yMC4xLjEyNi8zMg0KMTcyLjIwLjEuNzYvMzI=</no_auth_hosts>

      Что пробовал: сделал <no_auth_hosts>(удалил строку в config.xml), удалил acl noauth  src из конфига squid.conf. Через веб-интерфейс добавил по новый адреса. В конфиг SQUID лезут ^M

      Во всем конфиге эти символы только в этой строке. Пробовал разными браузерами.

      Кто нибудь может подсказать как это побороть?</no_auth_hosts>

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

        Попробуйте установить squid 3-ий , предварительно удалив 2-ой.

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

          Удалил старый SQUID через вебинтерфейс
          Поставил 3 версию SQUID

          Проблема та же.
          Если один адрес то все нормально, второй и последющие добавляю и получаю в конфиге следующее:

          acl noauth src 172.20.1.76/32^M 172.20.1.215/32

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

            Возможно это баг в squid.inc

            SquidGuardDoc EN  RU Tutorial
            Localization ru_PFSense

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

              И что делать? В squid.inc нашел кусок кода:

              $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
                              if (!empty($noauth)) {
                                      $conf .= "acl noauth src $noauth\n";
                                      $valid_acls[] = 'noauth';
                              }

              Вроде все правильно.

              ЗЫ: на всякий случай на виртуально машине развернул чистый pfsense … в нем такая же проблема.

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

                Вчера вот не смог найти ответ на эту проблему. Сегодня как то вот нашлось :)

                http://forum.pfsense.org/index.php/topic,38961.0.html

                Incorrect behavior of the configurator creates a list noaut (Subnets that don't need authentication) wrong.

                From comment "Enter each subnet or IP address on a new line (in CIDR format, e.g.: 10.5.0.0/16, 192.168.1.50/32) that should not be asked for authentication to access the proxy."
                squid.inc generated squid.conf
                …
                acl noauth src  subnet/mask
                subnet/mask
                subnet/mask
                ......

                Need to work
                acl noauth src  subnet/mask subnet/mask subnet/mask ...

                Please fill in the source package chenge squid.inc
                Code:

                .....
                else {
                // $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
                // if (!empty($noauth)) {
                // $conf .= "acl noauth src $noauth\n";
                // $valid_acls[] = 'noauth';

                // Corrector
                $noauth = explode("\n", base64_decode($settings['no_auth_hosts']));
                $noauthed = "";
                foreach ($noauth as $subnet) {
                if(!empty($subnet)) {
                $subnet = trim($subnet);
                $noauthed .= "$subnet ";
                }
                }

                if (!empty($noauthed)) {
                $conf .= "acl noauth src $noauthed\n";
                $valid_acls[] = 'noauth';
                }
                // EndCorrector
                }
                …..

                Note a very important work at least for me since that moment gave me a lot of inconvenience since the version 1.2.3 and version 2.0 is preserved.

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

                  Это

                  That "^M" is control-M, which is a carriage return, and is not needed in Unix file systems.

                  Они один "\n" прессуют, хотя там везде "\r\n"

                  $noauth = implode(' ', explode("\n", base64_decode($settings['no_auth_hosts'])));
                  

                  можно так попробовать

                  $noauth = implode(' ', explode("\r\n", base64_decode($settings['no_auth_hosts'])));
                  

                  или так

                  
                  $noauth = base64_decode($settings['no_auth_hosts']);
                  $noauth = str_replace("\r\n", " ", $noauth);
                  
                  

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

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