Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> подсчёт трафика —> SQUID+SAMS +Rejik-(ADLDAP)

Установка Прокси сервера SQUID+SAMS Rejik3 c авторизацией по ADLDAP

Автор: Cancer.


На днях решил написать мануал простенький по установке связки SQUID SAMS+REJIK с аунтентификацией через LDAP, писал в общем для начинающих Unix'ойдов, да и для себя что бы не забыть. Думаю довольно хороший мануал получился. Да и думаю это самая простая настройка связки, ну если конечно есть AD LDAP итд итп :)
Да ну и естессно каждому своё.

Информация:
1. Есть ДОМЕН под управление Win 2003 Server, сервер работает как AD, DHCP, DNS, LDAP.
2. Есть машина с FreeBSD 6.2
Celeron-1700Hz,DDR-256Mb,HDD-20Gb =>2 сетевых интерфейса rl0 и rl1
rl0 192.168.55.11 (в локалку смотрит)
rl1 192.168.1.11  (в модем смотрит)

Задача:
Настроить связку Squid+Sams с аутентификацией через LDAP, для того что бы можно было добавлять пользователей с их паролями прямо из Active Directory.

Преимущества:
LDAP аутентификация - это очень удобно, так как логины и пароли хранятся в одном месте, а именно в AD.
Вход в Windows, Linux, FreeBSD итд итп (под доменный пользователем) и вход в интернет происходит под одим и тем же логином и паролем.

Недостатки:
Спрашивает логин и пароль, но я бы несказал что это недостаток, мне например нравится что при подключении к интернету спрашивает логин и пароль так как это более безопаснее.


Огромная благодарность http://www.permlug.org/
В особенности DogEater



SAMS позволяет создавать группы, ставить ограничение по трафику, запрет на сайты, резка банеров с помощью РЕЖИК, запрет по регулярным выражениям типа нельзя качать (/.mp3 /.avi /.wav /.mp4) итд на что фантазии хватит, 3 типа авторизации (NTLM NCSA IP)ну и что самое главное можно было потом из mysql тянуть логи в 1С. На 1С была сделана обработка для распознания рабочий личный сайты итд.
В общем красиво и много полезного.



SAMS представляет собой программное средство для администрирования доступа пользователей к прокси-серверу SQUID.
SAMS это не биллиноговая система!


Возможности системы:

   * Администрирование системы через web интерфейс
   * Ограничение объема трафика пользователей на месяц
   * Автоматическое отключение пользователей, превысивших лимит
   * Блокировка доступа пользователей к запрещенным ресурсам интернет
   * Настройка доступа пользователей через механизм шаблонов
   * Разбиение пользователей на группы для удобства администрирования системы
   * Ведение статистики посещенных пользователями ресурсов интернет
   * Формирование отчетов по трафику пользователей за любой отрезок времени
   * Поддержка видов авторизации SQUID: ntlm, ncsa, ip
   * Поддержка использования редиректоров SQUID: rejik, squidGuard
   * Ограничение скорости закачки для групп пользователей
   * Посылку сообщений администратору при отключении пользователей при превышении трафика
   * Для хранения данных используется СУБД MySQL


>>>>>Более подробнее<<<<<






Перед тем как начать установку обновите порты ОБЯЗАТЕЛЬНО!!!







Ставим Веб сервер Apache 1.3

Устанавливаем веб сервер Apache, для того что бы можно было управлять прокси сервером, просмотривать статистику и многое другое через веб интерфейс SAMS, написанный на php
//> cd /usr/ports/www/apache13
/usr/ports/www/apache13/> make install clean
/usr/ports/www/apache13/> rehash

Добавим строку в /etc/rc.conf для автозапуска apache при перезагрузке сервера
//> echo 'apache_enable="YES"' >> /etc/rc.conf

Запускаем сам apache
//> /usr/local/etc/rc.d/apache start

Смотрим запустился ли веб сервер apache
//> ps axw | grep http

6283 ?? Ss 0:00,05 /usr/local/sbin/httpd
6284 ?? I 0:00,00 /usr/local/sbin/httpd
6285 ?? I 0:00,00 /usr/local/sbin/httpd
6286 ?? I 0:00,00 /usr/local/sbin/httpd
6287 ?? I 0:00,00 /usr/local/sbin/httpd
6288 ?? I 0:00,00 /usr/local/sbin/httpd
6380 p0 R+ 0:00,00 grep http

Проверяем открывается ли страница набрав в любом веб браузере http://ip_tachki/




Ставим прокси сервер SQUID

