Настройка Squid 3 + QuintoLabs Content Security 1.4 и интеграция с Active Directory

Администрирование > Разное
Про Squid рассказывать не буду, а про возможности QCS расскажу.

Что же умеет делать QuintoLabs Content Security
* Удаляет назойливую рекламу
* Запрет на закачку файлов
* Групповой контроль
* Исключение любого домена, подсети, ip из фильтра
* Высокая производительность
* Легкая настройка и обслуживание
* Поддержка дистрибутивов RedHat, CentOS, Fedora, Debian, Ubuntu


Про 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 http://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

WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
Alias /qlproxy /var/opt/quintolabs/qlproxy/www

Options FollowSymLinks
AllowOverride None

Перегружаем apache
service httpd restart

И соответственно проверяем всю работу сервера и фильтарции в том числе.

Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>