Самоучитель
системного администратора

5.2. Оптимизация доступа в Интернет

Большинство организаций пользуются выделенным каналом доступа в Интернет. Если этот канал безлимитный и скорость работы в Сети удовлетворяет пользователей, то дополнительных действий не требуется. В противном случае необходимо попытаться оптимизировать использование канала, для чего можно выполнить следующие пункты.

Установить локальный прокси-сервер и увеличить объем для кэширования файлов.

Практика показывает, что, например, картинки, использованные при оформлении сайта, меняются редко. А пользователи посещают в основном одни и те же ресурсы. Поэтому кэширование страниц Интернета на локальном сервере — прокси-сервере — может сэкономить при правильных настройках от трети до половины всего трафика. Поскольку запросы на эти ресурсы уже не будут отсылаться в Сеть, то страницы будут открываться быстрее, а полоса пропускания канала освободится для других действий.

Распределить полосу пропускания.

Если какой-то пользователь начнет загрузку большого файла (например, фильма с близлежащего сервера), то у всех остальных работа в Интернете практически замрет. В большинстве случаев можно ограничить полосу пропускания для больших по объему файлов, сохранив возможность быстрого открытия страниц Интернета. В результате закачка файла будет длиться чуть дольше, но все остальные сотрудники не почувствуют неудобства в работе. Подобную нарезку полосы пропускания могут делать современные прокси-серверы.

Блокировать рекламные ресурсы.

Объем рекламы (если считать по размеру файлов оформления на странице сайта) часто превышает размер полезной информации. Если отсечь эту рекламу на уровне шлюза в Интернет, то полезное использование канала существенно улучшится.

Настроить маршрутизацию внешнего трафика в зависимости от тарифов провайдера.

Если стоимость трафика через прокси-сервер провайдера выше расценок городского трафика и ниже междугороднего, то вы имеете возможность настроить маршрутизацию так, чтобы городской трафик "шел" напрямик, а междугородный использовал подключение к прокси-серверу провайдера.

    Примечание

    Объем трафика с местных сайтов, конечно, зависит от города, специфики организации и т. п. В среднем его доля может достигать 10% от общего объема трафика.

Осуществить организационные меры.

В случае платного канала обычно наиболее эффективны организационные меры снижения трафика Интернета, например, установление лимитов работы с последующей оплатой превышения трафика или отключением мультимедийного содержимого (пользователь сможет получить информацию из Интернета, но без картинок и т. п.).

Прокси-сервер

На прокси-сервере автоматически сохраняется на некоторый срок вся проходящая через него информация. Если прокси-сервер обнаружит запрос данных, уже имеющихся на нем в копии, то именно эта копия и будет направлена пользователю.

Кроме того, включение прокси-сервера в настройки обозревателя Интернета позволяет повысить скорость просмотра сети. Это связано с тем, что многие файлы уже не приходится получать из Сети: скорость загрузки файлов с прокси-сервера, располагающегося обычно "вблизи" пользовательского компьютера, выше скорости получения данных с удаленных хостов.

Кроме того, современные прокси-серверы имеют развитые средства управления трафиком: на них можно блокировать содержимое по тем или иными критериям, нарезать полосы пропускания для пользователей и т. п.

Прокси-сервер сохраняет данные страниц в соответствии с теми показателями, которые заложены при их проектировании. Бывает, что разработчики не указывают такие значения и прокси-сервер использует свои настройки по умолчанию: в этом случае он может выдать пользователю устаревшие данные. Чтобы обновить страницу и загрузить последние данные, следует выполнить команду Обновить в меню программы просмотра. В этом случае прокси-сервер должен запросить актуальные данные из Интернета. Часто бывает и обратная ситуация. Администраторы увеличивают настройки сроков хранения некоторых типов файлов в кэше (например, иллюстраций), чтобы повысить эффективность работы прокси-сервера.

Для того чтобы повысить эффективность работы через прокси-сервер, следует предусмотреть достаточный объем жесткого диска для хранения данных, получаемых из Интернета. Обычно при оценке размеров кэша стоит ориентироваться на объем месячного трафика организации, обслуживаемой таким сервером. Важно соблюдать баланс: увеличение объема файлового кэша повышает нагрузку на процессор сервера (а обычно в качестве прокси-серверов администраторы настраивают не самые быстрые системы) и на его диски, что может привести к увеличению времени отклика.

На рис. 5.11 приведена реальная диаграмма использования кэша прокси-сервера по итогам работы за месяц (получена по анализу журналов работы). Хотя конкретные показатели будут отличаться в различных организациях, видно, что работа через прокси существенно снижает трафик интернет-организации.

Рис. 5.11.
Статистика использования кэша прокси-сервера

Автообнаружение прокси-серверов