Устанавливаем сердце нашей связки прокси сервер Squid, нужен он для пропуска пользователей в интернет, так же кеширования http, https, ftp трафика
//> cd /usr/ports/www/squid
/usr/ports/www/squid/> make config

     +--------------------------------------------------------------------+
     |                   Options for squid 2.7.9                          |
     | +----------------------------------------------------------------+ |
     | |  [ ] SQUID_KERB_AUTH      Install Kerberos authentication helpers|
     | |  [X] SQUID_LDAP_AUTH      Install LDAP authentication helpers  | |
     | |  [X] SQUID_NIS_AUTH       Install NIS/YP authentication helpers| |
     | |  [ ] SQUID_SASL_AUTH      Install SASL authentication helpers  | |
     | |  [X] SQUID_DELAY_POOLS    Enable delay pools                   | |
     | |  [ ] SQUID_SNMP           Enable SNMP support                  | |
     | |  [X] SQUID_CARP           Enable CARP support                  | |
     | |  [ ] SQUID_SSL            Enable SSL support for reverse proxies |
     | |  [ ] SQUID_PINGER         Install the icmp helper              | |
     | |  [X] SQUID_DNS_HELPER     Use the old 'dnsserver' helper       | |
     | |  [ ] SQUID_HTCP           Enable HTCP support                  | |
     | |  [ ] SQUID_VIA_DB         Enable forward/via database          | |
     | |  [ ] SQUID_CACHE_DIGESTS  Enable cache digests                 | |
     | |  [X] SQUID_WCCP           Enable Web Cache Coordination Prot. v1 |
     | |  [ ] SQUID_WCCPV2         Enable Web Cache Coordination Prot. v2 |
     | |  [ ] SQUID_STRICT_HTTP    Be strictly HTTP compliant           | |
     | |  [X] SQUID_IDENT          Enable ident (RFC 931) lookups       | |
     | |  [ ] SQUID_REFERER_LOG    Enable Referer-header logging        | |
     | |  [ ] SQUID_USERAGENT_LOG  Enable User-Agent-header logging     | |
     | |  [ ] SQUID_ARP_ACL        Enable ACLs based on ethernet address| |
     | |  [ ] SQUID_PF             Enable transparent proxying with PF  | |
     | |  [ ] SQUID_IPFILTER       Enable transp. proxying with IPFilter| |
     | |  [ ] SQUID_FOLLOW_XFF     Follow X-Forwarded-For headers       | |
     | |  [ ] SQUID_AUFS           Enable the aufs storage scheme       | |
     | |  [ ] SQUID_COSS           Enable the COSS storage scheme       | |
     | |  [X] SQUID_KQUEUE         Use kqueue(2) instead of poll(2)     | |
     | |  [X] SQUID_LARGEFILE      Support log and cache files >2GB     | |
     | |  [ ] SQUID_STACKTRACES    Create backtraces on fatal errors    | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/www/squid/> make install clean
/usr/ports/www/squid/> rehash


В конфиги добавляем такие строки для авторизации сквида в LDAP
И немного о squid_ldap_auth запросе
-b "ou=dep,dc=domain,dc=local"  - "ou=контейнер_AD,dc=domain,dc=local"
-D ldap@domain.local            - пользователь_AD@domain.local
-w password_ldap                - пароль_пользователя AD
-h 192.168.55.1 -p 389          - ip_адрес LDAP сервера и порт 389

//> ee /usr/local/etc/squid/squid.conf

#  TAG: http_access
#       Allowing or Denying access based on defined access lists
#
#       Access to the HTTP port:
#       http_access allow|deny [!]aclname ...
#
#       NOTE on default values:
#
#       If there are no "access" lines present, the default is to deny
#       the request.
#
#       If none of the "access" lines cause a match, the default is the
#       opposite of the last line in the list.  If the last line was
#       deny, the default is allow.  Conversely, if the last line
#       is allow, the default will be deny.  For these reasons, it is a
#       good idea to have an "deny all" or "allow all" entry at the end
#       of your access lists to avoid potential confusion.
#
#Default:
http_access deny all

... пропущено...

#Recommended minimum configuration per scheme:
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth \
-b "ou=dep,dc=domain,dc=local" -D ldap@domain.local -w password_ldap \
-f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName \
-h 192.168.55.1 -p 389
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

Примечание:Пользователь ldap должен быть создан в корне AD, так как я когда настраивал был пользователь в контейнере dep и не получал список сотрудников из контейнера dep

Создадим (SWAP) для прокси сервера
//> rehash
//> squid –z
2008/10/02 20:57:19| Creating Swap Directories
//>


Далее добавляем в /etc/rc.conf строку для автоматического запуска squid после перезагрузки
//> echo 'squid_enable="YES"' >> /etc/rc.conf

//> /usr/local/etc/rc.d/squid start

//> ps axw | grep squid

Должно быть примерно такое
7537 ?? Ss 0:00,01 (squid_ldap_auth) -b ou=dep,dc=domain,dc=local -D ldap@altair.local -w ldap -f (&(objectClass=person)(sAMAccountName=%s)) -u sAMAccountName -h 192.168.55.1
7539 ?? Ss 0:00,01 (squid_ldap_auth) -b ou=dep,dc=domain,dc=local -D ldap@domain.local -w ldap -f (&(objectClass=person)(sAMAccountName=%s)) -u sAMAccountName -h 192.168.55.1
7540 ?? Ss 0:00,01 (squid_ldap_auth) -b ou=dep,dc=domain,dc=local -D ldap@domain.local -w ldap -f (&(objectClass=person)(sAMAccountName=%s)) -u sAMAccountName -h 192.168.55.1
7541 ?? Ss 0:00,01 (squid_ldap_auth) -b ou=dep,dc=domain,dc=local -D ldap@domain.local -w ldap -f (&(objectClass=person)(sAMAccountName=%s)) -u sAMAccountName -h 192.168.55.1
7542 ?? Ss 0:00,01 (squid_ldap_auth) -b ou=dep,dc=domain,dc=local -D ldap@domain.local -w ldap -f (&(objectClass=person)(sAMAccountName=%s)) -u sAMAccountName -h 192.168.55.1
7544 p0 R+ 0:00,00 grep squid


