Как установить SAMS2 и Squid на Ubuntu 12.04 LTS с авторизацией через AD

В качестве базы данных будем использовать MySQL. В качестве веб-сервера nginx + php5-fpm.

  1. Устанавливаем все необходимые для нас пакеты: sudo apt-get install build-essential squid3 nginx php5-fpm libpcre3-dev libpcre3 libpcre++-dev libpcre++0 libpcrecpp0 mysql-server libmysqlclient-dev php5-ldap libfpdf-tpl-php libfpdi-php autoconf automake libtool doxygen libldap2-dev php5-gd php5-mysql krb5-user libkrb5-3 ldap-utils samba winbind samba-common-bin
  2. Получаем исходники SAMS2: wget https://github.com/PavelVinogradov/sams2/archive/master.zip
    Распаковываем: unzip master.zip
  3. Собираем скрипт конфигурации: make -f Makefile.cvs
  4. ./configure
    По окончании работы скрипта вы должны увидеть следующее сообщение:Use MySQL API: yes
    Use PostgreSQL API: no
    Use unixODBC API: no
    Use LDAP API: yes
    Using pcre: pcre
    Use dynamic plugin: yes
  5. Файл libtool, который генерирует скрипт, нуждается в патче. Набираем «patch -l» и вставляем следующий текст. В конце нужно два раза нажать Ctrl-D, чтобы он понял, что это конец файла.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    --- libtool.old 2012-02-14 17:34:10.363994833 +0400
    +++ libtool     2012-02-14 15:55:27.142358890 +0400
    @@ -5986,7 +5986,8 @@
            case $dir in
            [\\/]* | [A-Za-z]:[\\/]*) ;;
            *)
    -         absdir=`cd "$dir" && pwd`
    +#        absdir=`cd "$dir" && pwd`
    +         absdir="/usr/lib"
              test -z "$absdir" && \
                func_fatal_error "cannot determine absolute directory name of \`$dir'"
              dir="$absdir"
  6. Если у вас 64-битная система, то файл src/proxy.h нуждается в исправлении, иначе sams2daemon будет падать с ошибкой сегментирования после «mysqlquery.cpp:437 [0x1c1f910->fetch] ok». Для этого открываем src/proxy.h и дописываем ко всем enum тип long следующим образом:
    1
    2
    3
    4
    
    enum ParserType: long
    {
    ...
    };

    (спасибо за этот метод решения проблемы с 64 битами Владимиру)

  7. Собираем SAMS2: make
  8. Устанавлиаваем: sudo make install
  9. Меняем владельца директории sams2 на www-data: sudo chown www-data:www-data -R /usr/local/share/sams2/
  10. Конфигурируем nginx следующим образом:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    server {
            listen   80;
     
     location / {
            root /usr/local/share/sams2;
            index index.php;
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php?q=$1 last;
                break;
            }
        }
     
        error_page 404 /index.php;
     
        location ~ .php$ {
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
     
            fastcgi_param SCRIPT_FILENAME /usr/local/share/sams2/$fastcgi_script_name;
            fastcgi_param QUERY_STRING $query_string;
            fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
        }
     
    }
  11. Заходим на http://localhost/setup.php там всё делаем по инструкции
  12. Записываем в файл /usr/local/etc/sams2.conf параметры подключения к базе данных:
    имя пользователя для подключения к базе данных
    DB_USER=username
    пароль
    DB_PASSWORD=userpassword
    Также в этом файле нужно поменять пути к squid:
    SQUIDROOTDIR=/etc/squid3
    SQUIDLOGDIR=/var/log/squid3
  13. Делаем symlink (иначе sams не будет работать): sudo ln -s /usr/sbin/squid3 /usr/sbin/squid
  14. Копируем из папки с исходниками скрипт для init.d: sudo cp debian/init.d /etc/init.d/sams2daemon
  15. Даём права на исполнение: sudo chmod a+x /etc/init.d/sams2daemon
  16. Редактируем скрипт /etc/init.d/sams2daemon
    Нужно прописать правильный путь к конфигу sams:
    SAMSPATH=`cat /usr/local/etc/sams2.conf | grep SAMSPATH | tr «SAMSPATH=» «\0″`

    А также включить его:
    SAMS_ENABLE=true

  17. Запускаем: sudo /etc/init.d/sams2daemon start
  18. Проверяем, что запустился:$ ps aux | grep sams
    root 5334 0.0 0.2 22908 2520 pts/0 S 14:27 0:00 sams2daemon

    Если такого процесса нет, значит что-то пошло не так. Ошибки ищите в syslog.

  19. Заходим в админку sams (http://localhost/), стандартные логин и пароль admin и qwerty. Там всё настраиваем по вкусу, настройки достаточно простые, описывать их здесь не буду.
  20. Теперь нужно подключить к сквиду ntlm и kerberos. Это можно сделать по инструкции с сайта сквида: http://wiki.squid-cache.org/ConfigExamples/Authenticate/WindowsActiveDirectory
    Единственное — пункт Kerberos лучше делать иначе, потому что с msktutil лично у меня ничего не получилось:
  21. Вместо того, чтобы мучиться с msktutil делаем всё то же самое из-под Windows на доменном контроллере.
    1. создаём учётную запись компьютера в AD (например proxyserver)
    2. запускаем терминал с правами администратора
    3. setspn -A HTTP/squidproxy.example.local EXAMPLE\proxyserver
    4. 1
      2
      3
      4
      5
      6
      7
      
      ktpass -out c:\PROXY.keytab
      -princ HTTP/squidproxy.example.local@EXAMPLE.LOCAL
      -mapUser EXAMPLE\proxyserver
      -mapOp set
      -pass was1edu
      -crypto RC4-HMAC-NT
      -pType KRB5_NT_PRINCIPAL
    5. Копируем PROXY.keytab на сервер прокси в директорию /etc/squid3/

Всё, squid и sams должны работать и прозрачно аутентифицировать пользователей через AD.

Оставите комментарий ?

338 Комментарии。

  1. «Конфигурируем nginx следующим образом»
    Не совсем понятно куда прописывать строки? в /etc/nginx/nginx.conf или в /etc/nginx/conf.d/sams2.conf
    А если еще работает apache, то как быть?

    • 1) В общем-то всё равно, культурней конечно 2й вариант.
      2) Вариантов 2: настроить через apache (инструкций в интернете полно) или настроить nginx на другой порт (заменить «listen 80» на «listen любой-другой-свободный-порт-например-8080»)

  2. Сделал,- выдает
    ….
    ../libtool: line 6001: /usr/lib: Is a directory
    libtool: link: cannot determine absolute directory name of `no’
    ..
    как быть?

    • А пункт 5 вы сделали, пропатчили скрипт? Судя по всему ошибка там. Читайте внимательнее.

      • ну я открыл его нано, нашел строки переписал и сохранил. Что такое комманда «pacth -l» не знаю, и как ее юзать тоже.
        Извините с линуксой в открытую столкнулся совсем недавно.

        • Поясняю: нужно удалить строку
          absdir=`cd "$dir" && pwd`
          и вставить вместо неё
          absdir="/usr/lib"

          • ну я так и сделал, только с помощю текстового редактора на не «patch -l», после чего он мне и выдает то очем я писал.

            • Вывод “/usr/lib: Is a directory” означает, что команда absdir=`cd “$dir” && pwd` всё-таки выполнилась. По крайней мере у меня так.

              • Тогда расскажите пожалуйста по подробнее, как вы патчили, какой для этого пакет нужен?
                Возможно при использовании «nano» он не воспринимает изменений?

                • Я патчил вот как написано в инструкции: запускаем в консоли patch -l, вставляем туда указанный дифф и два раза жмём ктрл+D.

                  Но это неважно, поскольку через нано точно так же должно работать. Возможно вы просто не ту строчку меняете, а другую похожую.

  3. Прошу помощи. Ламетский вопрос, конечно.
    На этапе установки базы данных через веб-морду sams вылазит ошибка:

    Invalid query: Access denied for user ‘socadm’@’localhost’ (using password: YES)

    Как решить проблему?

  4. Мануал хороший, спасибо большое автору. Есть вопрос, как можно сделать, чтобы sams2daemon работал с postgresql. Сколько я не бился так и не удалось завести. Не могу найти нужный пакет, чтобы пересобрать sams2 с поддержкой postgresql.
    Вывод ./configure :
    Use MySQL API: yes
    Use PostgreSQL API: no
    Use unixODBC API: no
    Use LDAP API: yes
    Using pcre: pcre
    Use dynamic plugin: yes

    Как сделать Use PostgreSQL API: yes?

  5. Спасибо большое. Вы мне очень помогли. Жаль что у меня не хватило квалификации разобраться самому. 🙁 Я установил postgresql-server-dev-9.1. А вот переконфигурировать с параметром —with-pq-includes=/usr/include/postgresql не додумался. Еще один вопрос, какую литературу почитать, чтобы в дальнейшем самому решать проблемы подобные этой?

    • По правде сказать не знаю, лично я вроде никакой литературы не читал 🙄

      Просто увидел в выдаче ./configure, что он не может найти libpq-fe.h, посмотрел в ./configure —help что есть ключ –with-pq-includes=, посмотрел где находится у меня libpq-fe.h ну и задал ключ.

  6. после перезагрузки сервера перестала работать админка
    «can’t open sams config file /usr/local/etc/sams2.conf»

  7. А у меня, не стартует sams2deamon…
    по sams2daemon —config=/usr/local/etc/sams2.conf —no-fork —debug=10 —logger=console

    samsdaemon[15527]: mysqlquery.cpp:62 [0x1c1f910->sendQueryDirect] select s_auth, s_checkdns, s_realsize, s_kbsize, s_endvalue, s_usedomain, s_defaultdomain, s_parser, s_parser_time, s_autouser, s_autotpl, s_autogrp, s_squidbase, s_redirector, s_denied_to, s_redirect_to, s_adminaddr, s_bigd, s_bigu, s_count_clean, s_delaypool, s_separator from proxy where s_proxy_id=1
    samsdaemon[15527]: mysqlquery.cpp:84 [0x1c1f910->sendQueryDirect] mysql_store_result(0x1c1ec40)=0x1c3b280
    samsdaemon[15527]: mysqlquery.cpp:388 [0x1c1f910->fetch] mysql_fetch_row(0x1c3b280)=0x1c38808
    samsdaemon[15527]: mysqlquery.cpp:437 [0x1c1f910->fetch] ok
    Ошибка сегментирования (core dumped)

  8. А можно вас попросить выложить архив той версии, что вы слили из SVN? видимо теперь там что-то другое и оно работать не очень хочет… Демон просто не поднимается, падает сразу после чтения из базы своего конфига…

  9. 10. Заходим на http://localhost/setup.php там всё делаем по инструкции

    Если делаю на ubuntu server, то как быть? С удаленной машины http:///setup.php не открывается
    🙁

    • Должен открываться с удалённой. Вы как туда пытаетесь зайти?

      • Проблема решилась после ребута.

        P. S. Появилась другая.
        Команда на реконфигурирование Squid не получена демоном проверьте, запущен ли samsdaemon.

        Самс запущен.

        • Точно запущен? Что выводит ps aux | grep sams? В списке процессов есть sams2daemon?

          • root 2392 0.0 0.0 10628 920 pts/3 S+ 16:32 0:00 grep —color=auto sams

            странно но в списке процессов sams2daemon нет. Куда копать?

          • root@pluto:/home/sysadmin# /etc/init.d/sams2daemon start
            * Starting sams daemon sams [ OK ]
            root@pluto:/home/sysadmin#

            демон не появляется.

            • Должен писать ошибки в syslog

              Вообще тут например у товарища выше была проблема, что почему-то SAMS отказывался работать на 64-битной системе. У вас какая архитектура?

              • как раз x64 🙁

                Сейчас тестирую на vmware, но на платформе на которой планирую запустить сервер установлено 8Г памяти. (поэтому х64)

                Нигде не попадалось решения этой проблемы?

                • Я сам не пробовал на 64 запускать, поэтому у меня своего мнения работает или нет, нету.

                  Что в syslog-то? Может какая-то другая ошибка.

                  • Nov 12 17:07:50 pluto kernel: [ 195.236710] sams2daemon[1996]: segfault at ffffffffffffffe8 ip 00007fa5c348ee8c sp 00007fffddc83600 error 4 in libstdc++.so.6.0.16[7fa5c33f0000+e2000]

                    • Попробуйте запустить так, чтобы с подробностями и в консоль, что выдаст?

                      sams2daemon –config=/usr/local/etc/sams2.conf –no-fork –debug=10 –logger=console

                    • Nov 13 09:27:45 pluto kernel: [ 147.580160] sams2daemon[2217]: segfault at ffffffffffffffe8 ip 00007fbf06a63e8c sp 00007fff17bebbc0 error 4 in libstdc++.so.6.0.16[7fbf069c5000+e2000]

                      в syslog тоже самое, в консоль выдает пустоту

                    • Ну симптомы конечно похожи на нежелание работать под x64.

                      А что происходит-то, если запускаете sams2daemon –config=/usr/local/etc/sams2.conf –no-fork –debug=10 –logger=console? Ничего?

                    • да ничего.
                      а в syslog записывается та же ошибка.

                    • А, похоже в какой-то момент два дефиса заменились на тире. Я имел в виду вот такую команду: sams2daemon --config=/usr/local/etc/sams2.conf --no-fork --debug=10 --logger=console

                      Попробуй запустить её, должна писать в консоль.

                      Запускать желательно из-под рута.

                    • root@pluto:/home/sysadmin# sams2daemon —config=/usr/local/etc/sams2.conf —no-fork —debug=10 —logger=console

                      [ STRIP ]
                      samsdaemon[1925]: mysqlquery.cpp:62 [0x1a94910->sendQueryDirect] select s_auth, s_checkdns, s_realsize, s_kbsize, s_endvalue, s_usedomain, s_defaultdomain, s_parser, s_parser_time, s_autouser, s_autotpl, s_autogrp, s_squidbase, s_redirector, s_denied_to, s_redirect_to, s_adminaddr, s_bigd, s_bigu, s_count_clean, s_delaypool, s_separator from proxy where s_proxy_id=1
                      samsdaemon[1925]: mysqlquery.cpp:84 [0x1a94910->sendQueryDirect] mysql_store_result(0x1a93c40)=0x1ab0280
                      samsdaemon[1925]: mysqlquery.cpp:388 [0x1a94910->fetch] mysql_fetch_row(0x1ab0280)=0x1aad808
                      samsdaemon[1925]: mysqlquery.cpp:437 [0x1a94910->fetch] ok
                      Ошибка сегментирования (core dumped)

                    • Да, ошибка один-в-один такая же, как у предыдущего комментатора, который пробовал на x64 запускать. Похоже что дело именно в этом.

                    • Если найдёте, как решить проблему — пожалуйста, напишите мне, мне будет очень интересно.

        • сейчас тестирую на 32-х битной, полет нормальный.
          единственное — при превышении лимита пользователя, запрашивает логин/пароль. Нет рецепта, чтобы просто блокировал?

          • Не знаю, я лимитами не пользовался, мне нужно было для блокировки сайтов и подсчёта статистики.

          • Решение казалось простым как топор.

            Создать acl с сылкой на заблокированных в самсе юзеров.
            Запретить этому acl доступ до запретов самса.

            acl bad_user proxy_auth «/etc/squid/disabled_id.sams
            acl _sams_default proxy_auth «/etc/squid/default.sams»
            acl _sams_default_time time MTWHFAS 00:00-23:00
            acl _sams_disabled_id proxy_auth «/etc/squid/disabled_id.sams»

            http_access deny bad_user all
            http_access allow _sams_default _sams_default_time
            http_access deny _sams_disabled_id

            • А разве в SAMS2 acl в файлах?
              У меня лично они выглядят так (domain.local — локальный домен,):

              acl Sams2Time1 time MTWHFAS 00:00-23:59
              acl Sams2BlockedUsers proxy_auth TestUs.ER@DOMAIN.LOCAL
              acl Sams2Template5 proxy_auth UserName@DOMAIN.LOCAL
              acl Sams2LocalName dstdomain domain.local

              http_access allow Sams2LocalName
              http_access deny Sams2BlockedUsers
              http_access allow Sams2Template5 Sams2Time1

              И правила SAMS-а всегда идут первыми. И потому такое решение не подходит:
              Для меня надо как-то заменить эту строку:
              http_access deny Sams2BlockedUsers
              на эту:
              http_access deny Sams2BlockedUsers !Sams2LocalName

  10. Вывод ./configure :
    Use MySQL API: yes
    Use PostgreSQL API: yes
    Use unixODBC API: no
    Use LDAP API: no
    Using pcre: pcre
    Use dynamic plugin: yes

    Как сделать Use LDAP API: yes?
    P.S. Я уже установил ldap-utils и slapd, не помогает.

  11. Василий, подскажите плиз, новичку.
    Поставил на Debian 6.0.6 i386 SAMS2. Собирал из пакетов. Как воткнуть в автозапуск? Запускаю руками sams2daemon. В init.d демон отсутствует. Скопировал руками cp /usr/local/bin/sams2daemon /etc/init.d
    Дал права chmod o+x /etc/init.d/sams2daemon. Но при рестарте sams таки не стартует.

    • а если вы делаете sudo /etc/init.d/sams2daemon start, он стартует? Подозреваю, что дело в этом. Вы исправили этот файл согласно пункту 15 инструкции?

      • Ругается на отсутствие sams2daemon в /etc/init.d/
        Я выложил мануал по которому шлюз ставлю уже более года. Думаю ошибка во время установки.
        http://forum.mini-server.ru/viewtopic.php?f=8&t=470&p=3566#p3566
        Не подскажете где я ошибся?

        • Ой, сорри, не происходит ничего. Пытаюсь реконфигурировать сквид, говорит гляди на демона. Запускаю демона руками — всё гуд. То есть присутствие копии демона (с прикрученными правами) не решает проблему. Думаю без скрипта не обойтись. Вопрос — где б его взять?

          • Если ничего не происходит — значит наверняка падает с какой-то ошибкой. Сразу после (неудачного) запуска сделайте sudo tail /var/log/syslog, по идее там должны быть какие-то сообщения от демона.

  12. Вы не пробовали видео на эту тему сделать (захват с экрана во время установки)? Это сняло бы множество вопросов.

    • Я ужасно не люблю смотреть чужие видео и каждый раз когда вижу, что кто-то сделал видео вместо текстовой инструкции, бешусь и тут же закрываю страницу. 🙂

      Вообще у меня тут всё расписано подробно, буквально по команде в консоль, в видео вы бы ничего дополнительно не увидели.

      • Инструкция просто замечательная, но для тех кто уже поднаторел в UNIX. Копипастом по ней не получится. Есть пара мест где нужно думать, а если нет опыта, то думать бесполезно. А вот видео помогло бы начинающим очень сильно, там думать не надо, там нужно смотреть и учиться.
        Думаю не только я был бы признателен Вам за сие чудо.

  13. ❓ Василий делаю по вашей инструкции. ставлю на
    Ubuntu 10.04.4 i386
    Затык сразу же…
    :~/sams2-read-only# make -f Makefile.cvs
    aclocal
    make: aclocal: Команда не найдена
    make: *** [all] Ошибка 127

    Кто то писал, что в svn уже нечто другое лежит. Может выложите то что у вас… спасите! ❗

    • Во-первых, у меня инструкция для Ubuntu 12.04, а не 10.04

      Во-вторых, вы выполнили пункт 1, который устанавливает необходимые для сборки пакеты?

      • Выбор ОС продиктован, тем что кроме SAMS туда еще netams ставить планируется, а он в линуксе работает только с ядрами до 2.6.13, в 10.04 всё еще можно откатить назад ядро.

      • то есть кроме контроля по http надо будет и остальной трафик контроллировать, считать и фильтровать, шейпить.
        Если есть достойная альтернатива, подскажите пожалуйста.

  14. Уже сообразил не всё, для постройки поставил, но нарвался на другое… буду использовать Апач.
    «Neither MySQL nor PostgreSQL nor unixODBC API detected. Install at least one of them and run configure again.
    Aborted.»
    Как это нет MySql ?? я поставил LAMP через tasksel
    и в памяти процесс mysqlв есть.

    • Ох ну смотрите пункт 1, пожалуйста! Там перечислены все пакеты, которые нужны для сборки. Это так сложно?

      В вашем случае не хватает libmysqlclient-dev.

      • Я смотрел на эту строку и убрал часть пакетов именно по той причине, что Mysql то уже стоит, ну и зачем мне тогда ставить пакеты со словом sql ??
        Спасибо что подсказали.СОбралось

        Use MySQL API: yes
        Use PostgreSQL API: no
        Use unixODBC API: no
        Use LDAP API: no
        Using pcre: pcrecpp
        Use dynamic plugin: yes
        Правда вместо pcre -pcrecpp почему то.

        А чем можно остальной трафик контроллировать ?

  15. Почему то вот эта строка
    /usr/local/share/sams2/dbclass.php

    $this->result = mysql_query($query,$this->link) or die(«Invalid query: » . mysql_error());
    даёт ошибку при установке setup.php

    Invalid query: Access denied for user ‘www-data’@’localhost’ (using password: NO)

    Если эту строку комментировать то всё идёт дальше переменная $query==SET NAMES utf8… непонятно почему спотыкается запрос.

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

    • Ну он пишет, что не пытается подключиться к базе под именем www-data без пароля. Неудивительно, что у него не получается. Видимо вы неправильные настройки подключения к БД ввели.

      • Неправильно ввел куда ?
        на этапе настройки база только создается и только потом в sams.conf вводятся настройки.

  16. [warn] Useless use of AllowOverride in line 10 of /etc/apache2/conf.d/doc4sams2.conf.
    [warn] Useless use of AllowOverride in line 10 of /etc/apache2/conf.d/sams2.conf.
    apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
    ————
    А это откуда ? А для чего php5-fpm ?

    • Ну так вы же в качестве веб-сервера апач запускаете. А у меня инструкция как nginx запустить. Ничем помочь не могу.

      • 14. пункт sudo chmod o+x /etc/init.d/sams2daemon

        эта команда даст права на выполнение только другим, а root и группа остануться неудел… может всё таки a+x ??
        другие скрипты дают +х всем. и еще внутри самого скрипты зашито имя не sams2daemon, а просто sams2.
        Если не исправить, то start, stop не прокатывает.

        • > может всё таки a+x

          Да, вы правы, это опечатка. Спасибо, исправлю.

        • > имя не sams2daemon, а просто sams2

          Гм, проверил, в моей копии исходников всё в порядке. Разве что есть переменная NAME=»sams», но она используется только для вывода сообщений в логи.

          • 73,74,75 строка

            restart|force-reload)
            /etc/init.d/sams2 stop
            /etc/init.d/sams2 start
            соответственно и скрипт надо обзывать так же….
            а еще там вверху есть такое
            # Should-Start: $named $mysql $squid
            Если зависимость старта от скуля и сквида очевидна, то сервер имен нафиг не нужен… он может быть и на стороннем сервере

  17. Василий, я читал для чего инструкция. самому самсу то всё равно какой вебсервер будет. Главное это скрипты через которые он управляется.
    Но вы же исходя из чего то подбирали состав пакетов который надо было ставить. Вот и интересно исходя из чего ?

    • Ну вы мне скидываете кусок лога апача и спрашиваете «откуда это?». Не знаю откуда, на апач не ставил.

      php5-fpm нужен для работы php через nginx по протоколу FastCGI. Ну то есть вам, если вы используете апач, не нужен.

  18. и это как бы там создавать автоматом юзеров ?? галка поставлена соотв., но как чтобы работало ? а то руками забивать 300 человек неприятно

  19. Заходим на http://localhost/setup.php
    Захожу, пишет 502 Bad Gateway.
    Всё перепробовал, ничего не помогает.

    • Выглядит как будто php5-fpm не запустился. Сделайте ps aux | grep fpm и посмотрите, висят ли его процессы. Если они на месте — значит что-то в конфиге nginx не так.

      • Да, висят. Кстати, вот почему то если я добавляю текст из 9 пункта в nginx.conf то он вообще не стартует. а /etc/nginx/conf.d/sams2.conf вообще не было, я его сам создавал и туда всё запихивал. Может я что не так делаю? Я пока только учусь 😳

        • user www-data;
          worker_processes 4;
          pid /var/run/nginx.pid;

          events {
          worker_connections 768;
          # multi_accept on;
          }

          http {

          ##
          # Basic Settings
          ##

          sendfile on;
          tcp_nopush on;
          tcp_nodelay on;
          keepalive_timeout 65;
          types_hash_max_size 2048;
          # server_tokens off;

          # server_names_hash_bucket_size 64;
          # server_name_in_redirect off;

          include /etc/nginx/mime.types;
          default_type application/octet-stream;

          ##
          # Logging Settings
          ##

          access_log /var/log/nginx/access.log;
          error_log /var/log/nginx/error.log;

          ##
          # Gzip Settings
          ##

          gzip on;
          gzip_disable «msie6»;

          # gzip_vary on;
          # gzip_proxied any;
          # gzip_comp_level 6;
          # gzip_buffers 16 8k;
          # gzip_http_version 1.1;
          # gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

          ##
          # nginx-naxsi config
          ##
          # Uncomment it if you installed nginx-naxsi
          ##

          #include /etc/nginx/naxsi_core.rules;

          ##
          # nginx-passenger config
          ##
          # Uncomment it if you installed nginx-passenger
          ##

          #passenger_root /usr;
          #passenger_ruby /usr/bin/ruby;

          ##
          # Virtual Host Configs
          ##

          include /etc/nginx/conf.d/*.conf;
          include /etc/nginx/sites-enabled/*;

          }

          Вот мой nginx.conf

        • Да, верно, это надо в conf.d/sams2.conf класть, nginx.conf трогать не нужно.

          Что в логах nginx? (/var/log/nginx/error.log)

          • 2013/02/21 11:39:16 [error] 32260#0: *2 connect() failed (111: Connection refus$
            2013/02/21 11:39:17 [error] 32260#0: *2 connect() failed (111: Connection refus$
            2013/02/21 11:44:51 [error] 32260#0: *5 connect() failed (111: Connection refus$
            2013/02/21 11:44:51 [error] 32260#0: *5 connect() failed (111: Connection refus$
            2013/02/21 11:45:58 [error] 1059#0: *1 connect() failed (111: Connection refuse$
            2013/02/21 11:45:58 [error] 1059#0: *1 connect() failed (111: Connection refuse$
            2013/02/21 11:49:59 [error] 1059#0: *5 connect() failed (111: Connection refuse$
            2013/02/21 11:49:59 [error] 1059#0: *5 connect() failed (111: Connection refuse$
            2013/02/21 11:50:06 [error] 1059#0: *5 connect() failed (111: Connection refuse$
            2013/02/21 11:50:06 [error] 1059#0: *5 connect() failed (111: Connection refuse$
            2013/02/21 11:50:16 [error] 1059#0: *11 connect() failed (111: Connection refus$
            2013/02/21 12:52:12 [error] 1059#0: *13 connect() failed (111: Connection refus$
            2013/02/21 12:52:12 [error] 1059#0: *13 connect() failed (111: Connection refus$

  20. Теперь запнулся вот на этом…

    sudo cp debian/init.d /etc/init.d/sams2daemon
    cp: не удалось выполнить stat для «debian/init.d»: Нет такого файла или каталога

  21. Не запускался самс2демон, и тут до меня дошло!
    1. SAMSPATH=`cat /usr/local/etc/sams2.conf | grep SAMSPATH | tr "SAMSPATH=" ""`
    2. #DAEMON=$SAMSPATH/bin/sams2daemon
    DAEMON=/usr/local/bin/sams2daemon

  22. т.е. путь у него не
    /usr/local/etc/sams2daemon
    a
    /usr/local/bin/sams2daemon
    Debian6 stable amd64(squeeze) все работало бы, вот только в автозагрузке порядок запуска sams2daemon почему-то раньше сквид3. Думаю сюда копать! от улилиты sysv-rc-conf мало толку ибо не нашел в ней фичи менять порядок запуска сервисов на всех уровнях. Шайзе!!!

  23. /usr/local/share/sams2/ — не существует
    http://localhost/setup.php — страница не найдена
    /etc/init.d/sams2daemon — не существует
    Короче, зря время потратил! Целый день убил на установку этой хрени по разным докам и инструкциям — толку ноль!

  24. добрый день!
    не подскажете ли что за ошибка в syslog:

    May 15 08:17:37 proxy1 samsdaemon[1519]: ***ERROR: processmanager.cpp:95 Failed
    to open file /var/run/samsdaemon.pid

    Файла samsdaemon.pid в директории нет
    После перезагрузки sams2daemon не запустился, в ручную запустил нормально

    • подозреваю, что у пользователя, из-под которого запускается sams2daemon, нет прав на запись в директорию /var/run/

      • ясно, подскажите тогда новичку, если sams2daemon лежит в папке /etc/init.d, то он должен запускаться автоматом при загрузке системы? потому-что у меня
        при последующих перезагрузках ошибка уже не пишется в лог, но и sams2daemon не запускается автоматом, или его надо вручную запускать?

  25. День добрый!
    Объясните нубу, сначала запнулся на шаге 5, но потом почитал комменты и, вроде бы, решил проблему с помощью редактирования через nano.
    Дальше вылезла ошибка в шаге 9: если я редактровал /etc/nginx/nginx.conf, то ничего не работало, потом создал файл /etc/nginx/conf.d/sams2.conf и вбил в него конфиг, но с ним тоже ниче не работало. Посмотрел логи, там nginx ругался сначала на Unknowk «l» variable и я так понял, что в строке rewrite ^(.*)$ /index.php?q=$1 last; все-таки стоит цифра 1, вместо буквы l.
    Исправил и вылезла новая ошибка Unknown «content_type» variable. Закомментровал эту строчку и setup.php запустился, но вот меня немного волнуют последствия.
    P.S. Дальше буду завтра пробовать.

    • Да, там цифра 1 действительно. Я бы просто советовал вам копировать отсюда, а не пытаться вручную набирать, это будет надёжнее.

      Переменная content_type встроена в nginx и обязана присутствовать ( http://nginx.org/ru/docs/http/ngx_http_core_module.html ). Думаю у вас там тоже опечатка какая-то.

      Теоретически из-за того, что эта строчка закомментирована, могут не загружаться файлы на сервер, но вроде бы в SAMS такой функции нигде и нет, так что можно не волноваться.

  26. Все стало по-английски и комменты куда-то пропали -__-
    В общем у мея вот такая фигня получается на 18-ом шаге.
    http://i48.fastpic.ru/big/2013/0523/85/ef0916999f0947aec3a6946ac231bd85.jpg
    Нажимая на любую кнопку я получаю белый экран и все.
    В логах nginx сыпятся какие-то ошибки на PHP.

    • Мда, действительно, что-то с языками странное случилось, вроде ничего не трогал. Спасибо что сообщили, поправил.

      «Фигня» у вас на скриншоте совершенно правильная, всё ровно так и должно выглядеть. Чтобы зайти в админку нужно нажать на кнопку SAMS Management Interface снизу.

      Если эта кнопка не работает, то напишите, что у вас в логах.

  27. Владимир

    Похоже, я нашёл проблему с 64-х разрядной системой. Она кроется в proxy.h. Там есть определение нескольких полей типа enum. Далее в mysqliquery.cpp в них производится запись через указатели как в (*long). Из-за этого и были ошибки с памятью. Видимо, на 32-х разрядных системах enum занимает 4 байта, как и long.
    Решение — дописать в определения типов «:long» следующим образом (для примера):
    enum ParserType: long
    {
    ...
    };

    • Вы проверили, у вас после этого начинает работать?

      (не хотите отправить это разработчикам SAMS?)

      • Владимир

        Проверил — всё заработало. Разработчику в google+ написал — они вроде переехали на google и старый багтрекер не работает.

      • Попробовал, действительно после этого демон стартует. Примерный порядок действий (в директории с исходниками):
        1. вносим указанное выше изменение в ./src/proxy.h
        2. make
        3. cp -f ./src/sams2daemon /usr/local/bin/sams2daemon

  28. Делал всё по статье — установилось всё
    решил просто проверить работает ли доступ по IP
    добавил пользователя с IP
    но доступ по IP не предоставился
    начал смотреть — squid.conf не переписался
    в error.log nginx ошибки:
    [error] 1143#0: *86 FastCGI sent in stderr: «PHP message: PHP Notice: Undefined variable: adld in /usr/local/share/sams2/src/authtray.php on line 22»
    потом
    Undefined variable: ntlm ..
    Undefined variable: ldap ..
    Undefined variable: ncsa ..

    • Думаю эти ошибки не слишком важны, если приложение пишет, что всё в порядке.

      Когда вы нажимаете «Реконфигурировать Squid», какое выводится сообщение?

  29. да ещё squid.conf не меняется при реконфиге в SAMS2 после изменение настроек

  30. День добрый!
    Столкнулся с проблемой, что sams2 перестал отключать пользователей, выбран редиректор sams. В логах встречается такая ошибка «samsdaemon[3545]: ***ERROR: proxy.cpp:486 Unable to create query.»

    • Что значит «перестал отключать пользователей»?

      • в SAMS web пользователь при достижении лимита, начинает мигать, но не отключается, т.е SAMS показывает что пользователь достиг лимита трафика, но сам его не отключает.
        На счёт баз, думаю как это сделать.

    • Вообще судя по ошибке какая-то проблема с базой данных. Проверьте, что там всё в порядке. Может какая-нибудь таблица слетела или что-то такое.

      • Думаю может дело в правах у пользователя sams2 в базе MySQL. Каке разрешения должны быть у пользователя sams2 в базе MySQL? Это пользователь при помощи которого программа sams рабоатет с базой данных.

        • ну вообще если хоть что-то в SAMS работает, то наверное с правами доступа всё в порядке.

          а раньше-то SAMS отключал пользователей? или никогда не работало?

          • Система squid3 + sams2 всего работает 2 недели. В эти выходные один из пользователей был отлючен корректно автоматически по достижению лимита, сегодня в понедельник обнаружил что других пользователей уже не отключает sams по достижению лимита.
            До этого связка работала кооректно, ошибки в syslog были и ранее,
            samsdaemon[3545]: +++WARNING: Unknown cache result NONE
            Sep 16 14:12:02 samsdaemon[3545]: +++WARNING: Unknown cache result NONE
            Sep 16 14:12:06 samsdaemon[3545]: last message repeated 2 times
            Sep 16 14:38:14 samsdaemon[3545]: ***ERROR: proxy.cpp:486 Unable to create query
            Соответственно в выходные ни чего не делал, последний раз что либо менял это в конфиге squid, увеличил количество url_rewrite_children до 50

  31. Здравствуйте. В конце статьи вы пишите «Всё, squid и sams должны работать и прозрачно аутентифицировать пользователей через AD.» Поясните пожалуйста:

    1. Нужно ли прописывать адрес и порт в настройках программ которым нужен выход в инет?
    2. Как себя будут вести программы в которых нельзя прописать настройки прокси?

    • > 1. Нужно ли прописывать адрес и порт в настройках программ которым нужен выход в инет?

      Да, конечно. Слово «прозрачно» здесь относится к аутентификации, а не к «прокси». Если вам нужно, чтобы настройки указывать было не нужно, вам нужно организовать прозрачный прокси, например с помощью технологии TPROXY, которую тот же Squid поддерживает. Но тогда увы, никакой авторизации в AD. В лучшем случае по IP-адресу. И HTTPS «прозрачно» работать тоже не будет.

      Лучше просто настроить всем прокси через групповую политику.

      > 2. Как себя будут вести программы в которых нельзя прописать настройки прокси?

      Будут ходить мимо прокси, если смогут. Либо не будут работать. Впрочем, таких программ крайне мало. Я вот, честно говоря, с такими вовсе не сталкивался.

  32. Для примера хотя бы SkyDrive. Вот никак немогу я его настроить для работы с прокси. Глобальные настройки он не понимает.

  33. Вопрос про sams и sams2: Есть ли опция, чтобы создать группу в sams и потом портировать её в ad для удобства администрирования, при сохранении правил в sams либо перенести группы из ad в sams, настроить права доступа к ресурсам, и раздовать эту группу в AD различным пользователям? грубо говоря установить зависимость группы в sams= группа AD чтобы в дальнейщем доступ пользователя рулился через группы в ad

    • Вообще правильно тут работать конечно от AD. То есть создать всё как нужно там, а потом переносить в SAMS.

      Затем можно в SAMS в пункте Active Directory настроить синхронизацию групп AD с SAMS, и добавить в cron строчку */15 * * * * root cd /usr/local/share/sams2; php bin/syncfromad

      Теоретически должно работать. Правда я сам не пробовал.

  34. Добрый день! Прошу прощение за тупой вопрос. Как же отредактировать скрипт?
    15.Редактируем скрипт /etc/init.d/sams2daemon
    При открытие при помощи:
    nano /etc/init.d/sams2daemon открывает файл а там куча непонятных символов.

    • Вы что-то делаете не так, скрипт должен открываться нормально, без всяких непонятных символов. Скопировал команду «nano /etc/init.d/sams2daemon» в консоль, у меня всё открылось.

  35. Все получилось, автору большое спасибо!
    Еще есть пару вопросов которые не менее интересны.
    1) Как прикрутить к данной связке проверку сетевого трафика антивирусом.
    2) Как настроить к данной связке squidGuard.
    Спасибо за ответы! 🙂

    • 1) Зависит от антивируса, я так думаю.
      2) В принципе это как-то можно сделать, но зачем, если SAMS — это как раз, по большому счёту, замена для squidguard?

      • 1) Прочитал про (HAVP+ClamAV) на squid, все хорошо только хочется что по серьезней. Слышал про Dr.Web для интернет шлюзов, может дадите какие либо рекомендации. Что у вас используется к примеру 🙄
        2) Я в этом еще пока что новичек, так что попрошу не судить строго. Если использовать SAMS как замену squidguard, то как к нему прекрутить базы shallalist или другие подобные. Не буду же я их в ручную забивать!?
        Спасибо.

      • Спасибо! Разобрался, открывал не тот файл 😛

  36. 1) Прочитал про (HAVP+ClamAV) на squid, все хорошо только хочется что по серьезней. Слышал про Dr.Web для интернет шлюзов, может дадите какие либо рекомендации. Что у вас используется к примеру 🙄
    2) Я в этом еще пока что новичек, так что попрошу не судить строго. Если использовать SAMS как замену squidguard, то как к нему прекрутить базы shallalist или другие подобные. Не буду же я их в ручную забивать!?
    Спасибо.

  37. Народ подскажите плиз из какой папки выполнять команду sudo cp debian/init.d /etc/init.d/sams2daemon в 13 — ом шаге пробовал из /home/proxy2/sams2-read-only/debian выдает cp: не удалось выполнить stat для «debian/init.d»: Нет такого файла или каталога данный вопрос вроде уже поднимался но там нет конкретно ответа

  38. Не работает статистика пользователей 🙁

    • Похоже у вас по тем или иным причинам не запускается или падает sams2daemon. Проверьте, запущен ли он (например ps aux | grep sams2daemon)

      • Пишет что все гууд!!
        А просмотреть статистику не могут пользователи((
        root 1662 0.0 0.2 24924 5228 ? S Oct16 0:15 /usr/local/bin sams2daemon
        admler19 6105 0.0 0.0 4384 808 pts/3 S+ 15:35 0:00 grep —color=auto sams2daemon

  39. Может вы меня не так поняли, про статистику для пользователей что бы они могли себя проверить.
    Так же не могу добиться авторизации, по ip работает не спрашивая паролей, по NCSA не хочет вообще работать. Помогите уже всю голову сломал((

    • Если у тебя squid 3 то по ip заставить работать можно только переписав кусок кода.
      опять же если без редиректора работаем.
      потому что он пишет в конфиг Ip без маски squid такие не принимает.
      по статистике у меня такая же беда.
      заходиш на сайт, видиш юзеров нажимаеш и ничего не меняется ((

  40. Олег, у меня squid3 все делал по вышеуказанному мануалу и
    1) У меня работает авторизация по ip и не надо править руками squid.conf этим sams вполне справляется 🙂
    2) Сейчас задача состоит в том что бы настроить не прозрачную авторизацию, а авторизацию с выпадающим окном с прозьбой вписать логин и пароль.
    Вот и мой вопрос, как это настроить к примеру на NCSA авторизации. Уже что только не делал 😐

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

  42. Да и вот еще один вопрос. У меня в AD все учетки на русском вбиты, если загружаю в самс то получаю кучу безымянных ю зверей 😆
    Знает кто ни будь как это решить ??

    • как у тебя версия сквида ? у меня на 3.3.9 при записи acl src ip без маски нив какую не хотел авторизовывать по ИП и паралельно по керберос пришлось править демона самс что бы при записи в конфиг ставил /32 ну опять же это актуально только для тех кто не пользуется редиректором
      со статистикой засада пока ковыряю понять не могу
      у меня при выборе пользователя пропадает нижний трей и ничего не происходит а у тебя как?

      по поводу NSCA завтра скину что надо сделать
      по кодировке тебе надо поправить строку перекодирования в нужную тебе локаль

      • Олег, версия squid 3.1.19 это в конфиге написано. По поводу статистики так же как у тебя, тоже ковыряю но без успеха 😕

        «по кодировке тебе надо поправить строку перекодирования в нужную тебе локаль» — Расскажи подробнее куда и что поправить, а то хочу себе керберос прикрутить что бы юзврей с AD получить.
        И еще вопрос, как у тебя проходит процесс авторизации пользователей?

        • По кодировке у тебя должны стоять локали в системе это важно, и в логи логин должен попадать правильно, если не попадет кури в эту сторону, если попадает смотри строку в конфиге самса RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout
          смотри, у меня прикручена схема kerberos + ntlm т.е. если у пользователя браузер умеет керберос авторизация по нему если нет то Ntlm
          всем рулит врапер.
          но есть в этом большой косяк все логины должны быть в нижнем регистре заведены в АД, так как у меня их очень много больше 1000 и зеведены все по разному переделывать было лень, я сделал патч для хелпера что бы он логин приводил к нужному регистру, если надо патч дам, вторая проблема которая при такой схеме будет это в ntlm авторизация отдаетя [realm][separator]user а в Kerberos user@REALM и хелпер стрипать домен релм не умеет, решается перекопилированием того что идет в последнем сквиде.
          ну и последний момент авторизации это IP авторизация для тех у кого по тем или иным причинам софт не умеет авторизовываться по логину. Еще такой вопрос у тебя кнопка логофф работат или тоже в error 500 выпадает?

        • Ура я победил авторизацию в веб морде ))
          напиши мне в аську 334278725

  43. Народ, как мне настроить редиректор от sams? что бы при блокировке сайта пользователь выводилось сообщение «доступ запрещен»
    Так же сообщение о лимите трафика.

  44. после перезагрузки sams2daemon не стартует 🙁
    Как быть?
    Прописал в /etc/rc.local перед строкой exit 0:
    sleep 2
    /etc/init.d/sams2daemon start
    не помогает ((

  45. http://code.google.com/p/sams2/issues/detail?id=588
    так же описанный метод не помог ((
    Неужели нету тех кто мог бы помочь!?

    • Да, запускается. Дело в том что samsdaemon пытается запуститься раньше MySQL. Пытался изменять приоритеты загрузки, но толку ноль.
      Пока нашел не самое красивое решение, прописав sleep 10 в самом samsdaemon. Все работает, samsdaemon запускается. Может кто знает еще решения данной задачи?

  46. Система debian wheezy x64, php 5.4.4 (без safe_mode).

    проделал все, как в статье, собрал из svn-репозитория, предварительно пропатчив, как написано, и внеся изменения в файл proxy.h, как писал Владимир

    enum ParserType: long
    {
    ...
    };

    дошел до пункта 10: Заходим на http://myhost/sams2/setup.php там всё делаем по инструкции

    при проверке php-настроек поругался, что safe_mode off. В php 5.4 этой опции нет. Пошел дальше без нее.

    на шаге 3 при создании базы вначале ругался, что запрещен доступ для пользователя «@localhost», хотя я в полях указывал пользователя root для MySQL.
    В тоге создал базу и раздал на нее права вручную:


    mysql -u root -p
    mysql>create database sams2db;
    mysql>create user 'admin'@'localhost' identified by 'qwerty';
    mysql>grant all privileges on sams2db.* to 'admin'@'localhost';

    добавил этого пользователя в настройки файла /usr/local/etc/sams2.conf, после чего у меня при входе на http://myhost/sams2/ отображается стартовая страница sams2, но при этом ни один из пунктов меню слева не активен. Никак не могу заставить работать эту страницу.

    Подскажите, в чем может быть дело?

    Возможно базу надо создавать со всеми таблицами полностью? но я не могу что-то нагуглить, как должна выглядеть база для sams2.

    • А снизу в правом фрейме есть кнопка «SAMS management interface»? На неё нужно нажать и ввести логин и пароль.

      • Василий, я вас благодарю.

        Я 10 миллионов раз тыкал на саму кнопку, но ни разу не додумался ткнуть на надпись рядом с ней, оказывается, активна надпись, а не кнопка. Спасибо, вы спасли мой мозг. Буду пробовать настраивать дальше.
        Разработчику интерфейса начальной страницы SAMS2 — гореть в аду за такой дизайн!

        • Да-да, там интерфейс так себе, требует привыкания. Эти кнопки снизу — совершенно безумное решение.

          • Может быть подскажите и по таким вопросам:
            1. Никак не могу зайти под созданным пользователем (при входе левый фрейм странно ведет себя, отображает список пользователей, но при нажатии на любого из них ничего не происходит). Хотел чтобы пользователи могли входить и смотреть статистику, кто сколько накачал.
            Кроме того, создал пользователя, дал ему все права (изменение, создание пользователей и т. д.), добавил в группу Администраторы. И не могу под ним войти как под админаом (да и как под пользователем тоже). Вобщем, не пускает ни под кем, кроме как под пользователем, под которым создавал базу.
            2. Не пойму логики работы списков доступа. Хочу, чтобы были пользователи, которым доступ вообще не ограничен. Создаю шаблон, в шаблоне не выбираю ни один из списков доступа, соответственно, пользователи, которым назначаю этот шаблон, вообще ни по каким ссылкам ходить не могут. Не понял, как создать шаблон, который бы позоволял пользователю ходить куда угодно, тоесть вообще не ограничивал бы его никак?

            • 1. все дело в неправильной работе usertray.php. Дай почту, я тебе скину исправный код.
              2. У меня все работает исправно, пользователи ограничиваются согласно шаблону.
              У тебя после перезагрузки демон самса нормально стартует?

              • Почта zwserge@mail.ru

                По поводу шаблонов — ограничивать то он ограничивает, а вот какой шаблон нужно задать, чтобы он не ограничивал (имеется в виду, чтобы пускал на любой сайт). Если я в шаблоне не привязываю никакой список доступа вообще, то пользователь, который прилинкован к этому шаблону вообще никуда не может выйти.

                По поводу старта после ребута — проверил сейчас, вообще не стартует. Руками без проблем, а автоматом — нет. Хотя симлинки в rc2.d-rc5.d создались нормально и вроде никаких причин не стартовать у него нет. Пока с этим не разбирался. Чем дальше в лес, тем сильней склоняюсь к тому, чтобы отказаться от использования, что-то слишком много залипух приходится приляпывать, чтобы заставить работать. Я его ставлю исключительно из-за того, чтобы была возможность блокировать пользователей по превышению трафика. Если найду что-нибудь более вменяемое в плане ограничений юзеров по трафику — сразу нафиг этот самс. Проще, прозрачней и надежней все руками прописать в сквиде. Странно, что сквид из коробки еще не умеет резать юзеров по кол-ву трафика.

              • С шаблоном разобрался.

                Оказывается, временной диапазон, заданный по-умолчанию (Full day) — на самом деле создает в сквиде вот такой диапазон:
                acl Sams2Time1 time MTWHFAS 23:00-23:59
                Методом тыка выяснил, что начальный диапазон «сдвинут» на 1 час назад, тоесть, задал в шаблоне (в вебморде) диапазон с 1:00-23:59, после чего в конфиге сквида появился уже прваильный диапазон:
                acl Sams2Time1 time MTWHFAS 00:00-23:59

                Очередная мелочь.

              • Если можно, то все еще хотел бы получить исправленный usertray.php на zwserge@mail.ru.

                Со стартом после перезагрузки есть идеи какие-нибудь?

              • Привет. Киньте и мне изменения для usertray.php, а то у меня уже мозг закипел от этой проблемы. admin@pbs.kiev.ua

              • Привет.
                После правки usertray.php пользователи могут видеть свою статистику. Это хорошо. Но когда пытаешься посмотреть статистику пользователей, САМС предлагает ввести пароль, и можно вводить, можно не вводить, жмешь кнопочку Ok и попадаешь в статистику пользователя (любого). т.е. дыра в безопасности. Проверь пожалуйста у себя, так ли это

                • А в чём кстати проблема с оригинальным usertray? У меня все спокойно логинятся под своими паролями, всё работает как нужно, я ничего в коде не трогал.

                  • Если нужно авторизоваться под простым пользователем для просмотра своей статистики, то в дереве слева пользователи видны, но при выборе какого-либо пользователя — справа не появляется запрос на ввод пароля (вообще ничего — просто белый фон). Соответственно юзер не может увидеть свою статистику

    • Система debian wheezy x86_64 php 5.4.4 mysql 5.5.38
      sams2-2.0.0.tar брал с http://sams.perm.ru/
      по инструкции дохожу до момента когда http://host/setup.php
      на шаге 2 говорит safe_mode off
      на шаге 3 не предлагает создавать базу а сразу пишет
      Invalid query: Access denied for user ‘www-data’@’localhost’ (using password: NO)

      # grep DB /etc/sams2.conf |grep -v \;
      DB_ENGINE=MySQL
      DB_SERVER=localhost
      SAMS_DB=sams2db
      ODBC=0
      ODBCSOURCE=sams_mysql
      DB_USER=sams
      DB_PASSWORD=pass
      SQUIDGUARDDBPATH=/etc/squid

      откуда выплыл www-data и почему без пароля мне не ведомо (
      из консоли mysql -u sams -p пускает (создал базу )

      • соответственно
        http://host/index.php тоже не может приконнектиться к базе
        где чего я не досмотрел я найти не могу (( помогите плз

      • Больше всего похоже на то, что он не берёт настройки из вашего файла /etc/sams2.conf

        Например, по умолчанию конфиг расположен в /usr/local/etc/sams2.conf

        Чтобы он брался из /etc/sams2.conf, нужно было передать ./configure параметр --sysconfdir=/etc/

        Вы это делали?

        • я согласен? что на это похоже,
          пробовал собирать раз ..дцать с разными опциями (при make install он создает sams2.conf в том месте где указано при configure) и дублировать, например, sams2.conf в /etc/ и /usr/local/etc/
          в итоге решил попытать счастья с posgres
          все завелось с первого раза
          юзеров получаю с AD (2008r2)
          добавил пока несколько человек, стата считается,
          показывает по дням, Список файлов, больших … kb, Список ресурсов, к которым обращался пользователь, но отчет Список ресурсов, к которым обращался пользователь в течение дня, пустой с повременным..,

  47. При добавлении sams2daemon(у меня он называется sams2) нужно делать так, чтобы он стартовал последним! Тогда всё будет работать автоматом. Тоесть update-rc.d sams2 start 99 и т.д. читайте ман по команде update-rc.d

    ПС тоже хочу получить исправленый usertray.php почта nikitinvalery@mail.ru

    • Дело в том, что я уже пробовал загонять в самый конец запуска (после остальных сервисов), но, судя по логам syslog почему-то этот демон стартует вообще самым первым, сразу после поднятия интерфейсов и запуска ntpdate(хотя в /etc/network/if-up.d тоже нет файла для запуска этого демона, как, например, для ntpdate).
      Соответственно, при попытке запуститься, не может подключиться к мускулу, и срубается. Не пойму, почему он пытается стартануть самым первым.

  48. Пишетчто не может выполнить запрос (( Все вроде работает, кто ни будь знает ответ?

    samsdaemon[2011]: ***ERROR: proxy.cpp:486 Unable to create query.

  49. еще пишет что ему не понятно 😆

    samsdaemon[6494]: +++WARNING: Pid file exists, but no program running. Unexpected crash?

  50. Спасибо большое!! Файлик получил — всё работает!!
    Единственное что пока не победил, это когда юзер отключается за превышение лимита траффика, то в IE начинает постоянно выскакивать окошко с просьбой ввести имя и пароль.
    В каментах есть вариант решения, но он похоже для самс1.0.5
    А что делать с самс2 ?

  51. Ктото решил проблему с авторизацией пользователей, для просмотра статистики ?? (При попытке выбора юзера для входа ничего не происходит)

  52. Catalyst останавливаеш самс service sams2(или sams2daemon) stop. Переходиш в папку куда качал исходники самса cd /sams2-read-only. делаеш make uninstall. редактируеш usertray.php nano usertray.php . Прокручиваеш в самый низ страницы, и убираеш коментарии с поледнего абзаца. Сохраняешся . делаеш make install. profit)))

    • Вроде все сделал, но у меня теперь sams2daemon не запускается, вылетает с ошибкой
      Dec 11 15:46:21 ubuntusrv samsdaemon[2223]: +++WARNING: No settings for proxy 1. Somethig wrong?
      Dec 11 15:46:21 ubuntusrv samsdaemon[2223]: ***ERROR: samsdaemon.cpp:309 Cannot get sleep time for daemon. See debugging messages for more details.

  53. Спасибо за помощь, все получилось, и с ощибкой сам разобрался, оказалось что в файле настройки sams нужно было поменять идентификатор прокси сервера 😀

  54. Внезапно обнаружил, что если выставить в шаблоне галку
    Доступ запрещён ко всем URL
    и дальше в Доступ к URL разрешён
    выбрать несколько разрешенных списков, то работает только один, верхний. Тоесть, нет возможности комбинировать несколько разрешенных списков в одном шаблоне? Чтобы доступ был разрешен ТОЛЬКО к этим спискам..
    Или я что-то не так настраиваю?

    • Специально для вас попробовал сейчас такую конфигурацию с двумя списками. У меня всё работает нормально: доступ есть ко всем адресам из обоих списков, кроме них доступа нет никуда.

      • Странно.
        Я посмотрел, как sams создает правила в сквиде. Если использовать несколько разрешенных списков, он создает для них правила вида:

        http_access deny Sams2Template9 !Sams2Allow5
        http_access deny Sams2Template9 !Sams2Allow4
        http_access deny Sams2Template9 !Sams2Allow8

        судя по вот этому описанию:
        The most useful feature is the http_access statement. It works similar to the way a firewall would handle rules. For each request that Squid receives it will look through all the http_access statements in order until it finds a line that matches. It then either accepts or denys depending on your setting. The remaining rules are ignored.

        при первом совпавшем правиле остальные не проверяются. Поэтому не понятно, как у вас тогда работает несколько списков. Проверив первый, остальные уже не проверяются, каким же образом тогда оно работает?

      • вот опять дошли руки, специально создал в проксе статичные правила:


        ### test ACL
        acl test src 192.168.1.2
        acl test_allow1 dstdomain .habrahabr.ru
        acl test_allow2 dstdomain .opennet.ru

        ## test
        http_access deny test !test_allow1
        http_access deny test !test_allow2
        http_access allow test

        эти правила аналогичны тем, что создает SAMS. Пробую идти по сайтам, указанным в разрешенных списках — не пускает. Вообще никуда не пускает.
        Если закомментировать любое из правил:

        http_access deny test !test_allow1
        http_access deny test !test_allow2

        то оставшееся незакомментированным, отрабатывает корректно, тоесть, позволяет открывать сайт указанный в нем, и только этот сайт..
        Следовательно, можно сделать вывод, что сквид работает так:
        встретил первое правило
        http_access deny test !test_allow1
        если все совпало (пробую лезть на хабр), правило НЕ ОТРАБАТЫВАЕТ, но следующее правило
        http_access deny test !test_allow2
        ОТРАБАТЫВАЕТ и ЗАПРЕЩАЕТ доступ на хабр. Точно так же, если пойти на opennet.ru, сработает первое правило и запретит доступ. В любом случае, два этих правила запрещают доступ куда угодно взаимным срабатыванием. Поэтому, видимо, не корректно реализована в SAMS возможность указывать несколько списков доступа в одном шаблоне.
        Странно только, почему это работает у вас. Может быть сайты, которые вы пробуете, находятся у вас в списке «local»?

  55. Я тут настраивал связку Ubuntu 12.04.3+squid3+sams и обнаружил, что вышел релиз sams2. Решил переделать все под ним. Squid работает, в инет пускает. Web интерфейс sams2 работает. Настраивал веб интерфейс и при нажатии реконфигурировать выдает ошибку:Команда на реконфигурирование Squid не получена демоном
    проверьте, запущен ли samsdaemon
    Проверка:
    root@proxynbb:/home/nbb# ps aux |grep sams
    root 1907 0.0 0.0 10636 940 pts/0 S+ 12:19 0:00 grep —color=auto sams
    root@proxynbb:/home/nbb# ps aux |grep sams2
    root 1909 0.0 0.0 10636 940 pts/0 S+ 12:19 0:00 grep —color=auto sams2
    root@proxynbb:/home/nbb# ps aux |grep sams2daemon
    root 1911 0.0 0.0 10636 940 pts/0 S+ 12:19 0:00 grep —color=auto sams2daemon
    после запуска вручную /etc/init.d/sams2 start выдает сообщение об успехе, но при проверке запущено ли выдает все то же самое что выше. Если нужны конфиги — выложу. Говорите что нужно. Я не совсем профи

  56. А у меня на этапе конфигурации все застопорилось
    0000@ubuntu:~/sams2-read-only$ ./configure
    ./configure: line 2163: config.log: Permission denied
    ./configure: line 2173: config.log: Permission denied

  57. Все настраивал по ману, пользователей не пускает вообще никуда,в логах TCP_DENIED/407,TCP_DENIED/403.Куда копать?

    • Какую авторизацию делаете? По NTLM через AD? Или, скажем, по IP? Если через AD, то какой браузер у пользователей? Вылезает ли у пользователей окно с приглашением ввести логин и пароль?

  58. авторизация NTLM через AD,браузер IE и chrom,окно не вылезает.

  59. Конфиг squid

    auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --domain=ETM-RES
    auth_param ntlm children 200
    auth_param ntlm keep_alive off
    auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
    auth_param basic children 100
    auth_param basic realm Proxy Autentification Required
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    auth_param basic casesensitive off
    acl Sams2Time1 time MTWHFAS 00:00-23:59
    acl Sams2Template1 proxy_auth etm-res.ru+admin
    acl manager proto cache_object
    acl localhost src 127.0.0.1/32 ::1
    acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
    acl SSL_ports port 443
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 # https
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl CONNECT method CONNECT
    http_access deny all
    http_access allow Sams2Template1 Sams2Time1
    http_access allow Sams2Template3 Sams2Time1
    http_access allow manager localhost
    http_access deny manager
    http_access allow localhost
    http_port 3128
    access_log /var/log/squid3/access.log squid
    pid_filename /var/run/squid3.pid
    cache_log /var/log/squid3/cache.log
    coredump_dir /var/spool/squid3
    acl Sams2Proxy dst 10.116.10.15
    url_rewrite_access deny Sams2Proxy
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
    refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
    refresh_pattern . 0 20% 4320
    visible_hostname squid

  60. wrapper в данной ситуации нафиг не нужен — он необходим для *смешанной* авторизации ntlm+kerberos

    В конфиге непонятна строка acl Sams2Template1 proxy_auth etm-res.ru+admin
    У вас домен etm-res.ru а юзер которому разрешили доступ admin так?? Тогда в настройках веб интерфейса нужно отключить использование домена пользователя — снять галку и реконфигурировать.
    строка в сквиде должна выглядеть примерно так
    acl Sams2Template1 proxy_auth admin
    тоесть без домена и сепаратора.
    Удачи!

  61. а и ещё строку visible_hostname squid закоментируй и перезапусти сквид. У меня из за неё не работало))

  62. Супер инструкция, сразу заработало, единственное самс сам не стартовал, дописал в rc.local sleep 5 на sams2daemon , и все супер инструкция, ubuntu 12.04 LTS x64 ENG на Hiper-V server 2012 R2.
    И второе глюк со временем в конфигаф сквид писалось 23:00-23:59, но поборолся выставлением полного дня не 00:00-23:59 а 1:00-29:59 выставлением в самсе, при этом в конфиге сквида все правильно при этом стало 00:00-23:59

  63. когда делаю make install пишет такое:
    sed -i -e ‘s,__VERSION,2.0.0,g’ //usr/local/share/sams2/dbclass.php
    sed: невозможно открыть временный файл //usr/local/share/sams2/sed4P7jqb: Нет такого файла или каталога
    при этом в /usr/local/share не возникает каталога sams2
    куда копать?

  64. у меня нормально поставилось, после sudo -s, и уже потом make install

  65. ребата подскажите плз, импортирую пользователей из АД, самс при реконфигурировании пишет их ACL в формате DOMAIN.LOCAL@USER а squid3 обрабатывает формат USER@DOMAIN.LOCAL в access.log так прям и написано, где этот можно изменить?


  66. Встроенный редиректор работает у кого нибудь на SAMS2?! Или кто как блокирует нежелательный контент?

  67. кстати, у кого проблемы со стартом демона, попробуйте в запускалке /etc/init.d/sams2daemon поправить
    start-stop-daemon
    на
    /sbin/start-stop-daemon (полный путь до этого демона, у кого где лежит)
    похоже, окружение рута для этого демона как-то криво отрабатывает.. попробовал добавить в крон перезапуск демона самса в начале месяца, и выяснил, что по крону демон не отрабатывает, а ругается примерно вот так:
    Stopping sams daemon: sams/etc/init.d/sams2daemon: 64: /etc/init.d/sams2daemon: start-stop-daemon: not found
    якобы, не может найти демон start-stop-daemon
    прописал до него полный путь в запускалке самса, и все заработало, возможно теперь и при старте проблем не будет (при рестарте компа). странно.

  68. Дмитрий

    Не могу синхроризироваться с AD, Авторизация -> Active Directory -> тестирование подключения к active directory и веб браузер выдает ошибку 500.
    kerberos в squid работает

    • Дмитрий

      10.85.10.17 — — [22/May/2014:14:15:37 +0800] «GET /main.php?show=exe&function=adldtest&filename=authadldtray.php HTTP/1.1» 500 174 «http://10.85.0.9/main.php?show=exe&function=authadldvalues&filename=authadldtray.php» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)» «-«

  69. Спасибо за инструкцию.
    Кстати, вместо nginx можно взять lighttpd там настройка гораздо проще:
    В конфиге Lighttpd
    server.document-root = «/usr/local/share/sams2
    В /etc/php5/cgi/php.ini раскомментировать строку
    cgi.fix_pathinfo = 1
    Ну и включить поддержку fastcgi-php
    sudo lighttpd-enable-mod fastcgi-php

  70. Всем привет подскажите файлы с настройками пользователей для Squid которые генерит Sams где находится должны? и какого они формата?

  71. все сделал до этого момента
    Заходим на http://localhost/setup.php там всё делаем по инструкции

    и все стало, не находит setup.php

    на локальном серваке набираю

    http://192.168.0.167:8080/
    **************************************************************
    It works !

    If you’re seeing this page via a web browser, it means you’ve setup Tomcat successfully. Congratulations!

    This is the default Tomcat home page. It can be found on the local filesystem at: /var/lib/tomcat7/webapps/ROOT/index.html

    **********************************************************

    набираю
    http://192.168.0.167:8080/setup.php

    вываливает

    HTTP Status 404 — /setup.php

    type Status report

    message /setup.php

    description The requested resource is not available.

    Apache Tomcat/7.0.52 (Ubuntu)

    понимаю что дело с путями все проверил, вроде все по инструкции

    что посоветуете ??

    • Думаю уже неактуально, но проблема очевидно в том, что у вас на сервере установлен Apache Tomcat, который слушает на порту 8080 вместо nginx. Запустите nginx или Apache Tomcat на другом порту, ну или как-нибудь иначе выкрутитесь.

  72. Добрый день Василий.
    Все собрал, со всем разобрался, в том числе с проблемным wrapper-ом, который отказывался собираться на 14.04.1, потому что из коробки, так установлен automake 1.14, а для сборки wrapper требуется 1.11.
    Но не суть….
    В общем сейчас столкнулся со следующей проблемой:
    2014/08/27 11:07:14| Starting new negotiateauthenticator helpers…
    2014/08/27 11:07:14| helperOpenServers: Starting 1/10 ‘negotiate_wrapper’ processes
    2014/08/27 11:07:14| negotiate_wrapper: Starting version 1.0
    2014/08/27 11:07:14| negotiate_wrapper: NTLM command: /usr/bin/ntlm_auth —diagnostics —helper-protocol=squid-2.5-ntlmssp —domain=SIBEXPOCENTER
    2014/08/27 11:07:14| negotiate_wrapper: Kerberos command: /usr/lib/squid3/squid_kerb_auth -d -s GSS_C_NO_NAME
    2014/08/27 11:07:14| negotiate_wrapper: Failed execv for /usr/lib/squid3/squid_kerb_auth: Exec format error

    • Обнаружил, что библиотеки /usr/lib/squid3/squid_kerb_auth тупо не существует!

      • Проблему решил. Этого модуля нет из коробки. И его нет в исходниках последнего сквида.
        Ближайшие сырцы которые я нашёл были в исходниках 2,7STABLE7
        Итак, ломимся в /usr/local/src и пилим:
        1. Сливаем сырцы:
        wget http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE7.tar.gz
        2. Распаковываем:
        tar -zxvf squid-2.7.STABLE7.tar.gz
        3. Ставим libkrb5-dev, без него не соберется модуль:
        apt-get install libkrb5-dev
        4. Заходим в папку с сырцами модуля:
        cd /usr/local/src/squid-2.7.STABLE7/helpers/negotiate_auth/squid_kerb_auth
        Так как лежащий там скрипт компиляции запилен как для MIT kerberos так и Heimdal, поэтому сам хелпер собраутся без поддержки SPNEGO. Но, спасибо разрабам за файли readme.txt! Смотри что там написано, и делая выводы, содаем скрипт компиляции.
        5. vim ./make.sh
        6. Вставляем следующий код:
        #!/bin/sh
        DEFINE_SPNEGO=-DHAVE_SPNEGO
        #MIT
        DEFINE="$DEFINE_SPNEGO -D__LITTLE_ENDIAN__"
        INCLUDE=-Ispnegohelp
        LIBS="-lgssapi_krb5 -lkrb5 -lcom_err"
        #
        SPNEGO="spnegohelp/derparse.c spnegohelp/spnego.c spnegohelp/spnegohelp.c spnegohelp/spnegoparse.c"
        SOURCE="squid_kerb_auth.c base64.c"
        gcc -o squid_kerb_auth $DEFINE $INCLUDE $SOURCE $SPNEGO $LIBS

        7. Даем права на исполнение
        chmod a+x ./make.sh
        8. Компилим!
        ./make.sh
        9. Кидаем получившийся модуль squid_kerb_auth в папку с модулями сквидятины, у меня это /usr/lib/squid3/

        Все. Все работает.

  73. ubuntu 14.04.1,SAMS2,SQUID3
    Через Веб-морду тыкаю «реконфигурировать» говорит Команда на реконфигурирование Squid получена демоном, в squid.conf
    меняется «acl Sams2Proxy dst 10.0.1.139» на
    «acl Sams2Proxy dst your.ip.address».
    Что где поменять\посмотреть чтобы адрес не менялся?
    P.S. c Linux знаком только 5 день.

  74. Приветствую! Делаю всё по вашему ману… patch -l сделал, ./configure сделал… при при попытке сделать make получаю в конце следующее.
    /usr/bin/ld: .libs/loadavg.o: relocation R_X86_64_32 against `.rodata’ can not be used when making a shared object; recompile with -fPIC
    .libs/loadavg.o: could not read symbols: Bad value
    collect2: error: ld returned 1 exit status
    make[1]: *** [libloadavg.la] Ошибка 1
    make[1]: Leaving directory `/usr/src/sams2/plugins/loadavg’
    make: *** [all-recursive] Ошибка 1

    как побороть не знаю, подскажите пожалуйста если сталкивались?

  75. Здравствуйте!
    Пункт 11.Заходим на http://localhost/setup.php там всё делаем по инструкции
    Но когда я захожу выдает следующее:
    404 Not Found
    nginx/1.4.6 (Ubuntu)
    Когда на http://localhost то Welcome to nginx!
    Все шаги до этого без проблем прошел.

  76. После успешной установки Sams2, настроил параметры, создавал пользователей, шаблонов, и сделал успешное реконфигурирование. А потом хотел применит настройки, в squid3 нажал кнопку Apply configurations. Пос этого выдает ошибку Failed to start Squid :
    squid3start: unrecognized service.
    когда ввожу команду service squid3 start выдает ошибку: Starting Squid HTTP Proxy 3.x: squid32015/04/09 15:50:04| Warning: empty ACL: acl Sams2Template2 src
    2015/04/09 15:50:04| Can’t use proxy auth because no authentication schemes are fully configured.
    FATAL: ERROR: Invalid ACL: acl Sams2Template3 proxy_auth user

    Squid Cache (Version 3.1.6): Terminated abnormally.
    CPU Usage: 0.008 seconds = 0.008 user + 0.000 sys
    Maximum Resident Size: 15840 KB
    Page faults with physical i/o: 0

    пожалуйста помогите разобраться !! заранее спасибо!!

    • > А потом хотел применит настройки, в squid3 нажал кнопку Apply configurations

      Я думаю проблема в этом, не знаю что вы имеете в виду под этой фразой, но применение настроек должно было произойти на шаге «сделал успешное реконфигурирование». Вы видимо затем пошли в какую-то другую систему, которая перезатёрла параметры установленные SAMS.

      Попробуйте настроить всё заново, через SAMS, нажать «реконфигурировать» и запустить squid.

  77. Приведенный в инструкции установки sams2 последние 19,20,21 пункты обязательно надо выполнят? Без этих пунктов sams2 будет работать?

  78. Спасибо за помочь! Заработало.

  79. Доброго дня.
    Столкнулся со следующей проблемой:
    при использовании встроенного редиректора — самс режет всех подряд — превысивших лимит и нет, при этом в squid.conf нет acl записей Sams2BlockedUsers, только acl’ки по шаблонам. Если же в веб настройках выставить «не использовать редиректор» — пользователи ходят в инет без проблем, а в squid.conf появляются acl Sams2BlockedUsers src xxx.xxx.xxx.xxx и http_access deny Sams2BlockedUsers.
    Может есть какие мысли?
    Система CentOS release 6.5 (Final)x86_64
    самс собирался из сырцов
    Use MySQL API: yes
    Use PostgreSQL API: no
    Use unixODBC API: no
    Use LDAP API: no
    Using pcre: pcrecpp
    Use dynamic plugin: yes

  80. Отвечу на свой вопрос:
    Стоял рядом со связкой squid+sams2 контент фильтр Dansguardian и формировал свои логи (их-то и парсил самс) с подменой ip адресов прокси сервера на реальные пользователей. Так же средствами iptables осуществлялся редирект всех запросов с порта 3128 на порт контент фильтра. В общем где-то в этой системе закралась ошибка. Пересобрал сервер полностью с нуля Squid+Sams2 — завелось с пол оборота. Ставил из rpm пакетов.

  81. Здравствуйте! Сделал все по Вашей инструкции, удалось достучаться до страницы настроек sams2, даже синхронизировал пользователей из AD, но при попытке реконфигурации демона squid ругается что sams2daemon не запущен. Копировал его вручную из папки с исходником в /etc/init.d/
    Изменить что-либо в данном файле (sams2daemon) невозможно, ни один редактор не хочет его корректировать, показывает сплошные кракозябры…
    Также совершенно не знаю что именно вписывать в конфигурационный файл squid.conf, курил маны с оф.сайта, но уж больно там все наворочено. Ситуация у меня следующая: есть домен AD на базе WinServer2003, пользователи оттуда должны авторизоваться посредством sams и получать разграниченный доступ в инет через данный прокси, который находится в инфрастуктуре сети предприятия, и не является конечным шлюзом.
    Также не совсем понятно, как прикрутить авторизацию по kerberos, а именно — какое имя компьютера указывать, используя утилику mskutil.
    Очень надеюсь на вашу помощь 😥

  82. Добавлю, что при попытке запуска sams2daemon выдается сообщение: «samsdaemon[2579]: +++WARNING: No settings for proxy 1. Somethig wrong?»

  83. artful Февраль 22, 2015 в 01:19
    Здравствуйте!
    Пункт 11.Заходим на http://localhost/setup.php там всё делаем по инструкции
    Но когда я захожу выдает следующее:
    404 Not Found
    nginx/1.4.6 (Ubuntu)
    Когда на http://localhost то Welcome to nginx!
    Все шаги до этого без проблем прошел.

    Аналогичная трабла ubuntu 14.04.1. Что-то в ней изменилось. Поскажите как исправить?

    • У вас конфигурация nginx из пункта 10 по тем или иным причинам не применилась. Как вы её делали?

      • Пробовал создавать файл sams.conf (c содержимым п.10) в папке site-avilable, и далал симлинк в site-enabled. Ребутил вплоть до вм. Пробовал замещать дефолт файл. Пробовал впихивать в конф нгикса. хз. Пробую на виртуалбоксе. Открываю http://ip/setup.php. Как бы надо понять что куда скопировать и что куда положить.

    • добрый день, подскажите как вы побори эту проблему?

  84. Вобщем поборол nginx и php. Теперь вылазит вот это в логе нгинкса:
    2015/10/07 23:47:40 [error] 5494#0: *9 FastCGI sent in stderr: «PHP message: PHP Parse error: syntax error, unexpected ‘$configbuttom_7_log_2’ (T_VARIABLE) in /usr/local/share/sams2/lang/lang.EN on line 1100» while reading response header from upstream, client: 192.168.219.1, server: , request: «GET /setup.php HTTP/1.1», upstream: «fastcgi://unix:/var/run/php5-fpm.sock:», host: «192.168.219.3»
    Нагуглить не выходит ничего путного.

    • Да, по ходу дела в версии которая в SVN этот файл битый. Либо отредактируйте /usr/local/share/sams2/lang/lang.EN (там начиная с 1100 строчки очевидно в чём проблема, какие-то левые символы в начале строк), либо можете попробовать переустановить из моего репозитория svn checkout https://github.com/V-Alexeev/sams2 patch-1

      • Капец. Заново отинсталил виртуалку и сделал все на паче, таже байда, самс брал из твоего репозитория.
        [Mon Oct 12 19:49:04.242095 2015] [:error] [pid 1514] [client 192.168.229.1:62321] PHP Parse error: syntax error, unexpected ‘$configbuttom_7_log_2’ (T_VARIABLE) in /$) in /usr/local/share/sams2/lang/lang.EN on line 1100
        Все пропало 🙁

  85. На третьем шаге вылазит такое:
    [Tue Oct 13 23:11:21.153400 2015] [:error] [pid 1785] [client 192.168.229.1:49258] PHP Warning: mysql_query() expects parameter 2 to be resource, boolean given in /usr/local/share/sams2/dbclass.php on line 174, referer: http://192.168.229.3/sams2/setup.php?step=2&lang=EN
    тут выше такое было закоментировал эту строку.
    На последнем шаге работы мастера вы дает это:
    Creation of SAMS database
    db:MySQL
    Access denied for user 'www-data'@'localhost' (using password: NO)

    Апач:
    [Tue Oct 13 23:23:07.599828 2015] [:error] [pid 1789] [client 192.168.229.1:49291] PHP Notice: Undefined variable: dbadmin in /usr/local/share/sams2/setup.php on line 262, referer: http://192.168.229.3/sams2/setup.php?step=2&lang=EN
    Побороть не могу.В /usr/local/etc/sams2.conf прописан рутовый пароль и логин к мускулу. Права на файл стоят для ввв-дата. Пробовал через пхпмайадмин создавать другого юзера и давать права на базу и прописывать этого юзера в конфиг, безтолку.
    В чем может быть трабл?

    • По идее на этом этапе установки данные для подключения к БД берутся не из sams.conf, а прямо вот в браузере на странице установки где-то вводятся. Судя по коду setup.php, там должны быть поля для ввода логина/пароля/адреса БД.

      • Все вводил туда не однократно, там все правильно. Может накатить скриптом создание бд? Где его взять? Или шо посоветуете? Может тут какая трабла?
        db:MySQL
        Access denied for user 'www-data'@'localhost' (using password: NO)

        • Как описано выше (была схожая трабла и забили на мускул), как не пытался побороть эту ошибку, пока не вышло, а вот на postgresql все взлетело ➡ Думаю ковыряться в пхп и смотреть что там не так.

  86. Вопрос такой. Я то что касается нтлм авторизации не ставил. Сейчас хочу просто настроить авторизацию по ip. В самсе включил авторизацию по ip, создал пользователей с прописанным ip. Самс не реконфигурирует сквид, хз по чему. Демон запущен:
    root@ubuntus64:/home/inhab# ps aux | grep sams2daemon
    root 3515 0.0 0.1 12964 2188 pts/0 S+ 20:01 0:00 grep --color=auto sams2daemon

    Сквид реконфигурировал вручную. Этого достаточно чтоб самс заставил сквид по ip отрабатывать авторизацию или надо именно чтоб через веб-интерфейс рекофиг был?:
    root@ubuntus64:/home/inhab# squid3 -k reconfigure
    Если зайти с айпишника который прописал юзеру в самс выдает это
    При получении URL http://www.ya.ru/ произошла следующая ошибка

    Доступ запрещён.

    Система контроля доступа не позволяет выполнить ваш запрос сейчас. Обратитесь к вашему администратору.

    Администратор Вашего кэша: webmaster.

    • Проблему решил. Не запускался демон самс, ругался на прокси 1.
      samsdaemon[6289]: +++WARNING: No settings for proxy 1. Somethig wrong?
      В вебке самса у прокси стоял id 0. Удалил этот прокси. все заработало. Но, заработало криво. Демон отправляет сквид в реконфигурирование. А сквид спотыкается на
      2015/10/21 19:21:02| aclIpParseIpData: Bad host/IP: 'ip.addr' in 'ip.addr', flags=0 : (-2) Name or service not known
      FATAL: Bungled /etc/squid3/squid.conf line 3935: acl Sams2Proxy dst ip.addr

      Если ручками прописать вместо Сip.addr айпишник который смотрит в локалку, то все отрабатывает. Может где-то в веб-интерфейсе или конфигах надо прописать этот ip.addr? Не тыкнете носом?

  87. Если получить побороть настройку с мускулом, думаю собрать деб.
    db:MySQL
    Access denied for user 'www-data'@'localhost' (using password: NO)

    Уже вник в файл setup.php, думаю закомментировать его частями, чтоб понять где трабла, локализовать так сказать. О результате сообщу.

  88. Подскажите, все по инструкции.

    захожу http://ip адрес/ — Welcome to nginx!
    захожу http://ip адрес/setup.php — 404 Not Found nginx/1.4.6 (Ubuntu)

    подскажите куда смотреть?

  89. sams2.conf

    #
    # This configuration file allows the SAMS2 web management
    # to be accessed at http://localhost/sams2/
    #

    Alias /sams2 /usr/local/share/sams2

    Options Indexes
    AllowOverride None
    Order allow,deny
    Allow from all

    server {
    listen 80;

    location / {
    root /usr/local/share/sams2;
    index index.php;
    if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1 last;
    break;
    }
    }

    error_page 404 /index.php;

    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /usr/local/share/sams2/$fastcgi_script_na$
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    }

    }

  90. сейчас дошел до того, что squid блокирует доступ в инет и к серверу, какое правило необходимо и куда его прописать?

    • В смысле? Каким образом заблокирован доступ?

      • никуда не пускает, в интернет тоже.
        возможно что то с ACL листом в squid, подскажите , куда смотреть ?

        • А как выглядит это «не пускает»? Какая именно ошибка выводится?

          В любом случае при работе с SAMS в squid.conf лучше ничего не трогать, все настройки делать через веб-интерфейс Самса.

          • если выходить в инет, тоже самое выдает ..

          • что то подскажите по моей проблеме? 😕

            • А в интерфейс SAMS вы зайти можете? (необязательно это делать используя прокси Squid)

              • как в него зайти?
                он еще не установлен.

              • вот конфиг nginx

                #
                # This configuration file allows the SAMS2 web management
                # to be accessed at http://localhost/sams2/
                #

                Alias /sams2 /usr/local/share/sams2

                Options Indexes
                AllowOverride None
                Order allow,deny
                Allow from all

                server {
                listen 80;

                location / {
                root /usr/local/share/sams2;
                index index.php;
                if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php?q=$1 last;
                break;
                }
                }

                error_page 404 /index.php;

                location ~ .php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;

                fastcgi_param SCRIPT_FILENAME /usr/local/share/sams2/$fastcgi_script_na$
                fastcgi_param QUERY_STRING $query_string;
                fastcgi_param REQUEST_METHOD $request_method;
                fastcgi_param CONTENT_TYPE $content_type;
                fastcgi_param CONTENT_LENGTH $content_length;
                }

                }

                • Это не конфиг nginx, а странная смесь конфига апача с конфигом nginx.

                  Возьмите конфиг из моего поста (вторая часть вашего конфига), положите в файл /etc/nginx/conf.d/proxy.conf, проверьте что nginx всем доволен с помощью команды sudo nginx -t, перезапустите nginx, если php5-fpm запущен, должно заработать.

                  • как оказалось в директории /etc/nginx/conf.d/ нет файла proxy.conf.
                    создал,
                    проверил — sudo nginx -t — все ок:
                    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
                    nginx: configuration file /etc/nginx/nginx.conf test is successful
                    перегрузил!

                    тоже самое.

                    • Конечно его там не было, если вы его не создавали.

                      А что именно «то же самое»? Что происходит, когда вы заходите на адрес где установлен самс?

  91. можете сами попробовать, это тестовый серв

    http://89.148.196.46/

    из локалки http://192.168.0.1/setup.php — выдает:

    ERROR
    The requested URL could not be retieved

    типо этого http://new.mini-server.ru/uploads/posts/2012-12/1354723142_wordpress-error.png

  92. спасибо еще раз за помощь ❗
    Вот немного доделал инструкцию, может кому поможет..

    Как установить SAMS2 и Squid на Ubuntu 12.04 LTS с авторизацией через AD
    В качестве базы данных будем использовать MySQL. В качестве веб-сервера nginx + php5-fpm.
    1. Устанавливаем все необходимые для нас пакеты: sudo apt-get install build-essential squid3 nginx php5-fpm libpcre3-dev libpcre3 libpcre++-dev libpcre++0 libpcrecpp0 mysql-server libmysqlclient-dev php5-ldap libfpdf-tpl-php libfpdi-php autoconf automake libtool doxygen subversion libldap2-dev php5-gd php5-mysql krb5-user libkrb5-3 ldap-utils samba winbind samba-common-bin
    2. Получаем исходники SAMS2: svn checkout http://sams2.googlecode.com/svn/trunk/ sams2-read-only
    3. заходим: cd /root/sams2-read-only
    4. Собираем скрипт конфигурации: make -f Makefile.cvs
    5. ./configure
    По окончании работы скрипта вы должны увидеть следующее сообщение:Use MySQL API: yes
    Use PostgreSQL API: no
    Use unixODBC API: no
    Use LDAP API: yes
    Using pcre: pcre
    Use dynamic plugin: yes
    6. Набираем «patch -l» и вставляем следующий текст:
    — libtool.old 2012-02-14 17:34:10.363994833 +0400
    +++ libtool 2012-02-14 15:55:27.142358890 +0400
    @@ -5986,7 +5986,8 @@
    case $dir in
    [\\/]* | [A-Za-z]:[\\/]*) ;;
    *)
    — absdir=`cd «$dir» && pwd`
    +# absdir=`cd «$dir» && pwd`
    + absdir=»/usr/lib»
    test -z «$absdir» && \
    func_fatal_error «cannot determine absolute directory name of \`$dir'»
    dir=»$absdir»
    — В конце нужно ТРИ раза нажать Ctrl-D, чтобы он понял, что это конец файла.
    7. Если у вас 64-битная система, то файл src/proxy.h нуждается в исправлении, иначе sams2daemon будет падать с ошибкой сегментирования после «mysqlquery.cpp:437 [0x1c1f910->fetch] ok». Для этого открываем src/proxy.h и дописываем ко всем enum тип long следующим образом:
    enum ParserType: long
    {

    };
    Лежит тут: cd /root/sams2-read-only/src/proxy.h
    8. Собираем SAMS2: make
    9. Устанавлиаваем: sudo make install
    10. Меняем владельца директории sams2 на www-data: sudo chown www-data:www-data -R /usr/local/share/sams2/
    11. Конфигурируем nginx следующим образом:
    Т.е. — создаем в /etc/nginx/conf.d/proxy.conf и вставляем туда это:

    server {
    listen 80;

    location / {
    root /usr/local/share/sams2;
    index index.php;
    if (!-e $request_filename) {
    rewrite ^(.*)$ /index.php?q=$1 last;
    break;
    }
    }

    error_page 404 /index.php;

    location ~ .php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;

    fastcgi_param SCRIPT_FILENAME /usr/local/share/sams2/$fastcgi_script_name;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    }

    }
    12. удаляем /etc/nginx/sites-available/ — default
    и
    /etc/nginx/sites-enabled/ — default
    13. Сразу идем и правим: /usr/local/share/sams2/lang/lang.EN
    в самом низу строчки с кривыми символами и лишними пробелами!
    В В В $configbuttom_7_log_2 = «Item number»;
    В В В $configbuttom_7_log_3 = «Date»;
    В В В $configbuttom_7_log_4 = «Time»;
    В В В $configbuttom_7_log_5 = «Demon»;
    В В В $configbuttom_7_log_6 = «Value»;
    В В В $configbuttom_7_log_7 = «Return code»;
    14. Правим: /etc/php5/fpm/pool.d/www.conf
    listen = /var/run/php5-fpm.sock на listen = 127.0.0.1:9000
    перегружаем — работает!
    тут кто как делает, я так:
    15. Записываем в файл /usr/local/etc/sams2.conf параметры подключения к базе данных:
    ; Username for database connection
    DB_USER=
    ; Password for database connection
    DB_PASSWORD=
    SQUIDROOTDIR=/etc/squid3
    SQUIDLOGDIR=/var/log/squid3
    16. Заходим на http://localhost/setup.php там всё делаем по инструкции

    • Спасибо. Будет время — просмотрю и внесу исправления в основной пост.

    • Я нгикс не поборол, настроил под апач. Сейчас делаю деб, деб собирается, осталось его поднастроить для установки его под апач\нгикс мускул\постгрис. Ваша инфа будет полезна, спасибо. Судя по коментам тема очень актуальна…

    • вот доделал до конца!

      17. Копируем из папки с исходниками скрипт для init.d:
      cd /root/sams2-read-only
      sudo cp debian/init.d /etc/init.d/sams2daemon
      18. Даём права на исполнение: sudo chmod a+x /etc/init.d/sams2daemon
      19. Редактируем скрипт /etc/init.d/sams2daemon
      Нужно прописать правильный путь к конфигу sams:
      SAMSPATH=`cat /usr/local/etc/sams2.conf | grep SAMSPATH | tr «SAMSPATH=» «\0″`
      А также включить его:
      SAMS_ENABLE=true
      и меняем путь с DAEMON=$SAMSPATH/bin/sams2daemon на
      DAEMON=/usr/local/bin/sams2daemon
      перегрузим!
      20.Делаем symlink (иначе sams не будет работать):
      sudo ln -s /usr/sbin/squid3 /usr/sbin/squid
      21. Запускаем: sudo /etc/init.d/sams2daemon start
      22.Проверяем, что запустился:$ ps aux | grep sams2daemon
      root 5334 0.0 0.2 22908 2520 pts/0 S 14:27 0:00 sams2daemon
      но автозапуск не работает! Решается так:
      23. Прописать в /etc/rc.local перед строкой exit 0:
      sleep 2
      /etc/init.d/sams2daemon start

      осталось разобраться с авторизацией по NTLM ❗

  93. все таки не могу осилить авторизацию по NTLM

    подскажите подробную инструкцию.. , заранее спасибо.

    • решил с помощью этой инструкции http://sams.perm.ru/doc/ru/samba3.html

      • Аригинально 😛

        • не решил, кри все как то.. 🙁

          Уважаемый, не поможешь решить ?

        • заметил, у меня стоит в Authentication Programs /usr/bin/ntlm_auth —helper-protocol=squid-2.5-basic
          советуют, если не отрабатывает поставить fakeauth_auth , пробовал добавить:/usr/bin/fakeauth_auth —helper-protocol=squid-2.5-basic
          ругается .. Failed to save authentication programs : ‘/usr/bin/fakeauth_auth —helper-protocol=squid-2.5-basic’ не является исполняемой программой

          • Я с АД не связывал самс 🙁

          • auth_param ntlm program /path/to/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
            auth_param ntlm children 5
            auth_param ntlm max_challenge_reuses 0
            auth_param ntlm max_challenge_lifetime 2 minutes
            auth_param basic program /path/to/ntlm_auth --helper-protocol=squid-2.5-basic
            auth_param basic children 5
            auth_param basic realm Squid proxy-caching web server
            auth_param basic credentialsttl 2 hours

            По инструкции сам же ссылку давал.

  94. Выложил deb-пакеты с инструкцией.
    http://forum.ubuntu.ru/index.php?topic=268078.0

  95. кто то проконсультирует, как заменить страницу блокировки 404 на свою?

  96. Действовал строго по инструкции, и результат не заставил себя ждать 🙂 Огромнейшее спасибо за столь быстрое разрешение такой проблемы. скрин раб стола http://itmages.ru/image/view/3210710/38efc1dd

  97. Правда использовал пост inhab-а http://forum.ubuntu.ru/index.php?topic=268078.0

  98. Инструкция отличная (год назад очень помогла при установке SAMS2), но попробую внести одну поправку: Файл libtool, который генерирует скрипт, нуждается в патче.. Я думаю, что в патче нуждается один из макросов в каталоге m4 — mysql.m4, pq.m4 или unixodbc.m4 (выберите нужный, в зависимости от того, поддержку какой БД вы включаете). Например, для MySQL патч будет примерно таким:

    --- /home/sup/work/git/sams2/m4/mysql.m4 2016-03-03 19:01:39.598645446 +0200
    +++ /home/sup/work/sams2-2.0.0/m4/mysql.m4 2016-03-16 16:23:33.704936476 +0200
    @@ -21,7 +21,8 @@
    fi

    if test "x$ac_mysql_libraries" = "x"; then
    - ac_mysql_libraries="/usr/lib64/mysql /usr/local/mysql/lib/mysql /usr/local/lib/mysql /usr/lib/mysql /usr/local/lib /usr/lib"
    + ac_mysql_libraries="/usr/lib64/mysql /usr/local/mysql/lib/mysql /usr/local/lib/mysql /usr/lib/mysql /usr/local/lib /usr/lib \
    + /usr/lib/x86_64-linux-gnu /usr/lib/i386-linux-gnu"
    fi

    if test "$ac_use_mysql" = "no"; then

    В Debian 8 Jessie это сработало, в Ubuntu требует подтверждения.

  99. Александр

    Уважаемые помогите решить проблему, стоит Squid 3.4.8 +sams2 2.0.1, Debian8 3.16.7 x64. В логи samsdaemon постоянно пишет ошибки
    Apr 25 11:58:29 Gate samsdaemon[16115]: ***ERROR: squidlogparser.cpp:445 Unknown cache result
    Apr 25 11:58:29 Gate samsdaemon[16115]: +++WARNING: Unknown cache result TCP_MISS_ABORTED
    Apr 25 11:58:29 Gate samsdaemon[16115]: ***ERROR: squidlogparser.cpp:445 Unknown cache result
    Apr 25 12:13:29 Gate samsdaemon[16115]: +++WARNING: Unknown cache result TCP_MISS_ABORTED
    Что сделать? Читал на форуме что самс не справляется с парсингом логов сквида, мол нужно делать частую ротацию. Думаю это вариант но как то криво. Может есть мысли?

    • sams со squid версий 3.2 и больше из коробки не работает, нужно патчить. у меня если что есть такой полу-патч, который кое-как заставляет его работать, но вообще рекомендую поставить сквид 3.1 и не париться.

      Патч если что вот: https://gist.github.com/V-Alexeev/05a17a88626e009bf1bf2f9f0478f70d

      • 14.04 — ubuntu — не поставить там без шаманства 3.1
        Может как-то патч допилить? Что там не работает?

        • У нас с этим патчем работает нормально. Вроде бы из очевидного не работает только обновление конфигурации Squid через кнопку в интерфейсе SAMS, приходится вручную на сервере его перезапускать.

  100. Обнаружил, что https:// не попадают в статистику по сайтам…

    • Чтобы попадали, нужно настроить в Squid перехват HTTPS и перешифровку трафика под локальный сертификат безопасности, и установить этот сертификат в качестве доверенного на локальные машины. Но я бы не рекомендовал это делать, это небезопасно.

    • Если что инструкция как сделать перехват HTTPS для Squid 3.1-3.4 вот: http://wiki.squid-cache.org/Features/SslBump

      Для инструкций по более новым версиям можно оттуда же по ссылкам перейти.

  101. поламалась ссылка

    Получаем исходники SAMS2: svn checkout http://sams2.googlecode.com/svn/trunk/ sams2-read-only

    кто то может починить?

Оставить комментарий


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>