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

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

Задача настроить связку SQUID SAMS+REJIK с аунтентификацией по NTLM
Так как есть ДОМЕН под управление Win 2003 Server, и нужна авторизация без ввода логина и пароля
что бы пользователь зашел в систему под своей учетной записью и мог после этого (без ввода логина и паса) попасть в Интернет.
Пошарил в инете и не нашел мануалов, пришлось по крупицам собирать :) по большей части помог сайт производителя софтины 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 и rl1
rl0 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
//> cat /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
//> cat /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
//> ee /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 группы, пользователей домена
//> wbinfo -g
//> wbinfo -u
//> id petrov
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
//> 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
Проверяем открывается ли страница набрав в любом веб браузере 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
//> ps axw | grep squid
Должно быть примерно такое
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
Проверяем должно быть что то типа этого
//> 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 заходим с любого
интернет браузера 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 даем команду на перезагрузку апача
//> apachectl graceful
В файл /usr/local/etc/apache/httpd.conf добавить директиву ExecCGI
Это разрешит загрузку файлов на сервер через web интерфейс
//> ee /usr/local/etc/apache/httpd.conf #и добавляем следующее
<Directory />
Options FollowSymLinks ExecCGI
AllowOverride None

Настраиваем 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
Далее редактируем конфиг 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:

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


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

Создаем Базы и пользователя самс в СУБД Mysql, для этого перейдите в любом интернет браузере по ссылке 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
файл перенаправления запроса: ip_tachki/sams/icon/classic/blank.gif
Путь к каталогу, где лежат файлы запрета запроса: 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

ban_dir /usr/local/rejik/banlists/banners
url 127.0.0.1/messages/1x1.gif
#log off

ban_dir /usr/local/rejik/banlists/porno
url 127.0.0.1/messages/porno.html

ban_dir /usr/local/rejik/banlists/mp3
url 127.0.0.1/messages/mp3.html

ban_dir /usr/local/rejik/banlists/js
url 127.0.0.1/messages/js.js
#log off
Для этого нужно создать каталог messages
//> mkdir /usr/local/www/data/messages

Качаем, распаковываем файлы и кладем в /usr/local/www/data/messages
ФАЙЛ СКАЧАТЬ

Страничка запрета порно и mp3
9824 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 client_ip "/" fqdn user method urlgroup
# [kvpairs] #
# 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 -> Реконфигурировать

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









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

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

Конфигурация 1Cv7.zip
Скачать конфигурацию.

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

СКАЧАТЬ


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

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

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

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

Нет комментариев