Проверим
//> /usr/local/libexec/squid/squid_ldap_auth \
-b "ou=dep,dc=domain,dc=local" -D ldap@domain.local -w password_ldap \
-f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName \
-h 192.168.55.1 -p 389
# Далее вводим логин и пароль пользователя из AD (через пробел)
user password
OK            (Значит все отлично)
ERR Success   (Значит аутентификация не прошла)







Cтавим СУБД Mysql 5.1

Собственно устанавливаем Субд Mysql, где у нас будут храниться логи хождения пользователей по интернет страничкам, которые в дальнейшем можно будет загружать в программу 1С и распределять сайты по категориям рабочий, личный
//> cd /usr/ports/databases/mysql51-server
/usr/ports/databases/mysql51-server/> make install clean
/usr/ports/databases/mysql51-server/> rehash

Добавляем в /etc/rc.conf строку для запуска mysql
//> echo 'mysql_enable="YES"' >> /etc/rc.conf

И запускаем сам сервер
//> /usr/local/etc/rc.d/mysql-server start

Проверяем должно быть что то типа этого
//> ps axw | grep mysql

6210 p0 RV 0:00,00 grep mysql (csh)
6188 p1- S 0:00,02 /bin/sh /usr/local/bin/mysqld_safe
--defaults-extra-file=/var/db/mysql/my.cnf -- user=mysql --datadir=/var
6206 p1- S 0:00,94 /usr/local/libexec/mysqld
--defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/

Далее меняем пароль администратора СУБД
//> /usr/local/bin/mysqladmin -u root password 'PWD'
//> /usr/local/bin/mysqladmin -u root -h sams.domain.local password 'PWD'





Ставим PHP 5

//> cd /usr/ports/lang/php52
/usr/ports/lang/php52/> make config

     +--------------------------------------------------------------------+
     |                   Options for php52 5.2.14                          |
     | +----------------------------------------------------------------+ |
     | |  [X] CLI        Build CLI version                              | |
     | |  [X] CGI        Build CGI version                              | |
     | |  [X] APACHE     Build Apache module                            | |
     | |  [ ] DEBUG      Enable debug                                   | |
     | |  [X] SUHOSIN    Enable Suhosin protection system (not for jails) |
     | |  [ ] MULTIBYTE  Enable zend multibyte support                  | |
     | |  [ ] IPV6       Enable ipv6 support                            | |
     | |  [ ] MAILHEAD   Enable mail header patch                       | |
     | |  [ ] REDIRECT   Enable force-cgi-redirect support (CGI only)   | |
     | |  [ ] DISCARD    Enable discard-path support (CGI only)         | |
     | |  [X] FASTCGI    Enable fastcgi support (CGI only)              | |
     | |  [X] PATHINFO   Enable path-info-check support (CGI only)      | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

Устанавливаем.
/usr/ports/lang/php52/> make install clean
/usr/ports/lang/php52/> rehash


Чтобы активировать модули apache даем команду на перезагрузку апача
//> apachectl graceful

Добавляем следующие строки в /usr/local/etc/apache/httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Далее создаем тестовую страничку
//> ee /usr/local/www/data/index.php        #вот с таким содержанием

<?
    phpinfo();
?>

Перезапускаем веб сервер командой
//> /usr/local/etc/rc.d/apache restart

Проверяем работоспособность php заходим с любого
интернет браузера http://ip_tachki/index.php



Ставим PHP5-Extensions