Рабочие станции можно настраивать на автоматическое обнаружение и использование прокси-сервера. Существуют различные механизмы, при помощи которых клиенты локальной сети могут получать необходимые настройки для автоматического конфигурирования работы через прокси-сервер. Так, в домене Windows настройки прокси-сервера могут распространяться через групповую политику.

Для автоматической конфигурации параметров использования прокси-сервера предназначен специальный сценарий. По умолчанию такой сценарий должен иметь имя wpad.dat и публиковаться по протоколу HTTP на сервере с доменным именем WPAD.

Сценарий автообнаружения прокси написан на языке макропрограммирования. В случае необходимости его можно откорректировать. Например, при наличии двух точек доступа к Интернету сценарий может содержать функции случайного использования того или иного канала с заранее определенным весовым коэффициентом (при работе с массивом прокси-серверов). Если необходимо работать с некоторыми серверами Интернета только через один канал, то такую возможность можно реализовать именно через модификацию данного сценария.

    Примечание

    Обратите внимание, что если обозреватель получит из данного сценария параметры нефункционирующего прокси-сервера, то просмотр Интернета окажется невозможным.

Если вы имеете подобный сценарий (он, например, создается автоматически при установке прокси-сервера Microsoft ISA Server, другие примеры легко найти в Сети), то необходимо создать на DNS-сервере запись, которая указывала бы на хост WPAD (например, можно создать запись-синоним — CNAME).

Параметры сценария могут сообщаться также и сервером DHCP: для этого нужно добавить новый стандартный параметр в меню Predefined Options оснастки управления сервером DHCP с номером 252 (этому параметру можно дать любое название, например, Proxy Autodiscovery Option или просто wpad) и установить его значение равным URL-сценария автонастройки. Например:

http://wpad.<имя_домена>:8080/wpad.dat

В параметрах DHCP можно указывать и номер порта, на котором публикуется сценарий. В случае DNS-записей допустима публикация только по стандартному порту HTTP — 80.

"Прозрачный" прокси

Администратор может так настроить систему, что все интернет-запросы будут автоматически перенаправляться через прокси. При этом на пользовательском компьютере никакой настройки не выполняется. Причем все это будет происходить незаметно для пользователя, прозрачно (transparent).

Основное ограничение такого режима — прокси-сервер должен пропускать все запросы, поэтому никакой аутентификации пользователей (для разграничения доступа в Интернет) организовать не получится.

Особой настройки такой режим не требует. Прокси-сервер настраивается на пропуск анонимного трафика. А трафик организации в Интернет перенаправляется на вход прокси-сервера. В случае маршрутизатора на базе Linux подобное перенаправление можно сделать одной командой:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to squid:3128

В этом примере пакеты протокола TCP, приходящие на интерфейс eth0 на порт 80, перенаправляются на адрес squid и порт 3128 (порт по умолчанию для прокси-сервера Squid).

Настройка использования полосы пропускания

Существуют различные технологии регулирования полосы пропускания. Проще всего, на взгляд автора, это сделать, используя прокси-сервер Squid. Этот прокси-сервер бесплатен, существует в версиях как для Linux, так и для Windows и является фактическим стандартом прокси-серверов Интернета.

Для регулировки полосы пропускания удобнее всего применять следующий подход. Во-первых, можно назначить групповые лимиты для пользователей. Например, задать, что работники рекламы могут занимать не более 60% полосы пропускания, работники производственного отдела — 50% и т. п. Можно сделать структуру групп пользователей иерархической. В результате работники данного подразделения не смогут занять весь канал. При этом выделенная им полоса будет делиться между всеми поровну: много пользователей будут одновременно работать — будет низкая скорость, один пользователь получит весь лимит.

Во-вторых, можно назначить различную скорость загрузки файлов в зависимости от их размеров. В этом случае первая часть файла (до заданного объема) загружается на максимально настроенной скорости, а для последующей вступают в силу ограничения. Таким образом можно обеспечить всем сотрудникам максимально быструю работу с сайтами (поскольку оформление веб-страниц обычно не занимает большого объема и поэтому будет загружено на максимальной скорости) и сохранить возможность загрузки файлов большого размера (они будут загружаться, но со скоростью, которая не будет мешать остальным сотрудникам).

Чтобы включить управление полосой пропускания в Squid, нужно настроить пулы задержек, создать списки доступа, которые будут определять пользователей или компьютеры, для которых будут вводиться ограничения, и настроить правила.

Фактически, пул задержек — это набор параметров, определяющих использование канала доступа в Интернет. Каждый пул задержек может быть одного из трех классов. Первый класс позволяет ограничивать полосу индивидуально, второй — устанавливать лимиты для подсети в целом и, кроме того, лимиты для каждого пользователя. Третий класс позволяет устанавливать лимиты для сетей, подсетей и индивидуально. Если представить IP-адрес как a.b.c.d, то первый класс может быть применен только индивидуально, это разные значения d. Класс 2 учитывает параметры c для групповых ограничений, а класс 3 учитывает для первого лимита значения b, для второго — с и потом устанавливает индивидуальные ограничения.

