Глава 5
«режет». Если судить не по тестам вроде
speedtest.net
, которые не всегда показы-
вают объективные результаты, а по торрентам, то реальная скорость не превышает
8 Мбайт/с, т. е., примерно, 64 Мбит/с. Учитывая, что речь идет о Wi-Fi, то это очень
хороший показатель. Однако если измерить скорость передачи данных между
двумя узлами этой сети Wi-Fi, то окажется, что из-за отсутствия полного дуплекса
и поочередности передачи кадров в лучшем случае удается достигнуть 2–2,2 Мбайт/с.
Следовательно, если в такой сети развернуть прокси-сервер, то кэшированные
страницы будут открываться со скоростью 2,2 Мбайт/с, а загружаться из Интерне-
та — со скоростью 8 Мбайт/с. Как видите, вместо прироста производительности мы
получим «тормоза». Именно поэтому, прежде чем принимать решение о разверты-
вании прокси-сервера, нужно тщательно все спланировать с учетом имеющейся
инфраструктуры сети.
Конечно, прокси-сервер, как это и отмечалось ранее, может выполнять и другие
полезные функции: блокировку рекламы, ограничение скорости и т. п. Однако бло-
кировать рекламу можно и с помощью современных клиентских брандмауэров
в составе систем Internet Security — практически во все такие системы встроена
возможность блокировки нежелательного контента.
Прозрачный прокси
С прокси-сервером часто связаны две проблемы. Первая заключается в том, что для
работы через прокси-сервер нужно настраивать все клиенты. Если сеть большая —
скажем, 100 компьютеров — можете себе представить, сколько это займет време-
ни, — ведь нужно будет подойти к каждому компьютеру. Даже если на настройку
одного компьютера потребуется 5 минут, то на настройку всей сети уйдет уже
500 — целый рабочий день. Но настройкой браузера может дело и не обойтись.
Ведь у пользователей могут быть и другие интернет-программы, работающие
с WWW/FTP, которые также нужно будет настроить.
Проблема настройки — не самая страшная. Понятно, что если в сети предприятия
100 или более компьютеров, то и администратор на этом предприятии будет не
один. А вдвоем-втроем можно настроить все 100 компьютеров за 2−3 часа.
Вторая проблема — более серьезная. Представим, что в сети есть «продвинутые»
пользователи (а они-таки есть), которые знают, для чего служит прокси-сервер.
Они могут просто изменить его настройки и, вместо работы через прокси, исполь-
зовать прямое соединение с Интернетом, т. е. работать в обход прокси-сервера. Вы
так старались, создавая список «черных» интернет-адресов (преимущественно, это
сайты для взрослых и всевозможные чаты/форумы), а они с помощью пары щелч-
ков мышью свели все ваши старания к нулю.
Обе проблемы можно решить, если настроить
прозрачный
прокси-сервер, — поль-
зователи даже не будут подозревать, что он есть. Во-первых, это решит проблемы
с настройкой — вам не придется настраивать браузеры пользователей, потому что
все HTTP-запросы станут автоматически поступать на прокси-сервер. Во-вторых,
прозрачный прокси обеспечит принудительное кэширование информации и, соот-
Работа в глобальной сети
219
ветственно, принудительный контроль за страницами, которые посещают пользо-
ватели.
Конечно, в домене Windows можно использовать групповые политики, но не всегда
все рабочие станции работают под управлением Windows, — есть еще Linux,
macOS, Android и т. п. Соответственно, групповые политики можно применять
только в случае, если абсолютно все клиенты сети работают под управлением
Windows. Именно поэтому настройка прозрачного прокси-сервера нам кажется
лучшей затеей, чем автоматическая настройка через групповые политики.
Для настройки прозрачного прокси вам нужно изменить как конфигурационный
файл самого прокси-сервера, так и правила брандмауэра iptables. Вот правила
iptables:
iptables -t nat --new-chain TransProxy
# только порт 80 (HTTP) и 443 (SSL, https) — остальные обрабатывать
# не будем
iptables -t nat -A PREROUTING -p tcp --dport 80 -j TransProxy
iptables -t nat -A PREROUTING -p tcp --dport 443 -j TransProxy
iptables -t nat -A TransProxy -d 127.0.0.1/8 -j ACCEPT
# укажите IP-адрес своей сети
iptables -t nat -A TransProxy -d 192.168.1.0/24 -j ACCEPT
# все запросы перенаправляются на прокси-сервер 192.168.1.1, порт 3128
iptables -t nat -A TransProxy -p TCP -j DNAT --to 192.168.1.1:3128
А для работы с весьма популярным прокси-сервером Squid потребуется небольшая
его донастройка. Так, в конфигурационный файл
squid.conf
добавьте следующие
директивы:
# серверу назначается реальный IP-адрес, его и нужно указать
tcp_outgoing_address ваш_реальный_IP
httpd_accel_host virtual
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Напомним, что iptables обычно устанавливается на шлюзе — компьютере, который
предоставляет доступ к Интернету другим компьютерам сети. На этом же компью-
тере должен быть установлен и прокси-сервер Squid.
Настройка использования полосы пропускания
Прокси-сервер Squid позволяет регулировать полосу пропускания, и использовать
его для этой задачи наиболее рационально, учитывая, что существуют версии Squid
как для Linux, так и для Windows.
Распределять полосу пропускания можно разными способами. Например — разде-
лить пользователей на группы и указать лимит для каждой группы. Пусть у вас есть
четыре категории пользователей: IT-отдел, юристы, бухгалтеры, администрация.
Можно разделить полосу пропускания поровну — для всех по 25%. Можно устано-
вить и другие лимиты — например, по 30% для IT-отдела и администрации и по
220
Глава 5
20% для остальных отделов. В результате пользователи из одного отдела не смогут
«узурпировать» всю пропускную полосу.
Можно также установить различную скорость загрузки файлов в зависимости от
типа файла или его размера. Например, вы можете установить, что файлы размером
более 100 Мбайт будут загружаться со скоростью 2 Мбит/с. При этом объем до
ограничения (первые 100 Мбайт) будет загружаться на максимальной скорости, а
оставшаяся часть файла будет загружена на скорости 2 Мбит/с. И волки сыты,
и овцы целы: есть возможность загрузки больших файлов, и эта загрузка не мешает
остальным пользователям работать.
Управление пропускной полосой в Squid реализовано через пулы задержек (delay
pools).
Пул задержек
— это набор параметров, определяющих использование ин-
тернет-канала. Каждый пул задержек может быть одного из пяти
классов
:
класс 1
— ограничивает общую скорость для всех хостов, входящих в опреде-
ленную группу;
класс 2
— ограничена общая скорость загрузки и скорость загрузки отдельного
хоста;
класс 3
— ограничивается общая скорость загрузки, скорость загрузки для под-
сети и для отдельного хоста;
класс 4
— то же, что и класс 3, но еще и накладывает ограничение на каждого
отдельного пользователя (не хоста, а пользователя — у вас должна быть вклю-
чена аутентификация);
класс 5
— ограничивает скорость для запросов, сгруппированных по их тегу.
Обычно реализуются пулы первых трех классов. Иногда, если есть время занимать-
ся настройкой аутентификации, можно настроить класс 4. Класс 5 используется
крайне редко.
По умолчанию число пулов задержки равно 0. Определить количество пулов можно
так:
delay_pools 4
В этом случае мы определили четыре пула. Далее нужно определить сами пулы.
Адресация пула осуществляется по номеру, например:
delay_class 1 1
delay_class 2 1
delay_class 3 1
delay_class 4 1
Первый параметр задает номер пула, второй — его класс. Здесь мы определили, что
все пулы будут класса 1 (если для каждого отдела организована своя подсеть, тогда
нужно использовать пулы второго класса).
После определения пулов нужно задать их параметры ограничения пропускной
способности. Для этого служит команда
delay_parameters
, которой нужно передать
номер пула и лимиты. Для класса 1 лимит всегда один — общий. Для классов 2 и 3
Работа в глобальной сети
221
сначала указывают лимит сети (или для сетей, если класс 3), а потом — индивиду-
альные значения. Цифры указываются в байтах, а не в битах — это нужно учи-
тывать.
Пример:
delay_parameters 1 64000/128000
Здесь мы задаем максимальный размер файла: 128 000 байтов (почти 128 Кбайт).
Файлы меньшего размера (HTML-страницы, сценарии, CSS-файлы, картинки — это
тоже файлы) будут загружаться с максимальной скоростью. А вот если размер фай-
ла превышает 128 Кбайт, то первые 128 Кбайт будут загружены на максимальной
скорости, а все, что осталось, — со скоростью около 512 Кбит/с (что равно
64 Кбайт/с).
Если какой-то пул ограничивать не нужно, тогда установите значение
-1/-1
:
delay_parameters 2 -1/-1
Хотя мы объявили все пулы как пулы первого класса, рассмотрим пример ограни-
чения для пула второго класса:
delay_parameters 2 -1/-1 64000/128000
Здесь для сети нет ограничений, но есть ограничение для отдельного хоста.
Аналогично задаются ограничения для пула третьего класса:
delay_parameters 2 -1/-1 64000/128000 5000/20000
Здесь общая скорость не ограничена, для сетей, описанных в ACL
1
, скорость огра-
ничена так:
64000/128000
, для отдельных пользователей (хостов):
5000/20000
.
Задать, кого мы будем ограничивать, можно с помощью того же ACL. Вот пример:
acl office src 192.168.1.1/24
delay_access 1 allow office
delay_access 1 deny all
Здесь мы определили
acl office
для компьютеров, принадлежащих сети
192.168.1.1/24. Через пул с номером 1 разрешена передача данных этих компью-
теров и запрещена всем остальным.
Чтобы вы не запутались, держите описание отдельных пулов вместе, например:
delay_class 1 2
acl office src 192.168.1.1/24
delay_access 1 allow office
delay_access 1 deny all
delay_parameters 1 -1/-1 64000/128000
Так все будет под рукой, и вы уже не запутаетесь в настройках.
1
ACL (Access Control List) — список контроля доступа.
222
Do'stlaringiz bilan baham: |