//> cd /usr/ports/lang/php52-extensions
/usr/ports/lang/php52-extensions/> make config

     +--------------------------------------------------------------------+
     |                   Options for php52-extensions 1.3                  |
     | +----------------------------------------------------------------+ |
     | |  [ ] BCMATH      bc style precision math functions             | |
     | |  [ ] BZ2         bzip2 library support                         | |
     | |  [ ] CALENDAR    calendar conversion support                   | |
     | |  [X] CTYPE       ctype functions                               | |
     | |  [X] CURL        CURL support                                  | |
     | |  [ ] DBA         dba support                                   | |
     | |  [ ] DBASE       dBase library support                         | |
     | |  [ ] DOM         DOM support                                   | |
     | |  [ ] EXIF        EXIF support                                  | |
     | |  [ ] FILEINFO    fileinfo support                              | |
     | |  [ ] FILTER      input filter support                          | |
     | |  [ ] FRIBIDI     FriBidi support                               | |
     | |  [ ] FTP         FTP support                                   | |
     | |  [X] GD          GD library support                            | |
     | |  [X] GETTEXT     gettext library support                       | |
     | |  [ ] GMP         GNU MP support                                | |
     | |  [X] HASH        HASH Message Digest Framework                 | |
     | |  [X] ICONV       iconv support                                 | |
     | |  [ ] IMAP        IMAP support                                  | |
     | |  [ ] INTERBASE   Interbase 6 database support (Firebird)       | |
     | |  [X] JSON        JavaScript Object Serialization support       | |
     | |  [X] LDAP        OpenLDAP support                              | |
     | |  [ ] MBSTRING    multibyte string support                      | |
     | |  [ ] MCRYPT      Encryption support                            | |
     | |  [ ] MHASH       Crypto-hashing support                        | |
     | |  [ ] MING        ming shockwave flash support                  | |
     | |  [ ] MSSQL       MS-SQL database support                       | |
     | |  [X] MYSQL       MySQL database support                        | |
     | |  [ ] MYSQLI      MySQLi database support                       | |
     | |  [ ] NCURSES     ncurses support (CLI only)                    | |
     | |  [ ] ODBC        unixODBC support                              | |
     | |  [ ] OPENSSL     OpenSSL support                               | |
     | |  [ ] PCNTL       pcntl support (CLI only)                      | |
     | |  [X] PCRE        Perl Compatible Regular Expression support    | |
     | |  [X] PDF         PDFlib support (implies GD)                   | |
     | |  [X] PDO         PHP Data Objects Interface (PDO)              | |
     | |  [X] PDO_SQLITE  PDO sqlite driver                             | |
     | |  [ ] PGSQL       PostgreSQL database support                   | |
     | |  [X] POSIX       POSIX-like functions                          | |
     | |  [ ] PSPELL      pspell support                                | |
     | |  [ ] READLINE    readline support (CLI only)                   | |
     | |  [ ] RECODE      recode support                                | |
     | |  [X] SESSION     session support                               | |
     | |  [ ] SHMOP       shmop support                                 | |
     | |  [X] SIMPLEXML   simplexml support                             | |
     | |  [ ] SNMP        SNMP support                                  | |
     | |  [ ] SOAP        SOAP support                                  | |
     | |  [ ] SOCKETS     sockets support                               | |
     | |  [ ] SPL         Standard PHP Library                          | |
     | |  [X] SQLITE      sqlite support                                | |
     | |  [ ] SYBASE_CT   Sybase database support                       | |
     | |  [ ] SYSVMSG     System V message support                      | |
     | |  [ ] SYSVSEM     System V semaphore support                    | |
     | |  [ ] SYSVSHM     System V shared memory support                | |
     | |  [ ] TIDY        TIDY support                                  | |
     | |  [X] TOKENIZER   tokenizer support                             | |
     | |  [ ] WDDX        WDDX support (implies XML)                    | |
     | |  [ ] XML         XML support                                   | |
     | |  [X] XMLREADER   XMLReader support                             | |
     | |  [ ] XMLRPC      XMLRPC-EPI support                            | |
     | |  [X] XMLWRITER   XMLWriter support                             | |
     | |  [ ] XSL         XSL support (Implies DOM)                     | |
     | |  [ ] YAZ         YAZ support (ANSI/NISO Z39.50)                | |
     | |  [ ] ZIP         ZIP support                                   | |
     | |  [X] ZLIB        ZLIB support                                  | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/lang/php5-extensions/> make install clean
/usr/ports/lang/php5-extensions/> rehash


Чтобы активировать модули apache даем команду на перезагрузку апача
//> apachectl graceful

В файл /usr/local/etc/apache/httpd.conf добавить директиву ExecCGI
Это разрешит загрузку файлов на сервер через web интерфейс
//> ee /usr/local/etc/apache/httpd.conf           #и добавляем следующее

  <Directory />
  Options FollowSymLinks ExecCGI
  AllowOverride None
  </Directory>

Настраиваем php

//> cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini

//> ee /usr/local/etc/php.ini                #и правим

safe_mode = On
safe_mode_exec_dir = "/usr/local/share/sams/bin"

 

Перезагрузим Apache
//> /usr/local/etc/rc.d/apache restart




Установка SAMS-1.0.5

//> cd /usr/ports/www/sams
/usr/ports/www/sams/> make config

     +--------------------------------------------------------------------+
     |                   Options for sams 1.0.5_3,1                       |
     | +----------------------------------------------------------------+ |
     | |  [X] NTLM       NTLM autorization/ActiveDirectory support      | |
     | |  [X] INSTALLGD  Graphic reports                                | |
     | |                                                                | |
     | |                                                                | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/www/sams/> make install clean
/usr/ports/www/sams/> rehash

Правим конфиг самса до такого состояния
//> cp /usr/local/etc/sams.conf.sample /usr/local/etc/sams.conf
//> ee /usr/local/etc/sams.conf