По умолчанию число пулов задержки равно 0. В конфигурации Squid сначала нужно определить число создаваемых пулов, а потом указать, какой пул к какому классу относится:

Параметры лимитирования полосы пропускания определяются командой delay_parameters, ее параметрами должны быть номер пула задержки и лимиты. Лимит для класса 1 всегда общий, для параметров классов 2 и 3 — сначала указывается лимит для сети (или для сетей в случае класса 3), потом — индивидуальное значение, при этом цифры указывают значения в байтах (в договоре с интернет-провайдером обычно указывается предоставляемая полоса пропускания в битах в секунду. Это следует учитывать при установке ограничений). Обозначение лимита 600/8000 устанавливает максимальную скорость в 600 байт/с или 4800 бит/с после загрузки первой части файла размером в 8 Кбайт. Обозначение -1/-1 применяется в случае отсутствия лимитирования. Далее приведен пример конфигурации настроек в предположении, что пул с номером 2 относится к третьему классу:

delay_parameters 2 32000/32000 8000/8000 600/8000

Включать использование пулов задержек следует командой delay_access, в качестве ее параметров должны быть указаны номер пула, правило и команда (allow или deny). Причем команды должны быть написаны в сортированном порядке: сначала команды для пулов класса 1, потом для пулов класса 2, потом — для класса 3. При этом последней командой для каждого пула должен быть включен запрет для всех, чтобы программа вышла из анализа по данному классу:

Блокировка рекламы, порносайтов и т. п.

В организации имеет смысл наладить фильтрацию контента интернет-трафика, например, запретив скачивание рекламы, порносайтов и т. п. Конечно, делать это нужно на основании распоряжения руководителя, но подготовить его системному администратору не составит труда.

Сегодня нет надежных алгоритмов определения типа содержимого. Например, сообщалось о разработке фильтров, анализирующих изображения на рисунках и позволяющих выявить порнографические фотографии, но о реальной эксплуатации таких технологий пока информации нет.

На практике применяется два подхода. Это блокировка сайта по ключевым словам (если на странице встретилось слово, занесенное в черный список, то загрузка такого содержимого будет блокирована) или по черным спискам (список сайтов, для которых известно, что они хранят определенное содержимое). Не стоит обольщаться, что такими списками будут "закрыты", например, все порносайты. Число порно сайтов превышает по разным оценкам несколько миллионов, и блокировать их тем или иным списком доступа просто нереально.

Увеличение числа правил обработки запросов снижает производительность прокси-сервера. Поэтому не стоит особенно увлекаться числом заблокированных доменов, следите за производительностью сервера и находите разумный баланс ограничений и скорости работы прокси. С точки зрения влияния на производительность прокси, лучше использовать ограничения по доменам назначения, чем применять сложные регулярные выражения. При этом обычно несколько тысяч строк с именами блокированных доменов не очень существенно сказываются на производительности сервера.

Основу таких списков блокировки лучше всего найти в Интернете по ключевому термину "blacklist". Так, можно использовать перечни с сайта http:// urlblacklist.com/ (сайт представляет коммерческую службу, поддерживающую актуальность таких списков, но условия его лицензии позволяют однократно загрузить эти списки; объем загрузки составляет около 18 Мбайт архивированных файлов), списки, используемые в дополнениях к Firefox, — см. http://adblockplus.org/ en/subscriptions или любые другие.

Загрузите их из Интернета, сохраните, например, в папке /etc/squid/blacklists по соответствующим разделам и создайте определения списков доступа. Если файл списка содержит имена доменов, то используйте строку (в примерах указаны названия файлов списка с сайта Urlblacklist.com):

acl porno dstdomain "/etc/squid/blacklists/porn/domains"

Если в файле списка даны регулярные выражения, то нужно определять правило следующим образом:

acl banners url_regex "/etc/squid/blacklists/porn/expressions"

Для списков по URL нужно использовать типы acl u_regex, urlpath_regex, dstdom_regex — в зависимости от того, какой вариант вы имеете.

После чего включите в файл конфигурации правила, блокирующие запросы на сайты, включенные в такие списки:

http_access deny porno

После перезагрузки конфигурации прокси-сервера администратору нужно некоторое время анализировать результаты фильтрации. Как правило, в списках, полученных из Интернета, попадаются ресурсы, случайно попавшие в такой список и нужные для текущей работы. Кроме того, некоторая часть, например, рекламы не будет отфильтрована. Такие случаи надо отследить по файлам журнала работы Squid и добавить новые условия фильтрации.


Рейтинг@Mail.ru