Глава 5
Блокировка рекламы, сайтов «для взрослых» и т. п.
Как можно заблокировать нежелательные сайты с помощью прокси-сервера Squid?
Очень просто — путем создания черного списка таких сайтов:
acl blacklist url_regex adult
http_access deny blaklist
http_access allow all
Этот черный список не пропускает интернет-адреса (URL), содержащие слово
adult
.
По аналогии можно было бы создать отдельный файл и записать в него все «плохие»
URL. Например, вот так (впрочем, это довольно накладно — проще использовать ре-
гулярные выражения):
acl banners urlpath_regex "/etc/squid/banners.txt"
http_access deny banners
В файл
banners.txt
нужно внести URL баннерных сетей, например:
^http://www.clickhere.ru
^http://banner.kiev.ua
...
Эти способы приемлемы, но требуют от администратора рутинной работы — ведь
с каждым днем различных сайтов с нежелательным контентом становится все больше
и больше. Именно поэтому есть другие, более совершенные решения.
Для эффективной защиты вашего трафика (точнее, для его экономии) лучше ис-
пользовать систему squidGuard, обладающую базой данных запрещенного контен-
та. Вам не придется самому заполнять эту базу — она уже разработана за вас. Все,
что вам нужно, — это установить squidGuard. Стандартная база squidGuard охваты-
вает сайты, посвященные наркотикам, порно, насилию, азартным играм, а также
рекламу. Закрыв доступ ко всему этому, можно сэкономить немало трафика.
squidGuard — это не отдельный сетевой сервис, а дополнение к прокси-серверу
Squid, поэтому squidGuard не может работать без Squid.
Итак, squidGuard — штука нужная, поэтому сразу приступим к его установке и
настройке. После установки пакета squidGuard вам нужно скопировать файл
/etc/squid/squidGuard.conf.sample
в файл
/etc/squid/squidGuard.conf
:
# cp /etc/squid/squidGuard.conf.sample /etc/squid/squidGuard.conf
Теперь откройте файл
/etc/squid/squidGuard.conf
— в листинге 5.2 приведен пример
этого файла, вам нужно только его изменить «под себя».
Листинг 5.2. Пример файла /etc/squid/squidGuard.conf
# Путь к базе данных, x.x.x — номер версии squidGuard
dbhome /usr/share/squidGuard-x.x.x/db
logdir /var/log/squidGuard
# Дни и время работы
# s = Вс, m = Пн, t =Вт, w = Ср, h = Чт, f = Пт, a = Сб
Работа в глобальной сети
223
time workhours {
weekly s 10:00-13:00
weekly m 08:00-13:00 14:00-18:00
weekly t 08:00-13:00 14:00-18:00
weekly w 08:00-13:00 14:00-18:00
weekly h 08:00-13:00 14:00-18:00
weekly f 08:00-13:00 14:00-18:00
weekly a 09:20-13:00
}
# Наша сеть
# пользователи сети
src users {
ip 10.0.0.1-10.0.0.100
}
# демилитаризованная зона (внутренние серверы сети)
src dmz {
ip 10.0.1.1-10.0.1.10
}
# далее описываются базы запрещенного контента
...
# файл конфигурации мы сократили, ведь у вас все равно есть полная
# версия, мы только рассмотрим пример описания одной базы —
# базы рекламы
dest advertising {
domainlist
advertising/domains
urllist
advertising/urls
# вместо рекламы будет отображен файл nulbanner.png,
# размещенный на локальном веб-сервере 0х0
redirect
http://127.0.0.1/cgi-bin/nulbanner.png
}
...
# Списки доступа, т. е. кто и что может делать в нашей сети
acl {
# компьютерам из зоны DMZ разрешим любой контент, кроме рекламы
dmz {
# управлять контентом можно с помощью директивы pass
# в качестве значений можно передать название базы,
# например, advertising — реклама, porn — порно и т. д.
#
(базы описаны выше)
# значение all означает весь контент, а none — обратно all, т. е.
# будет запрещен любой контент. Значение none используется редко.
224
Do'stlaringiz bilan baham: |