[client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=qwerty
MYSQLVERSION=5.1
SQUIDCACHEFILE=access.log
SQUIDROOTDIR=/usr/local/etc/squid
SQUIDLOGDIR=/usr/local/squid/logs
SQUIDCACHEDIR=/usr/local/squid/cache
SAMSPATH=/usr/local
SQUIDPATH=/usr/local/sbin
#SQUIDGUARDLOGPATH=/var/log
#SQUIDGUARDDBPATH=/var/db/squidGuard
RECODECOMMAND=/usr/local/bin/iconv -f KOI8-R -t 866 %finp > %fout
LDAPSERVER=192.168.55.1
LDAPBASEDN=DOMAIN.LOCAL
LDAPUSER=Administrator
LDAPUSERPASSWD=Пароль
LDAPUSERSGROUP=dep
REJIKPATH=/usr/local/rejik
SHUTDOWNCOMMAND=/sbin/shutdown -h now
CACHENUM=0





Немного о конфиге SAMS :

SAMS_DB=squidctrl  - имя базы данных SAMS
SQUID_DB=squidlog - имя базы данных, где SAMS хранит информацию, полученную из логов SQUID
MYSQLHOSTNAME=localhost - адрес хоста, где стоит MySQL
MYSQLUSER=sams - Имя пользователя MySQL, от имени которого будет работать SAMS
MYSQLPASSWORD=yourpasswd - Пароль пользователя в MySQL
Настройка работы со SQUID:
SQUIDROOTDIR=/usr/local/etc/squid - Путь к директории, где лежит конфиг SQUID
SQUIDLOGDIR=/usr/local/squid/logs - Путь к директории, где лежит файл логов SQUID
SQUIDCACHEFILE=access.log - Имя файла логов SQUID
SQUIDPATH=/usr/local/sbin - Путь, где лежит SQUID
SQUIDCACHEDIR=/usr/local/squid/cache - Путь к кэшу SQUID. Необходимо для работы функции восстановления файлов из кэша SQUID
Путь расположения SAMS:
SAMSPATH=/usr/local - Путь, куда установлен SAMS
Если вы хотите использовать редиректор SQUIDGUARD, необходимо отредактировать эти пункты
SQUIDGUARDLOGPATH=/var/log
SQUIDGUARDDBPATH=/var/db/squidguard
Если вы хотите использовать редиректор REJIK, необходимо отредактировать этот пункт
REJIKPATH=/path/to/rejik
Если вы хотите использовать NTLM или AD авторизацию и у вас есть имена пользователей на руссокм языке, необходимо изменить этот пункт:
RECODECOMMAND=iconv -f KOI8-R -t 866 %finp > %fout - команда перекодирования имен пользователей из используемой у вас кодировки в dos-866
Если вы хотите использовать авторизацию в Active Directory, отредактируйте эти пункты
LDAPSERVER=192.168.0.1 - ip адрес или имя сервера Active Directory
LDAPBASEDN=domain.name - ваш домен
LDAPUSER=username - имя пользователя, входщего в группу администраторы домена
LDAPUSERPASSWD=passwd
LDAPUSERSGROUP=Users - группа, в которую входят пользователи доменаю Для AD это обычно Users
CACHENUM=номер - Номер прокси-сервера SQUID, зарегистрированного в SAMS. SAMS поддерживает возможность управлениями несколькими прокси серверами SQUID (на данный момент только команда на реконфигурирование).
SHUTDOWNCOMMAND=shutdown -h now - Команда, выполняемая при нажатии на кнопку (SAMS->"Shutdown proxy server"). Данная команда добавлена для удобства удаленного выключения прокси сервера.






Теперь добавляем линк в конфиг Apache
//> ee /usr/local/etc/apache/httpd.conf

Alias /sams "/usr/local/share/sams/"
<Directory "/usr/local/share/sams/">
    AllowOverride AuthConfig
        Options Indexes MultiViews
        Order allow,deny
        Allow from all
</Directory>

Ну и перезагрузим Apache
//> /usr/local/etc/rc.d/apache restart



Создаем Базы и пользователя самс в СУБД Mysql, для этого перейдите в любом интернет браузере по ссылке http://ip_tachki/sams/   и там вы увидите



Нужно нажать на кнопку Run SAMS database installation script тем самым мы запустим скрипт по созданию нужных баз и пользователя в MySQL





MySQL Hostname: Указываем где у нас находится сервер MySQL, а именно localhost
MySQL login: Вводим администратора СуБД MySQL, а именно root
MySQL password: Пароль root СУБД MYSQL
Sams MySQL user: Вводим пользователя под которым самс будет подключаться к БД (а именно которого мы указали в sams.conf)
Sams MySQL user password: Вводим пароль для пользователя sams, естественно так же который мы указали в sams.conf

Ну и нажимаем кнопку Create Database





Далее вы должны увидеть вот такое чудо


Если видим подобное чудо, то все отлично!,  нажимаем на кнопку Starting SAMS webinterface





Далее нужно добавить строку # REQUIRE: mysql для того что бы демон самса запускался пожже mysql
Демон должен выглядеть так
//> ee /usr/local/etc/rc.d/sams

#!/bin/sh
# $FreeBSD: ports/www/sams/files/sams.sh.in,v 1.1 2006/12/29 20:18:35

# PROVIDE: sams
# REQUIRE: mysql
# REQUIRE: LOGIN cleanvar
# KEYWORD: shutdown
....пропущено....

Добавляем в /etc/rc.conf строку sams_enable="YES" для того что бы SAMS запускался при старте системы
//> echo 'sams_enable="YES"' >> /etc/rc.conf


Запускаем SAMS
//> /usr/local/etc/rc.d/sams start





Заходим в веб интерфейс, по умолчанию пользователь admin, пароль qwerty (всегда так)

Настройки WEB интерфейса ->
Язык:                                                        [Russian UTF-8]
Разрешить доступ пользователей к своей статистике:
по трафику за день                                           [X]
по посещенным URL                                            [X]
Тема иконок:                                                 [classic]
Показывать дерево пользователей                              [X]
Показывать пользователей как                                 [Фамилия Имя]
Размер Килобайта, учитываемого вашим провайдером (byte)      [1024]
Размер Мегабайта, учитываемого вашим провайдером (byte)      [1048576]
Показывать графики в отчетах                                 [X]
Создавать PDF отчеты:                                        [Не создавать]
                        [Сохранить изменения]


Администрирование SAMS ->
Домен по умолчанию: DOMAIN.LOCAL
Способ аутентификации пользователя: Active Directory
Настройка samsdaemon: Проверять наличие команды на реконфигурирование squid каждые 1 секунду
Обрабатывать логи SQUID:  [X]
Используя: Запускать обработчик логов через N минут
обрабатывать через: 1 минута
Автоматически очищать счетчики трафика пользователей: [X]
Путь к wbinfo:  /usr/local/bin
файл перенаправления запроса: http://ip_tachki/sams/icon/classic/blank.gif
Путь к каталогу, где лежат файлы запрета запроса: http://ip_tachki/sams/messages
Редиректор: Пока ставим "Не использовать редиректор"
Включить ограничение скорости доступа пользователей (delaypool): [ ]
Сохранять данные о трафике в базе за последние: Не сохранять
Сохранить изменения


SAMS -> Локальные домены
И добавляем свои локальные сети
127.0.0.1          Добавить URL
192.168.55.0/24    Добавить URL
sams.domain.local  Добавить URL
итд итп.


Шаблоны пользователей -> Default
Cписки SAMS:
Перенаправление запроса
                     [X] Banners
                     [X] Counters

[ ] Доступ запрещен ко всем URL
    Запрет доступа
                     [X] Chats
                     [X] Porno
                     [X] Localdomains

Способ авторизации пользователей: ADLD


Пользователи -> Загрузить всех пользователей домена
Найдены пользователи домена: И там будет список пользователей вашего домена


SQUID -> Реконфигурирование SQUID -> Реконфигурировать








Ставим Режик

Устанавливаем редиректор РЕЖИК, нужен он для того что бы запрещать доступ на ненужные для работы сайты, файлы, так же нужен и для отрубания пользователей которые превысили свой лимит.
//> cd /usr/ports/www/rejik
/usr/ports/www/rejik/> make config

     +--------------------------------------------------------------------+
     |                   Options for rejik 3.2.6                          |
     | +----------------------------------------------------------------+ |
     | |  [X] BAN          With banlists                                | |
     | |  [ ] DBL          With DBL scripts                             | |
     | |  [ ] WWW          With error pages                             | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+

/usr/ports/www/rejik/> make


Для того что бы режик был регистронезависимым нужно раскомментировать строку:
#define CASE_INDEPENDENT
/usr/ports/www/rejik/> ee work/redirector/vars.h

И раскомментируем строку
//#define CASE_INDEPENDENT
до такого состояния
#define CASE_INDEPENDENT


И устанавливаем rejik
/usr/ports/www/rejik/> make install
/usr/ports/www/rejik/> rehash


Далее копируем банлисты в рабочий каталог Режика.
//> cp -R /usr/ports/www/rejik/work/banlists /usr/local/rejik


Даем права на бан лист squid:squid, думаю не повредит так как надоели с граблями (прав) на него
//> chown -R squid:squid /usr/local/rejik/banlists


Проверяем, правильно ли прописаны пути в redirector.conf
Правим эти строки примерно до такого состояния
//> ee /usr/local/rejik/redirector.conf

Пример такой

error_log /usr/local/rejik/redirector.err
change_log /usr/local/rejik/redirector.log
make-cache /usr/local/rejik/make-cache
#allow_urls /usr/local/rejik/banlists/allow_urls

<BANNER>
ban_dir /usr/local/rejik/banlists/banners
url http://127.0.0.1/messages/1x1.gif
#log off

<PORNO>
ban_dir  /usr/local/rejik/banlists/porno
url http://127.0.0.1/messages/porno.html

<MP3>
ban_dir /usr/local/rejik/banlists/mp3
url http://127.0.0.1/messages/mp3.html

<JS>
ban_dir /usr/local/rejik/banlists/js
url http://127.0.0.1/messages/js.js
#log off

Для этого нужно создать каталог messages
//> mkdir /usr/local/www/data/messages



Качаем, распаковываем файлы и кладем в /usr/local/www/data/messages

Страничка запрета порно и mp3
файл скачан размер размещён примечание
www.tgz
10191 1.3kb 2008-08-15 /usr/local/www/data/messages


и даем права
//> chown -R www:www /usr/local/www/data/messages/




Добавляем строку для редиректора Режик
//> ee /usr/local/etc/squid/squid.conf

Будьте внимательнее !!!
#  TAG: url_rewrite_program
#       Specify the location of the executable for the URL rewriter.
#       Since they can perform almost any function there isn't one included.
#
#       For each requested URL rewriter will receive on line with the format
#
#       URL <SP> client_ip "/" fqdn <SP> user <SP> method <SP> urlgroup
#        [<SP> kvpairs] <NL>
#
#       In the future, the rewriter interface will be extended with
#       key=value pairs ("kvpairs" shown above).  Rewriter programs
#       should be prepared to receive and possibly ignore additional
#       whitespace-separated tokens on each input line.
#

#       And the rewriter may return a rewritten URL. The other components of
#       the request line does not need to be returned (ignored if they are).
#
#       The rewriter can also indicate that a client-side redirect should
#       be performed to the new URL. This is done by prefixing the returned
#       URL with "301:" (moved permanently) or 302: (moved temporarily).
#
#       It can also return a "urlgroup" that can subsequently be matched
#       in cache_peer_access and similar ACL driven rules. An urlgroup is
#       returned by prefixing the returned URL with "!urlgroup!".
#
#       By default, a URL rewriter is not used.
#
#Default:
# none
url_rewrite_program /usr/local/rejik/redirector /usr/local/rejik/redirector.conf




Реконфигурируем squid



В веб интерфейсе
Администрирование SAMS ->
Редиректор: Rejik


SQUID -> Реконфигурирование SQUID -> Реконфигурировать




 









Вот тут можете его рассмотреть (демо версия) http://sams.perm.ru/demo/index.html
по умолчанию Пользователь admin пароль admin







Кофигурация 1С

Теперь собственно обработка результатов. Как известно руководители любят смотреть кто и как часто использует интернет в Личных целях. Для этого нам нужно где то регистрировать какие сайты посещались (по типу личный или не личный) и сколько было оттуда получено информации. Так как в России программистов 1С больше чем пользователей :) используем в качестве платформы ее родную.

Для начала создадим простейшую конфигурацию, в которой будет справочник сайты, справочник сотрудники, справочник отделы и документ Детализация Интернет. Нам не требуется ни одна компонента 1С (Торговля, Бухгалтерия, Расчет), так что подойдет любая версия.

Конфигурация 1Cv7.zip
файл скачан размер размещён примечание
1Cv7.zip
1923 14.3kb 2008-07-28 Конфигурация для учета посещения интернет

Конфигурация несколько устарела, делалась под логи usergate так что обработка по загрузке из базы SAMS

Dataload1.zip
файл скачан размер размещён примечание
Dataload1.zip
1754 3.5kb 2008-07-28 Обработка по загрузке данных из SAMS

Для работы требуется 2 компонента v7mysql.dll и 1cpp.dll  (без второй можно обойтись, она используется только для преобразования даты в строку SQL типа 20080101, что можно сделать и в самой 1С)

Приложенные файлы конечно делались под специфические задачи, и скорее всего сразу не заработают, по всем вопросам конфигурации и обработки, лучше всего обращайтесь к ее автору (yudinvs icq: 880916)




Файлы конечно распространяются свободно, 1С конечно нет.







Документация

http://sams.perm.ru/
http://www.rejik.ru/
http://sams.permlug.org/
http://sams.perm.ru/doc/ru/index.html
http://www.squid-cache.org/
http://squid.opennet.ru/



