Настройка прокси-сервера Squid
Существует три типа (класса) delay pools:
Единое ведро (англ. aggregate bucket, class 1) ограничение на общую потребляемую полосу для всей группы. (параметры: ёмкость бассейна, скорость наполнения).
Единое ведро с автоматическим формированием индивидуальных вёдер (англ. single aggregate bucket as well as an "individual" bucket, class 2). Индивидуальные вёдра формируются из бит
ов IP-адреса (c 25 по 32).
Единое ведро, сетевые вёдра и индивидуальные вёдра (англ. single aggregate bucket as well as a "network" bucket and a "individual" bucket, class 3). Сетевое ведро формируется по битам 17-24 IP-адреса.
Для каждого ведра указываются два параметра: ёмкость и скорость наполнения. −1 означает «без ограничения».
Попадание пользователей в то или иное ведро определяется списками доступа к вёдрам, они просматриваются в порядке упоминания в файле конфигурации до первого совпадения. Пользователи, не попадающие ни в одно из вёдер, в скорости не ограничиваются.
Обратное кэширование
Одной из особенностей Squid является возможность работать в режиме «обратного прокси-сервера» («reverse proxy»), так же известного как «ускоритель» («HTTP accelerator»). В этом случае вместо кэширования запросов нескольких пользователей к множеству сайтов, кэшируются запросы множества пользователей к нескольким сайтам. В этом режиме принятый запрос проверяется на «динамичность» (нужно ли каждый раз обрабатывать запрос с нуля) и «возраст» (актуальны ли ещё данные). Если данные ещё актуальны и не поменялись, то запрос не передаётся серверу, а отдаётся из кеша Squid. Таким образом, существенно снижается нагрузка на серверы (например, в Википедии запросы к страницам кэшируются, так как от просмотра их содержимое не меняется, при этом нагрузка на серверы существенно меньше — обработка запроса к кэшу много проще, чем обработка запроса к базе данных SQL, обработка вики-разметки и формирование веб-страницы).
Кроме того, «обратный прокси-сервер» способен распределять запросы между несколькими серверами, балансируя нагрузку и/или обеспечивая отказоустойчивость, то есть фактически предоставляет функциональность, аналогичную кластеру.
Режим прозрачного прокси-сервера
В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера (англ. transparent proxy). В этом режиме маршрутизатор вместо того, чтобы сразу пересылать HTTP-запросы пользователя HTTP-серверу в Интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кеша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.
При таком подходе проксирования аутентификация не предусмотрена, так как прозрачность проксирования это и подразумевает.
2. Рабочий проект
2.1 Установка Squid
Squid – приложение позволяющее организовать прокси/кэширующий сервер для HTTP, FTP и некоторых других популярных протоколов. Поддерживается работа с защищенными TLS/SSL соединениями, кэширование DNS, возможно использование Squid в качестве прозрачного или реверсного прокси. Распространяется по лицензии GNU GPL. Работает во всех популярных вариантах Unix систем – GNU/Linux, *BSD, Mac OS X, SunOS/Solaris, и некоторых других. Есть версия для Windows.
Для примера будет использоваться Linux Mint, но все сказанное касается и всех остальных дистрибутивов или ОС, за исключением особенностей установки в конкретном решении. Хотелось бы также отметить, что сейчас параллельно развивается две ветки: 2-x и 3-x. Третья ветка перешла в разряд STABLE в конце 2008 года и рекомендуема к использованию. По параметрам описываемых далее отличий у них практически нет, поэтому все описанное касается обеих версий.
Рис. 3. Установка Squid в Mint.
После инсталляции Squid будет запущен с установками по умолчанию.
2.2 Настройка конфигурации
Все настройки Squid производятся в единственном файле /etc/Squid/Squid.conf, параметров внутри очень много. Просмотреть список параметров, убрав пустые и закомментированные строки, можно при помощи команды (рис. 4):
$ sudo grep -v «^#» /etc/Squid/Squid.conf | sed -e /^$/d’
Рис. 4. Список параметров.
Создание acl (Access Control List) с именем all для абсолютно всех ip-адресов:
acl all src 0.0.0.0/0.0.0.0
Создание acl (Access Control List) с именем localhost для 127.0.0.1/32 ip-адресов:
acl localhost src 127.0.0.1/32
Создание acl (Access Control List) с именем to_localhost для 127.0.0.0/8 ip-адресов:
acl to_localhost dst 127.0.0.0/8
Указание сети, с которой можно присоединяться без авторизации:
acl localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/24
Описание портов:
acl SSL_ports port 443 – https порт
acl Safe_ports port 80 – http порт
acl Safe_ports port 21 – ftp порт
acl Safe_ports port 443 – https порт
Включение поддержки проброски соединения с помощью команды протокола CONNECT:
acl CONNECT method CONNECT
Описывает рабочее время с понедельника по пятницу:
acl work_hours time M T W T F 9:00-18:00
Описывает путь к файлу со списком доменов:
acl blockdomen dstdom_regex "/etc/squid/blocks.domen.acl" – в этом файде содержатся список доменов.
Описывает путь к файлу со списком файлов:
acl blockfiles urlpath_regex -i "/etc/squid/blocks.files.acl" – в этом файде содержатся данные о расширениях.
Описывает путь к файлу со списком значений адресса:
acl blockadult dstdom_regex "/etc/squid/blocks.adult.acl" – в этом файде содержатся регулярные выражения для интернет ресурсов.
Пропуск (allow) или запрет (deny) для указанных портов. Порядок http_acces важен, идет сверху вниз:
http_access allow manager localhost
http_access allow localnet
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny!Safe_ports
http_access deny CONNECT!SSL_ports
http_access allow localhost
http_access deny blockdomen
http_access deny blockfiles
http_access deny blockadult
http_access deny!work_hours
Разрешение acl all доступ:
http_access allow all
Разрешение или запрет доступа к ICP порту, основанное на заявленных списках доступа:
icp_access allow localnet
icp_access deny all
Адреса сокетов, на которых Squid будет ожидать запросы HTTP клиентов:
http_port 192.168.70.131:3128
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности