|  |    www.lissyara.su—> статьи—> FreeBSD—> подсчёт трафика—> SQUID+SAMS +Rejik-(NTLM)
 
 Установка Прокси сервера SQUID+SAMS Rejik3 c авторизацией по NTLM
Автор: Cancer.
 >>>>>Более подробнее<<<<<
   Появилась на днях задача настроить связку SQUID SAMS+REJIK с аунтентификацией по NTLMТак как есть ДОМЕН под управление Win 2003 Server, и нужна авторизация без ввода логина и пароля
 что бы пользователь зашел в систему под своей учетной записью и мог после этого (без ввода логина и паса) попасть в Интернет.
 Пошарил в инете и не нашел мануалов, пришлось по крупицам собирать :) по большей части помог сайт производителя софтины http://sams.perm.ru/
 
 
 
 SAMS позволяет создавать группы, ставить ограничение по трафику, запрет на сайты, резка банеров с помощью РЕЖИК, запрет по регулярным выражениям типа нельзя качать (/.mp3 /.avi /.wav /.mp4) итд на что фантазии хватит, 3 типа авторизации (NTLM NCSA IP)ну и что самое главное можно было потом из mysql тянуть логи в 1С. На 1С была сделана обработка для распознания рабочий личный сайты итд.
 В общем красиво и много полезного.
 
 
 SAMS представляет собой программное средство для администрирования доступа пользователей к прокси-серверу SQUID.
 SAMS это не биллиноговая система!
 
 Возможности системы:
 
 * Администрирование системы через web интерфейс
 * Ограничение объема трафика пользователей на месяц
 * Автоматическое отключение пользователей, превысивших лимит
 * Блокировка доступа пользователей к запрещенным ресурсам интернет
 * Настройка доступа пользователей через механизм шаблонов
 * Разбиение пользователей на группы для удобства администрирования системы
 * Ведение статистики посещенных пользователями ресурсов интернет
 * Формирование отчетов по трафику пользователей за любой отрезок времени
 * Поддержка видов авторизации SQUID: ntlm, ncsa, ip
 * Поддержка использования редиректоров SQUID: rejik, squidGuard
 * Ограничение скорости закачки для групп пользователей
 * Посылку сообщений администратору при отключении пользователей при превышении трафика
 * Для хранения данных используется СУБД MySQL
 
 
 
 
 Собственно вот версии ОС на которой я ставил
 
 
	
		| #uname -a FreeBSD proxy.domain.local 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Thu Jul 17 09:46:55 MSD 2008     cancer@domain.local:/usr/obj/usr/src/sys/proxy_kernel.2008-15-07  i386
 |  
Celeron-1700Hz,DDR-256Mb,HDD-20Gb=>2 сетевых интерфейса rl0 и rl1rl0 192.168.55.11 (в локалку смотрит)
 rl1 192.168.1.11  (в модем смотрит)
 
 Перед тем как начать установку обновите порты ОБЯЗАТЕЛЬНО!!!
 
 
 
 
 
 
 
 Устанавливаем SAMBA 3.0.32_1,1
 
		
| //> cd /usr/ports/net/samba3
/usr/ports/net/samba3/> make config
 |  
 
		
|      +--------------------------------------------------------------------+
     |                   Options for samba 3.0.32_1,1                     |
     | +----------------------------------------------------------------+ |
     | |  [X] LDAP         With LDAP support                            | |
     | |  [X] ADS          With Active Directory support                | |
     | |  [ ] CUPS         With CUPS printing support                   | |
     | |  [X] WINBIND      With WinBIND support                         | |
     | |  [ ] ACL_SUPPORT  With ACL support                             | |
     | |  [ ] AIO_SUPPORT  With Asyncronous IO support                  | |
     | |  [ ] FAM_SUPPORT  With File Alteration Monitor                 | |
     | |  [X] SYSLOG       With Syslog support                          | |
     | |  [ ] QUOTAS       With Disk quota support                      | |
     | |  [X] UTMP         With UTMP accounting support                 | |
     | |  [ ] PAM_SMBPASS  With PAM authentication vs passdb backends   | |
     | |  [ ] CLUSTER      With experimental cluster support            | |
     | |  [ ] DNSUPDATE    With dynamic DNS update(require ADS)         | |
     | |  [ ] EXP_MODULES  With experimental modules                    | |
     | |  [X] POPT         With system-wide POPT library                | |
     | |  [X] PCH          With precompiled headers optimization        | |
     | |  [ ] MAX_DEBUG    With maximum debugging                       | |
     | |  [ ] SMBTORTURE   With smbtorture                              | |
     +-+------v(+)------------------------------------------------------+-+
     |                       [  OK  ]       Cancel                        |
     +--------------------------------------------------------------------+
 |  
 
		
| /usr/ports/net/samba3//> make install clean
/usr/ports/net/samba3/> rehash
 |   Правим файл /etc/hosts
 
 
 
		
| ::1                     localhost.domain.local localhost
127.0.0.1               localhost.domain.local localhost
# Первая сетевая смотрящая в ЛАН
192.168.55.11         sams.domain.local     sams
192.168.55.11         sams.domain.local.
# Вторая сетевая смотрящая в модем
192.168.1.11           sams.domain.local
# Контроллер домена он же DNS и DHCP
192.168.55.1           server.domain.local   server
 |   Правим файл /etc/resolv.conf
 
 
 
		
| # Мой домен
domain  domain.local
# Указываем DNS сервер для первой сетевой карты
nameserver      192.168.55.1
# Указываем DNS провайдера для второй сетевой карты смотрящей в модем
nameserver      80.254.111.254
 |   
 Правим конфиг самбы до такого состояния
 
 
		
| //> ee /usr/local/etc/smb.conf
 |  
 
		
| [global]
   workgroup = DOMAIN
   server string = Самс Сервер
   security = ADS
   hosts allow = 192.168.55. 192.168.1. 127.
   log file = /var/log/samba/log.%m
   max log size = 50
   password server = server.domain.local
   realm = DOMAIN.LOCAL
   dns proxy = no
   display charset = koi8-r
   unix charset = koi8-r
   dos charset = cp866
   winbind separator = +
   winbind use default domain = yes
   winbind uid = 10000-15000
   winbind gid = 10000-15000
   winbind enum users = yes
   winbind enum groups = yes
 |   
 
 
 
 
 Настраиваем Керберос
Керберос нужен для того что бы наша Система поучила ключ от Win2003 ServerДля дальнейшего подключения к ДОМЕНУ
 
 
 Создаем конфиг для Кербероса/etc/krb5.conf
 
 
 
		
| [libdefaults]
        default_realm = DOMAIN.LOCAL
        clockskew = 300
        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
[realms]
        DOMAIN.LOCAL = {
                kdc = 192.168.55.1
                admin_server = 192.168.55.1
                kpasswd_server = 192.168.55.1
        }
[domain_realm]
        .domain.local = DOMAIN.LOCAL
 |   
 Правим файл /etc/nsswitch.conf
 
 
		
| //> cat /etc/nsswitch.conf
 |  
 
		
| group: files winbind
group_compat: nis
hosts: files dns
networks: files
passwd: files winbind
passwd_compat: nis
shells: files
 |   Получаем билет
 
 
		
| //> kinit -p administrator
administrator@DOMAIN.LOCAL's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
//>
 |  Если вам отвечает
 
		
| kinit: krb5_get_init_creds: unable to reach any KDC in realm DOMAIN.LOCAL
 |  То косяк в конфиге /etc/krb5.conf или с временем date, оно не должно разниться сервером 2003
 
 Проверяем получили мы ticket
 
 
		
| //> klist
Credentials cache: FILE:/tmp/krb5cc_0
        Principal: administrator@DOMAIN.LOCAL
  Issued           Expires        Principal
Nov 20 16:16:33  >>>Expired<<<  krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL
//>
 |   Подключаемся к ДОМЕНУ
 
 
		
| //> net ads join -U administrator
administrator's password:
Using short domain name -- DOMAIN
Joined 'SAMS' to realm 'DOMAIN.LOCAL'
//>
 |   
 Добавляем SAMBA в автозагрузку
 
 
		
| //> echo 'samba_enable="YES"' >> /etc/rc.conf
 |  Ну и запускаем SAMBA
 
		
| //> /usr/local/etc/rc.d/samba start
Performing sanity check on Samba configuration: OK
Stopping winbindd.
Stopping smbd.
Stopping nmbd.
Removing stale Samba tdb files: ........ done
Starting nmbd.
Starting smbd.
Starting winbindd.
//> 
 |   Проверяем видит ли Samba группы, пользователей домена
 
 
 
 
 
	
		| uid=10001(petrov) gid=10000(пользователи домена) groups=10000(пользователи домена), 10007(администраторы домена), 10039(сотрудники отдела ит)
 |  
 
 
 
 
 
 Ставим Веб сервер Apache 1.3
 
		
| //> 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
 
 
	
		| 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
 
		