размещено: 2008-11-26,
последнее обновление: 2010-10-23,
автор: Cancer


Oloremo, 2008-11-26 в 12:20:12

Спасибо за статью, но я всё же никак не могу понять, как уживаются такие вещи как:

apache 1.3 (unsupported?)
MySQL 5.1 (BETA)
PHP5 - со всеми экстеншенами(тут не нужно и 1\3 из них).

Ну это же всё совершенно не нужно.

fr33man, 2008-11-26 в 13:02:29

graceful — это не загрузка модулей, а рестарт апача.


      graceful
             Gracefully  restarts  the  Apache httpd daemon. If the daemon is
             not running, it is started. This differs from a  normal  restart
             in  that  currently  open  connections  are  not aborted. A side
             effect is that old log files will  not  be  closed  immediately.
             This  means that if used in a log rotation script, a substantial
             delay may be necessary to ensure that  the  old  log  files  are
             closed before processing them. This command automatically checks
             the configuration files as in configtest before  initiating  the
             restart  to  make sure Apache doesn't die. This is equivalent to
             apachectl -k graceful.

opt1k, 2008-11-26 в 14:23:14

не пойму, ldap аутентификация происходит напрямую из АД? если да то зачем тогда самба?

Somebody, 2008-11-26 в 14:36:54

2 Oloremo
Как и Heimdal, как и куча ненужных операций, как и конфиг /etc/sams.conf

