|
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 и 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
::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 - имя базы данных 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 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
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
10187
|
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
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
1919
|
14.3kb
|
2008-07-28
|
Конфигурация для учета посещения интернет
|
|
Конфигурация несколько устарела, делалась под логи usergate так что обработка по загрузке из базы SAMS
Dataload1.zip
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
1750
|
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 шт.]