Документация по ОС FreeBSD Понедельник, 29.04.2024, 16:10
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Squid

Установка Прокси сервера SQUID+SAMS Rejik3 c авторизацией по NTLM - Часть 1 [2008]
Появилась на днях задача настроить связку 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/cancer_kernell.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 |
+--------------------------------------------------------------------+

//> make && make install && make clean
//> rehash

Правим файл /etc/hosts

//> cat /etc/hosts

::1 localhost.domain.local localhost
127.0.0.1 localhost.domain.local localhost
# Первая сетевая смотрящая в ЛАН
192.168.55.111 sams.domain.local sams
192.168.55.111 sams.domain.local.
# Вторая сетевая смотрящая в модем
192.168.1.11 sams.domain.local
# Контроллер домена он же DNS и DHCP
192.168.55.1 server.domain.local

Правим файл /etc/resolv.conf

//> cat /etc/resolv.conf
# Мой домен
domain domain.local
# Указываем DNS сервер для первой сетевой карты
nameserver 192.168.55.1
# Указываем DNS провайдера для второй сетевой карты смотрящей в модем
nameserver 80.254.111.254

Правим конфиг самбы до такого состояния

//> /usr/local/etc/smb.conf

[global]
 workgroup = DOMAIN
 server string = Самс Сервер
 security = domain
 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


Устанавливаем Heimdal 1.0.1
 
Heimdal керберос нужен для того что бы наша Система поучила ключ от Win2003 Server
Для дальнейшего подключения к ДОМЕНУ

//> cd /usr/ports/security/heimdal

/usr/ports/security/heimdal/> make config

+--------------------------------------------------------------------+
| Options for heimdal 1.0.1 |
| +----------------------------------------------------------------+ |
| | [ ] LDAP Use OpenLDAP as the KDC backend | |
| | [ ] CRACKLIB Use CrackLib for password quality checking | |
| | [ ] X11 Build X11 utilies | |
+-+------v(+)------------------------------------------------------+-+
| [ OK ] Cancel |
+--------------------------------------------------------------------+

//> make && make install && make clean
//> rehash

Создаем конфиг Heimdal /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 admin
admin@DOMAIN.LOCAL's Password:
kinit: NOTICE: ticket renewable lifetime is 1 week
//>

Подключаемся к ДОМЕНУ

//> net ads join -U admin
admin's password:
Using short domain name -- DOMAIN
Joined 'SAMS' to realm 'DOMAIN.LOCAL'
//>

Проверяем все ли работает нормально

//> klist
Credentials cache: FILE:/tmp/krb5cc_0
 Principal: admin@DOMAIN.LOCAL

 Issued Expires Principal
Nov 20 16:16:33 >>>Expired<<< krbtgt/DOMAIN.LOCAL@DOMAIN.LOCAL

//>wbinfo -g
//>wbinfo -u 

//> id petrov
uid=10001(petrov) gid=10000(пользователи домена) groups=10000
(пользователи домена),10007(администраторы домена), 
10039(сотрудники отдела ит)

Добавляем 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.
//> 

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

//> cd /usr/ports/www/apache13
//> make && make install && make clean
//> rehash

 
Добавим строку в /etc/rc.conf для автозапуска apache при перезагрузке сервера

//> echo 'apache_enable="YES"' >> /etc/rc.conf

Запускаем сам apache

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

Смотрим запустился ли веб сервер apache

//> ps axw | grep http

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

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

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

 +--------------------------------------------------------------------+
 | Options for squid 2.7.5 |

 | +----------------------------------------------------------------+ |
 | | [X] SQUID_LDAP_AUTH Install LDAP 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 | |
 | | [X] MYSQLI MySQL 4.1+ back-end (use mysqli PHP extension) | |
 | | [ ] PGSQL PostgreSQL back-end (use pgsql PHP extension) | |
 | | | |
 +-+------v(+)------------------------------------------------------+-+
 | [ OK ] Cancel |
 +--------------------------------------------------------------------+

//> make && make install && make clean
//> rehash

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

#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

//> /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/

//> chmod 774 /usr/local/etc/squid
//> chmod 774 /usr/local/etc/squid/squid.conf
//> chmod 774 /usr/local/squid/logs/access.log


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

//> cd /usr/ports/databases/mysql51-server
//> make && make install && make clean
//> 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 'new_password'
//> /usr/local/bin/mysqladmin -u root -h hostname password 'new_password'

 
 
Категория: Squid | Добавил: oleg (26.11.2008)
Просмотров: 2766 | Комментарии: 3 | Рейтинг: 0.0/0 |
Всего комментариев: 3
3 oleg  
0
Прошу прощения, был не в курсе. КД удалил

2 Vitaly  
0
Настоятельно требую удалить из статьи мои контактные данные (ICQ *****)
Они предназначались исключительно для пользователей лиссияры

1 Vitaly  
0
Перепечатка с http://www.lissyara.su/articles/freebsd/traffic_count/squid+sams+rejik-ntlm/
Оригинал статьи обновился под новые версии ПО

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024