linked, 2008-11-26 в 20:38:47

А чем не устраивает /usr/ports/www/sams/?

arksu, 2008-11-26 в 21:55:13

перемудрено. никакой оптимизации. SAMS - не понравился изначально.

m0ps, 2008-11-26 в 22:27:58

linked, в портах старая версия была раньше, только 12 дней назад обновили. видимо Canсer это пропустил.

а вообще, не понял принципиальной разницы между этой и предыдущей (http://www.lissyara.su/?id=1808) статьей.
и там и здесь - авторизация из домена.

filier, 2008-11-26 в 23:30:00

Eto i Prejneaia 4to  reklama SAMS

forever.eterno, 2008-11-27 в 5:24:50

Когда мне нада было настроить проксю именно эта статья мне и помогла, за что больше спасибо Cancer'y :)
Ну видимо да, есть недачеты, но других таких статей почти нет. За одно это можно сказать спасибо и отдельное спасибо что Cancer'y за то что оказался отзывчивым и помагал по icq'e настраивать :)

Cancer, 2008-11-27 в 8:43:09

linked
так как там версия старенькая sams 1.0.3,1

Cancer, 2008-11-27 в 8:45:02

linked

2 разные авторизации NTLM и LDAP

Baru, 2008-11-27 в 10:46:48

1.1.0 - текущая разрабатываемая версия. Включает последние исправления а также новые возможности. Но при этом не всегда является работоспособной. Рекомендуется для использования только разработчикам.
1.0.3 - последняя стабильная версия

это с http://sams.nixdev.net/wiki/versions

joyStick, 2008-12-01 в 17:21:58

Спасибо Cancer всё работает как чясики!

test, 2008-12-07 в 10:49:29

test

Гуест, 2008-12-07 в 23:23:49

Почему у меня коряво в Опере открывается САМС?

Быдлогей, 2008-12-09 в 15:29:25

> Почему у меня коряво в Опере открывается САМС?
Потому что ты лох.

gonzo111, 2008-12-10 в 11:33:31

Обновление самса до 1.0.4

1)сбекапить /etc/sams.conf
2)Сконфигурируйте и скомпилируйте SAMS
./configure
gmake
2)Остановите samsdaemon
Если вы импользуете редиректор sams, остановите SQUID.
Обновите версию SAMS.
gmake update
3)с бекапа взять/etc/sams.conf
4)лучше сперва запустить самс в режиме отладки /usr/local/bin/samsdaemon -d и убедится что все в норме, он будет считать и через определенные периоды обновлять базу мускула,парсить логи
countdown: 2
countdown: 1
countdown: 0
countdown: -1
starting log parser/ parser time=1 60
start time: 2008-12-10 10:33:5
starting sams /usr/local/bin/sams
countdown: 59

5)залогинится в вэб интерфейс mysql->Upgrade SAMS database,
Проверка таблиц базы данных SAMS на ошибки
6)squid-> реконфигурировать
и проверить что напишет в режиме дебага самс
7) запустить в нормальном режиме ./samsd start
8) по желанию прикрутить monit чтоб сам его подымал если вдруг упадет в корку

gonzo111, 2008-12-10 в 11:56:14

9) и снова и снова заменяем free на top в
/usr/local/www/data/sams/bin/freemem
/usr/local/www/data/sams/bin/freeswap

Noobie, 2009-11-06 в 12:47:38

Делаю без AD
squid 2.7
sams 1.04
mysql 5.1.40

Все стартует норм, база создалась в веб-интерфейс зашел, но там кроме: User Authenticate, SAMS, Users > Administrators, Users > Users ничего нету. Когда заходишь в какую либо группу то там пусто. Кто нить сталкивался?

kik13, 2010-01-07 в 17:20:38

По поводу этого:
#Recommended minimum configuration per scheme:
auth_param basic program /usr/local/libexec/squid/squid_ldap_auth \
-b "ou=dep,dc=domain,dc=local" -D ldap@domain.local -w password_ldap \
-f "(&(objectClass=person)(sAMAccountName=%s))" -u sAMAccountName -h 192.168.55.1 -p 389

Замечено что аутентификация в AD прокатывает только для организационных подразделений и login names на English, если хотя бы одно из них введенно в AD на русском, то команда squid_ldap_auth будет возращать всегда Err Success
Проверено на SBS 2008 Premium, W2K8 Standard, W2K3 Standard.

kik13, 2010-01-07 в 21:44:50

Еще один косяк был замечен при редактировании файла /usr/local/etc/squid/squid.conf
Дело в том, что если удалить так называемые TAG метки в squid.conf
(например:
# TAG: http_access
# TAG: acl
итд
)
, то в результате при реконфигурировании SQUID из web админки SAMS не заносятся изменения. Поэтому будьте внимательны и осторожны. Это касается в основном людей которые не редактируют squid.conf, а пишут с нуля стирая все коменты default-ного конфига.



 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0829 секунд
Из них PHP: 63%; SQL: 37%; Число SQL-запросов: 89 шт.
Исходный размер: 137760; Сжатая: 24528