| //> 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
 |  
 
		
| //> 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 ntlm program /usr/local/bin/ntlm_auth \
--helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param ntlm keep_alive on
auth_param basic program /usr/local/bin/ntlm_auth \
--helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Squid Proxy-Server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
 |   Создадим (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
 |  
 Должно быть примерно такое
 
	
		| 22506  ??  Is     0:00,14 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp (ntlm_auth) 22507  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp (ntlm_auth)
 22508  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp (ntlm_auth)
 22509  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp (ntlm_auth)
 22510  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-ntlmssp (ntlm_auth)
 22511  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-basic (ntlm_auth)
 22512  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-basic (ntlm_auth)
 22513  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-basic (ntlm_auth)
 22514  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-basic (ntlm_auth)
 22515  ??  Is   0:00,12 (ntlm_auth) --helper-protocol=squid-2.5-basic (ntlm_auth)
 84631  ??  Is   0:00,00 /usr/local/sbin/squid -D
 84633  ??  S    0:11,25 (squid) -D (squid)
 23440  p0  R+   0:00,00 grep squid
 |  
 Даем права для пользователя root и группы squid, так как у меня из-за этого проблемы были
 
 
		
| //> chown -R root:squid /var/db/samba/
 |   
 
 Cтавим СУБД Mysql 5.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
 |  Проверяем должно быть что то типа этого
 
 
	
		| 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 даем команду на перезагрузку апача
 
 
 
 Добавляем следующие строки в /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        #вот с таким содержанием
 |  
 Перезапускаем веб сервер командой
 
		
| //> /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)       | |
     | |  [ ] JSON        JavaScript Object Serialization support       | |
     | |  [ ] 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                        | |
     | |  [X] 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/php52-extensions/> make install clean
/usr/ports/lang/php52-extensions/> rehash
 |  Чтобы активировать модули apache даем команду на перезагрузку апача
 В файл /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
 |   
 
 
 
 
 
 
		
| //> 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
 |  Далее редактируем конфиг SAMS до такого состояния
 
		
| //> ee /usr/local/etc/sams.conf
 |  
 
		
| [client]
SQUID_DB=squidlog
SAMS_DB=squidctrl
MYSQLHOSTNAME=localhost
MYSQLUSER=sams
MYSQLPASSWORD=Ваш_пароль_пользователя_sams
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=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=shutdown -h now
CACHENUM=0
 |   
 
 
 
 SAMS_DB=squidctrl  - имя базы данных SAMSSQUID_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 KOI8-R]
 Разрешить доступ пользователей к своей статистике:
 по трафику за день                                           [X]
 по посещенным URL                                            [X]
 Тема иконок:                                                 [classic]
 Показывать дерево пользователей                              [X]
 Показывать пользователей как                                 [Фамилия Имя]
 Размер Килобайта, учитываемого вашим провайдером (byte)      [1024]
 Размер Мегабайта, учитываемого вашим провайдером (byte)      [1048576]
 Показывать графики в отчетах                                 [X]
 Создавать PDF отчеты:                                        [Не создавать]
 [Сохранить изменения]
 
 
 Администрирование SAMS ->
 Домен по умолчанию: DOMAIN
 Способ аутентификации пользователя: NTLM ( USER )
 Используемый сепаратор:  [X] +
 Настройка 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
 итд итп.
 
 
 Шаблоны пользователей -> Default
 Cписки SAMS:
 Перенаправление запроса
 [X] Banners
 [X] Counters
 [ ] Доступ запрещен ко всем URL
 Запрет доступа
                     [X] Chats
                     [X] Porno
                     [X] Localdomains
 Способ авторизации пользователей: NTLM
 
 
 Пользователи -> Загрузить всех пользователей домена
 Найдены пользователи домена: И там будет список пользователей вашего домена
 
 
 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 |  
					| файл | скачан | размер | размещён | примечание |  
					|  | 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С (Торговля, Бухгалтерия, Расчет), так что подойдет любая версия.
 
 
 
	
		| 
			
				
					|  Конфигурация 1Cv7.zip |  
					| файл | скачан | размер | размещён | примечание |  
					|  | 1923 | 14.3kb | 2008-07-28 | Конфигурация для учета посещения интернет |  |  
Конфигурация несколько устарела, делалась под логи usergate так что обработка по загрузке из базы SAMS
 
 
	
		| 
			
				
					|  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-20,последнее обновление: 2010-10-23,
 автор: Cancer
 
 |  | 
	
Комментарии пользователей [48 шт.]