Бруй В.В., Карлов С.В. - Linux-сервер - пошаговые инструкции - инсталляции и настройки (1077321), страница 78
Текст из файла (страница 78)
Регулярно проверяйте обновления на http://www.squidguard.org. Мы используем установку требуемых компонентов с исходного архива, так как это открывает широкие возможности для настроек инсталляции.Исходный коды содержатся в пакете squidGuard-version.tar.gz (последняя доступная на момент написания главы версия - squidGuard-1.2.0.tar.gz).Компиляция, оптимизация и инсталляция SquidGuardШаг 1Распакуйте архив с пакетом squidGuard-1.2.0.tar.gz в каталоге /var/tmp:[root@bastion tmp]# tar -xzpf squidGuard-1.2.0.tar.gzПерейдите в каталог /var/tmp/squidGuard-1.2.0:[root@bastion tmp]#cd /var/tmp/squidGuard-1.2.0Шаг 2Сконфигурируйте исходные коды SquidGuard:[root@bastion squidGuard-1.2.0]# CFLAGS="-O2 -march=i686 -funroll-loops"\./configure --prefix=/usr \--sysconfdir=/etc \--localstatedir=/var \--with-sg-config=/etc/squid/squidGuard.conf \--with-sg-logdir=/var/log/squid/squidGuard \--with-sg-dbhome=/var/spool/squid/squidGuard \--with-db-inc=/usr/include \--with-db-lib=/usr/libПредложенные опции конфигурации определяют каталоги, в которых будут размещены конфигурационные файлы, файлы регистрации и библиотеки.Шаг 3Откомпилируйте исходный код:[root@bastion squidGuard-1.2.0]# makeЗАМЕЧАНИЕ Во время компиляции с сервера http://www.squidguard.org получаются обновленияфайлов документации.
Поэтому если у вас установлен Squid с поддержкой аутентификации пользователей ивы не хотите, чтобы вместо обновленных файлов документации у вас были сообщения Squid о невозможности доставки URL, отключите аутентификацию пользователей на время установки SquidGuard.Глава 25. SquidGuard – программное обеспечение для настройки Squid337Шаг 4Проинсталлируйте основные файлы SquidGuard:[root@bastion squidGuard-1.2.0]# find /* > /root/squidGuard1[root@bastion squidGuard-1.2.0]# make installШаг 5Проинсталлируйте скрипт squidGuard.cgi, предназначенный для вывода сообщений о причинеотказа в доступе пользователю:[root@bastion squidGuard-1.2.0]# cd samples/[root@bastion samples]# install –m 511 squidGuard1.cgiШаг 6Измените владельца и установите права доступа к каталогу с файлами регистрации SquidGuard:[root@bastion samples]# chown –R squid.squid /var/log/squid/squidGuard[root@bastion samples]# chmod 0750 /var/log/squid/squidGuardШаг 7Распакуйте архив, содержащий фильтры (IP-адреса, к которым запрещено обращение и регулярныевыражения, соответствующие URL), создайте каталоги для размещения фильтров и проинсталлируйте файлы фильтров:[root@bastion samples]# cd dest/[root@bastion dest]# mkdir –p /var/spool/squid/squidGuard[root@bastion dest]# cp blaklists.tar.gz /var/spool/squid/squidGuard[root@bastion dest]# cd /var/spool/squid/squidGuard[root@bastion squidGuard]# tar xzpf blaklists.tar.gz[root@bastion squidGuard]# mkdir ads[root@bastion squidGuard]# mkdir aggressive[root@bastion squidGuard]# mkdir audio-video[root@bastion squidGuard]# mkdir drugs[root@bastion squidGuard]# mkdir gambling[root@bastion squidGuard]# mkdir hacking[root@bastion squidGuard]# mkdir mail[root@bastion squidGuard]# mkdir porn[root@bastion squidGuard]# mkdir proxy[root@bastion squidGuard]# mkdir violence[root@bastion squidGuard]# mkdir warez[root@bastion squidGuard]# cd blaklists[root@bastion blaklists]# install –m 644 ads/domains ../ads/[root@bastion blaklists]# install –m 644 ads/urls ../ads/[root@bastion blaklists]# install –m 644 aggressive/domains../aggressive/[root@bastion blaklists]# install –m 644 aggressive/urls ../aggressive/[root@bastion blaklists]# install –m 644 audio-video/domains ../audiovideo/[root@bastion blaklists]# install –m 644 audio-video/urls ../audio-video/[root@bastion blaklists]# install –m 644 drugs/domains ../drugs/[root@bastion blaklists]# install –m 644 drugs/urls ../drugs/[root@bastion blaklists]# install –m 644 gambling/domains ../gambling/[root@bastion blaklists]# install –m 644 gambling/urls ../gambling/[root@bastion blaklists]# install –m 644 hacking/domains ../ hacking/[root@bastion blaklists]# install –m 644 hacking/urls ../hacking/[root@bastion blaklists]# install –m 644 mail/domains ../mail/[root@bastion blaklists]# install –m 644 porn/domains ../porn/[root@bastion blaklists]# install –m 644 porn/urls ../porn/[root@bastion blaklists]# install –m 644 porn/expressions../porn/[root@bastion blaklists]# install –m 644 proxy/domains ../proxy/[root@bastion blaklists]# install –m 644 proxy/urls ../proxy/[root@bastion blaklists]# install –m 644 violence/domains ../violence/[root@bastion blaklists]# install –m 644 violence/urls ../violence/[root@bastion blaklists]# install –m 644 warez/domains ../warez/[root@bastion blaklists]# install –m 644 warez/urls ../warez/[root@bastion blaklists]# chown –R squid.squid/var/spool/squid/squidGuard/338Часть 6.
Программное обеспечение для организации шлюза[root@bastion blaklists]# chmod 0750 /var/spool/squid/squidGuard/[root@bastion blaklists]# cd ..[root@bastion squidGuard]# rm –rf blaklists.tar.gz blaklistsЗАМЕЧАНИЕ Выше приведен перечень команд, с помощью которых устанавливаются все фильтры,входящие в дистрибутив SquidGuard-1.2.0. Авторы рекомендуют установить их все и отключать ненужные наэтапе конфигурации. Тем не менее, вы имеете возможность не устанавливать некоторые из них. Так, например, если вы не желаете запретить доступ к ресурсам из списков, содержащихся в каталоге warez, не выполняйте следующие команды:[root@bastion squidGuard]# mkdir warez[root@bastion blaklists]# install –m 644 warez/domains ../warez/[root@bastion blaklists]# install –m 644 warez/urls ../warez/Шаг 8Настройте привязку динамических ссылок:[root@bastion squidGuard]# /sbin/ldconfigШаг 9Для повышения производительности удалите лишние фрагменты из исполняемого файла squidGuard:[root@bastion squidGuard]# strip /usr/bin/squidGuardШаг 10Создайте и сохраните в надежном месте список установленных файлов:[root@bastion squidGuard]# find /* > /root/instfiles/squidGuard2[root@bastion squidGuard]# diff /root/instfiles/squidGuard1/root/squidGuard2 > /root/squidGuard2.installed[root@bastion squidGuard]# mv /root/squidGuard2.installed /very reliable_place/squidGuard2.installed.YYYYMMDDШаг 11Удалите каталоги с исходными кодами SquidGuard и архив:[root@bastion squidGuard]# rm –rf /var/tmp/squidGuard-1.2.0/[root@bastion squidGuard]# rm –f /var/tmp/squidGuard-1.2.0.tar.gzКонфигурирование SquidGuardШаг 1Создайте или отредактируйте в соответствии с приведенными ниже рекомендациями и вашими потребностями файл /etc/squid/squidGuard.conf:#Path declarations#Укажите путь к корневому каталогу с фильтрамиdbhome /var/spool/squid/squidGuard#Укажите путь к корневому каталогу с файлами регистрацииlogdir /var/log/squid/squidGuard#Time space declarations#В данном примере доступ разрешен по рабочим дням с 09:00 до 18:15time workhours {weekly mtwhf 09:00 - 19:15}#Source group declarations# Описание локальной сетиsrc internal {ip192.168.1.1/24}#Destination group declarations#Описание ресурсов, доступ к которым запрещенdest ads {domainlistads/domainsurllistads/urls}dest aggressive {domainlistaggressive/domainsГлава 25.
SquidGuard – программное обеспечение для настройки Squid339urllistaggressive/urls}dest audio-video {domainlistaudio-video/domainsurllistaudio-video/urls}dest drugs {domainlistdrugs/domainsurllistdrugs/urls}dest gambling {domainlistgambling/domainsurllistgambling/urls}dest hacking {domainlisthacking/domainsurllisthacking/urls}dest mail {domainlistmail/domains}dest porn {domainlistporn/domainsurllistporn/urlsexpressionlist porn/expressions}dest proxy {domainlistproxy/domainsurllistproxy/urls}dest violence {domainlistviolence/domainsurllistviolence/urls}dest varez {domainlistwarez/domainsurllistwarez/urls}#Rewrite rule group declarations#Авторы не рекомендуют использовать этот раздел.#Access Control Lists#Списки контроля доступа (ACCESS CONTROL LISTS)##Разрешите доступ со всех машин в локальной сети#в рабочие дни и рабочее время#ко всем ресурсам, кроме перечисленных в фильтре.acl {internal within workhours {pass !ads !aggressive !audio-video !drugs !gambling!hacking !mail !porn !proxy !violence !warezall}#Запрет и переадресация всех остальных запросовdefault {passnoneredirect http://bastion.und/cgibin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u}}В файле squidGuard.conf могут использоваться следующие зарезервированные слова:340Часть 6.
Программное обеспечение для организации шлюза– acl– rewrite– anonymous– sat– date– saturday– dbhome– saturdays– dest– source– destination– src– domain– sun– domainlist– sunday– else– sundays– expressionlist– thu– fri– thursday– friday– thursdays– fridays– time– ip– tue– log– tuesday– logdir– tuesdays– logfile– urllist– mon– user– monday– userlist– mondays– wed– outside– wednesday– pass– wednesdays– redirect– weeklyvrew– withinПоэтому использование этих слов в качестве имен объектов не допускается.В разделе Path declarations вы можете задать пути к корневому каталогу файла с фильтрами икаталогу с файлами регистрации.Раздел Time space declarations используется для задания различных интервалов времени вследующем формате:time name {speсificationspecification...specification}где:• time – зарезервированное слово, используемое в качестве признака начала описания временныхинтервалов;• name – имя описания временных интервалов;• speсification – описание интервала.Дни недели и имеющие к ним отношения интервалы времени могут быть записаны в виде:weekly {smtwhfa} [HH:MM-HH:MM]где:• s - воскресенье;• m - понедельник;• t - вторник;• w -среда;• h - четверг;• f -пятница;• a-воскресенье.В рассматриваемом примере конфигурационного файла /etc/squid/squidGuard.conf запись:time workhours {weekly mtwhf 09:00 - 19:15}определяет интервалы времени с именем workhours, включающие рабочее время, т.
е. с 9.00 по 19.15 спонедельника по пятницу.Запись:Time notworktime{Глава 25. SquidGuard – программное обеспечение для настройки Squidweeklyweeklyweeklydatedatedatedatedate...date341* 00:00-09:00 # Нерабочее время после полуночи* 19:15-24:00 # Нерабочее время до полуночи{sa}# В*.01.01 # Новый год*.02.01 # Новый год*.07.01 # Рождество*.14.02 # День святого Валентина*.23.02 # День защитника Отечества*.31.12 # Новый год}определяет интервалы времени с именем notworktime, включающие нерабочее время, т. е. нерабочеевремя ежедневно и круглосуточно в праздники.В разделе Source group declarations описываются группы источников, обращающихся кWeb-ресурсам, например локальная сеть:src|source name within|outside time_space_name {specificationspecification...specification} else {specificationspecification...specification}где:src или source – зарезервированное слово, используемое в качестве признака начала описаниягруппы источников, обращающихся к Web-ресурсам (используйте только одно слово – src или source –на ваше усмотрение);name – имя описания группы источников;within или outside – используется для задания отношения группы источников к временныминтервалам, соответственно, в течение интервала, или вне его;time_space_name – имя описания временных интервалов;speсification – описание источников.В рассматриваемом примере конфигурационного файла /etc/squid/squidGuard.conf запись:src internal {ip192.168.1.1/24определяет локальную сеть с возможным диапазоном IP-адресов 192.168.1.1- 192.168.1.254.IP-адреса группы источников могут задаваться в различных форматах:• cписок IP-адресов:ip 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.100• сеть с указанием маски:192.168.1.1/24192.168.1.0/255.255.255.0• диапазон IP-адресов:192.168.1.1-192.168.1.54Для описания группы источников можно использовать зарезервированные слова:• domain – для описания доменов или группы доменов, например:domain und• user – для описания групп пользователей, например:user root drwalbr karlnextСписки IP-адресов и пользователей могут размещаться в отдельных файлах, для описания этих файлов используются строки вида:• iplist filename;• userlist filename;где:342Часть 6.