Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Вариант 1
Простой. На месте баннеров показываются разорванные картинки или перекрещенные прямоугольники (неполученные файлы).
1. Определяем сайты банерных сетей и создаем для них регулярные выражения.
2. Создаем в каталоге /usr/local/Squid/etc следующие файлы:
– banners_path_regex – содержит по одному регулярному выражению на строку;
– banners_regex – содержит по одному регулярному выражению на строку;
– banners_exclusion – это строки, трактуемые в предыдущих файлах как баннеры, но изменять которые не рекомендуется.
3. В Squid.conf добавляем следуюшие правила:acl banners_path_regex urlpath_regex «/usr/local/Squid/etc/banners_path_regex»
acl banners_regex url_regex "/usr/local/Squid/etc/banners_regex"
acl banners_exclusion url_regex "/usr/local/Squid/etc/banners_exclusion"
http_access deny banners_path_regex !banners_exclusion
http_access deny banners_regex !banners_exclus ionВариант 2
Замена рекламных баннеров на свою картинку, которая находится на локальном для proxy-сервера компьютере.
1. Определяем сайты банерных сетей и создаем для них регулярные выражения.
2. На своем сервере создаем «заменитель» рекламных картинок – файл mybanner.gif.
3. Настраиваем перенаправление (редиректор) в файле Squid.conf – redirect_program /usr/local/Squid/bin/banner.pl.
4. Создаем прстой скрипт на Perl – banner.pl:#!/usr/bin/perl
$|=1;
while (<>)
{
[email protected]регулярное-выражение@httр://www.myhost.оrg/[email protected];
print;
}
Конечно, можно сделать более элегагантно, однако данный метод работает, а настроить proxy-сервер можно за пару минут.
Разделение внешнего каналаЧасто бывает так, что у вас есть внешний канал – скажем, 128 Кбит, и есть несколько групп пользователей с определенным приоритетом. И требуется, чтобы группа 1 имела одну фиксированную ширину наружного канала (скажем, 64 Кбит), а группа 2 и 3 – ширину наружного канала по 32 Кбит. Для решения этой непростой задачи мы также можем воспользоваться Squid.
Немного терминологии:
• пул – набор групп «емкостей» определенного класса;
• группа «емкостей» – часть пула, привязанная к хосту, сети или общая для всех;
• «емкость» ограниченного объема – та, в которую с определенной скоростью вливается внешний трафик, и из которой он раздается клиенту.
Определены три класса пулов:
• одна «емкость» на всех из этого класса;
• одна общая «емкость» и 255 отдельных для каждого хоста из сети класса С;
• 255 «емкостей» для каждой сетки класса В и отдельная «емкость» для каждого хоста.
Пример конфигурации Squid для трех классов пулов:delay_pools 3 #3 poolы
delay_class 1 1 # 1 pool 1 класса
delay_class 2 1 # 2 pool 1 класса
delay_class 3 3 # 3 pool 3 класса
delay_access 1 allow staff
delay_access 1 deny all
delay_access 2 allow students
delay_access 2 deny all
delay_access 3 allow college
delay_access 3 deny all
delay_parameters 1 640000/640000
delay_parameters 2 64000/64000
delay_parameters 3 64000/64000 32000/64000 6400/32000Строка, определяющая максимальную ширину виртуального канала, имеет следующий вид:
delay_parameters pool total_rest/total_max net_rest/net_max ind_rest/ind_max
где:
• pool – номер пула, для которого определяются каналы;
• total – ширина канала на всех;
• net – ширина канала на подсеть;
• ind – ширина канала на отдельный адрес;
• rest – скорость заполнения (байт/с);
• max – объем «емкости» (байт).Обработка статистики
В стандартную поставку пакета Squid входят скрипты, написанные на Perl, позволяющие создавать отчеты о работе программы Squid:
• access-extract.pl – скрипт получает на стандартный ввод журнал access.log и выдает на стандартный вывод промежуточный результат;
• access-summaiy.pl – скрипт получает на вход результат работы access-extract.pl и делает из него красивый отчет.
Программа Squid Cache and Web Utilities (SARG)
Программа, обрабатывающая журналы Squid и составляющая на их базе отчеты.
С помощью этой програмы можно получить следующую информацию:
• количество работавших пользователей;
• время их работы;
• трафик по каждому пользователю;
• использование кэша каждым пользователем;
• список Web-серверов, посещаемых пользователем;
• итоговые цифры по трафику и времени.
Существуют также дополнительные отчеты: Top sites и Useragents.
Отчет генерируется за период, интервал которого берется из log-файла Squid. В отчете, кроме зарегистрированных пользователей Squid, отражается информация о попытках незаконного вхождения в сеть и неправильных наборах пароля.
Если не производится ротация журналов Squid, то SARG генерирует отчеты нарастающим итогом. Отчеты хранятся в стандартном формате HTML-страниц, поэтому их можно просматривать через браузер, копировать и распечатывать. Также отчеты можно генерировать в определенный каталог или получать по почте.
Программа MRTG
Еще одна программа, позволяющая получать при соответствующей настройке отчеты о работе Squid. Вывод осуществляется в виде HTML-страниц.
Ссылки
• http://www.Squid-cache.org – официальный сайт Squid.
• http://karjagin.narod.ru/solaris/Squid-iaq-rus.html – русский перевод Squid-faq.
• http://www.nlanr.net/Cache/ICP/ICP-id.txt – протокол Internet Cache Protocol.
• http://Squid.org.ua – зона особого внимания: сайт, полностью посвященный программе Squid.
• http://linux.webclub.ru/security/proxy/Squid.html – Иван Паскаль. Настройка Squid.
• http://www.bog.pp.ru/work/Squid.html – Bog BOS: Squid (кэширующий proxy для HTTP): установка, настройка и использование.
• http://www.nitek.ru/~igor/Squid – борьба с баннерами с помощью Squid.
Глава 23 Синхронизация времени через сеть, настройка временной зоны
Для комфортной работы с компьютером иногда может не хватать такой малости, как нормально настроенное системное время. Плохо, когда приходится ежедневно его подправлять или вручную производить переход на летнее/зимнее время.
Особенно это неприятно, когда компьютеров несколько десятков, и время у всех должно быть синхронизировано. Для синхронизации системного времени создателями Интернета был предусмотрен специальный сервис – сетевой протокол времени (Network time protocol, NTP).
Сетевой протокол времени
Сетевой протокол времени предназначен для синхронизации клиента или сервера точного времени с другим сервером точного времени или эталонным источником времени (радио, атомные часы и тому подобные устройства). Для локальной сети NTP способен обеспечить точность до миллисекунды, а для распределенной сети (в частности Интернета) достижима точность синхронизации порядка нескольких десятков миллисекунд. Последний стандарт этого протокола предусматривает криптографическую защиту передаваемых данных, одновременное подключение к нескольким серверам точного времени для достижения более точной синхронизации времени и повышения отказоустойчивости системы и многое другое.
Структура сети серверов точного времени многоуровневая. Главные серверы точного времени, напрямую подключенные к источнику эталонного времени, образуют первый уровень, серверы точного времени, присоединенные непосредственно к главным серверам, образуют второй уровень, и т. д.
В качестве сетевого протокола используется протокол UDP, порт 123. Для увеличения надежности и точности получаемых данных применяется фильтрация, селекция и комбинация пакетов на принципах максимальной вероятности, а также несколько резервных серверов и путей передачи.
Для передачи и хранения времени используется беззнаковое 64-битовое число с фиксированной точкой, которое хранит число секунд в формате UTC. Старшие 32 бита – число секунд, младшие 32 бита – дробная часть секунд. Достижимая точность – 232 пикосекунды. О означает неопределенное время.
Классы обслуживания
Служба точного времени имеет несколько классов обслуживания клиентов:
• multicast – предназначен для использования в быстрой локальной сети со множеством клиентов, где отсутствует необходимость в высокой точности. Принцип действия – один или более NTP-серверов рассылают широковещательное сообщение, клиенты определяют время, предполагая, что задержка составляет несколько миллисекунд. Сервер не принимает ответных NTP-сообщений;
• procedure-call – предназначен для получения высокоточного времени. NTP-клиент посылает запрос на сервер точного времени, который обрабатывает запрос и немедленно посылает ответ. Сервер не синхронизируется с клиентом;
• symmetric – предназначен для использования серверами точного времени. Представляет собой динамически реконфигурируемую иерархию серверов точного времени. Каждый сервер точного времени синхронизирует своих соседей и синхронизируется своими соседями в соответствии с правилами выбора соседей. Активный режим используется серверами точного времени низшего уровня с заранее определенными адресами соседей, пассивный режим используется серверами точного времени, близкими к первому уровню, и взаимодействующими с соседями с заранее неизвестными адресами.
Обеспечение достоверности данных
Алгоритм функционирования сервера точного времени подразумевает несколько способов для обеспечения достоверности данных.
• Если в течение восьми последовательных интервалов опроса от соседнего сервера точного времени не было сообщений, то этот сервер считается недостижимым.
• Осуществляется проверка времени:
– если время передачи совпадает с временем предыдущего сообщения – дублированный пакет;