
Про Squid рассказывать не буду, а про возможности QCS расскажу.
Что же умеет делать QuintoLabs Content Security
* Удаляет назойливую рекламу
* Запрет на закачку файлов
* Групповой контроль
* Исключение любого домена, подсети, ip из фильтра
* Высокая производительность
* Легкая настройка и обслуживание
* Поддержка дистрибутивов RedHat, CentOS, Fedora, Debian, Ubuntu
Для настройки связки у нас имеется предварительно настроенный
1) dc.example.lan [192.168.28.20] — Win2K2008 с DNS и Active Direcory
2) 192.168.28.2 — Шлюз
3) DNS [192.168.28.20]
3) example.lan — Домен
4) proxy.example.lan — Наш сервер CentOS 6
5) client.example.lan — Клиент Win7
Далее будем настраивать на proxy сервер(CentOS) с учетом того что сервер на Win2K2008 с нужными нам службами настроен
Настраиваем статический ip в /etc/sysconfig/network-scripts/ifcfg-eth0:
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=192.168.28.21
ONBOOT=yesВыставляем шлюз /etc/sysconfig/network:
GATEWAY=192.168.28.2Указываем dns в /etc/resolv.conf:
nameserver 192.168.28.20Рестарт сетевых интерфейсов
/etc/init.d/network restartПингуем:
$ping -c 3 192.168.28.2Если все удачно. то можно двигаться дальше
Обновляемся:
yum updateа после ставим дополнительные пакеты:
yum install bind-utilsустанавливаем ntp
yum install ntpдобавим в автозагрузку
chkconfig ntpd onОткрываем /etc/ntp.conf и добавляем на контроллер домена в конфиг

Останавливаем сервис:
service ntpd stopСинхронизируемся с нашим dc:
ntpdate -b dc.example.lanи запускаем обратно сервис ntp:
service ntpd startУстанавливаем kerberos:
yum install krb5-workstation krb5-libsПриводим конфиг /etc/krb5.conf к аналогичному виду:
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = EXAMPLE.LAN
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
default_tgs_enctypes = rc4-hmac
default_tkt_enctypes = rc4-hmac
permitted_enctypes = rc4-hmac
[realms]
EXAMPLE.LAN = {
kdc = dc.example.lan
admin_server = dc.example.lan
default_domain = example.lan
}
[domain_realm]
.example.lan = EXAMPLE.LAN
example.lan = EXAMPLE.LANПробуем получить билетик:
kinit Administrator@EXAMPLE.LANЕсли прошло все без проблем то проверяем выданный нам билет:
klistи видим:
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: Administrator@EXAMPLE.LAN
Valid starting Expires Service principal
12/07/11 11:07:58 12/07/11 21:08:00 krbtgt/EXAMPLE.LAN@EXAMPLE.LAN
renew until 12/14/11 11:07:58Перегружаемся:
shutdown -r nowУстанавливаем sabma и заводим наш сервер в домен
yum install sambaдобавляем в атозагрузку:
chkconfig smb onОткрываем конфиг самбы /etc/samba/smb.conf и приводим его к такому виду:
[global]
workgroup = EXAMPLE
realm = EXAMPLE.LAN
server string = Samba Server Version %v
security = ADS
log file = /var/log/samba/log.%m
max log size = 50
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = NoПерезапустим самбу:
service smb restartИнициализируем kerberos:
kinit Administrator@EXAMPLE.LAN
klist
net ads join -S dc.example.lan -U Administrator%P@ssw0rd
Открываем оснастку AD и проверяем появился ли наш proxy сервер в OU «Computers»

Видим положительный результат и опять ребут:
shutdown -r nowУстанавливаем Squid:
yum install squidОткрываем /etc/squid/squid.conf, находим нужные нам строки и заменяем их:
visible_hostname proxy.example.lan
http_access allow localnet and acl localnet src 192.168.28.0/24Добавляем в автозагрузку:
chkconfig squid onПерезапустим сервис:
service squid startДобавим запись по умолчанию в файл /etc/krb5.keytab
net ads keytab add HTTP -U administrator
Processing principals to add...
Enter administrator's password:
Изменяем владельца файла:
chown squid:squid /etc/krb5.keytabи выставляем chmod:
chmod 400 /etc/krb5.keytabМеняем содержимое конфига в /etc/squid/squid.conf:
auth_param negotiate program /usr/lib/squid/negotiate_kerb_auth -s HTTP/proxy
auth_param negotiate children 10
auth_param negotiate keep_alive on
acl auth proxy_auth REQUIRED
http_access deny !auth
http_access allow auth
http_access deny allПосле этого перегружаем наш сервер, и на клиентской тачке, открываем ie и проверяем аутентификацию. Если все прошло удачно то в логах /var/log/squid/*.log мы увидем нашего пользователя
Далее устанавливаем apache
yum install httpd php mod_wsgiДобавляем в автозагрузку
chkconfig httpd onЗапускаем apache:
service httpd startПереходим к финальной части, устанавливаем QuintoLabs Content Security 1.4.2
Скачиваем:
curl quintolabs.com/qlproxy/binaries/1.4.2/qlproxy-1.4.2-32d12.i386.rpm > qlproxy-1.4.2-32d12.i386.rpm Устанавливаем:
rpm --install qlproxy-1.4.2-32d12.i386.rpmДля блокировки рекламы достаточно раскоментировать нужную нам подписку в файле /opt/quintolabs/qlproxy/etc/adblock.conf
По желанию можно повысить эвристику фильтра для онлайн игр в файле /opt/quintolabs/qlproxy/etc/adultblock.conf
Ищем строку:
heuristics_level = normalи normal меняем на high:
heuristics_level = highВ конфиге /opt/quintolabs/qlproxy/etc/exceptions.conf можно настроить родительский контроль, поддерживающий фильтрацию html страниц для запрещеных слов и фраз.
А в конфиге /opt/quintolabs/qlproxy/etc/httpblock.conf можно настроить защиту от троянов и вирусов которые часто посылают запросы по IP:
http://\d+\.\d+\.\d+\.\d+/.*После всех изменений перезапускаем демон:
/etc/init.d/qlproxy restartОткрываем конфиг squid /etc/squid/squid.conf и вносим изменения для взаимодействитя с нашим фильтром:
icap_enable on
icap_preview_enable on
icap_preview_size 4096
icap_persistent_connections on
icap_send_client_ip on
icap_send_client_username on
icap_service qlproxy1 reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
icap_service qlproxy2 respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
adaptation_access qlproxy1 allow all
adaptation_access qlproxy2 allow allПерегружаем сервис squid:
service squid restartДалее правим конфиг apache /etc/httpd/httpd.conf и добавляем:
WSGIScriptAlias /qlproxy.cgi /var/opt/quintolabs/qlproxy/www/data/qlproxy.wsgi
<Directory /var/opt/quintolabs/qlproxy/www/data>
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
Alias /qlproxy /var/opt/quintolabs/qlproxy/www
<Directory /var/opt/quintolabs/qlproxy/www>
Options FollowSymLinks
AllowOverride None
Перегружаем apache
service httpd restartИ соответственно проверяем всю работу сервера и фильтарции в том числе.
Немного линков
- www.centos.org
- docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/index.html
- www.squid-cache.org
- acksyn.org/diary/?p=460
- www.quintolabs.com/qlicap_info.php
- issues.quintolabs.com/trac/quintolabs_qlicap/wiki/QlicapDocs
P.S. Если Вы найдете очемятку, пишите в ЛС, буду исправлять :)
