Squid
Материал из Xgu.ru
Squid — это кэширующий прокси-сервер для web, который поддерживает такие протоколы как: HTTP. HTTPS, FTP, GOPHER и многие другие. Прокси-сервер имеет расширенные функции контроля доступа, качества обслуживания QoS (delay pools) и может создавать «ускоритель» для HTTP серверов (Reverse Proxy). Squid может работать на большинстве из существующих на данный момент операционных систем и лицензируется под лицензией GNU GPL.
Squid очень широко используется в вычислительных сетях по всему миру, в том числе в сетях Интернет провайдеров для предоставления пользователям web доступа. Squid оптимизирует поток данных между клиентом и сервером для увеличения производительности, сохранения популярных данных и определение необходимой пропускной способности. Прокси-сервер также имеет широкие возможности маршрутизации запросов к серверам для построения сложных иерархий кэширующих серверов.
Все запросы Squid выполняет как один неблокируемый процесс ввода/вывода. Squid2 написан на чистом C, squid3 переписан на C++.
Содержание |
[править] Режимы работы прокси-сервера Squid
Прокси-сервер Squid может работать в следующих трех основных режимах:
- Прозрачный режим (Transparent Proxy);
- Аутентифицирующий режим (Authentication Proxy);
- Обратный прокси-сервер (Reverse Proxy или httpd-accelerator).
[править] Прозрачный режим
В этом режиме HTTP соединение осуществляемое клиентами перенаправляется на прокси-сервер без их ведома или явной конфигурации. В этом режиме не требуется настройка клиентов.
Недостатки: конфигурация NAT и перенаправления трафика, аутентификация клиентов не работает, не перенаправляются FTP и HTTPS запросы.
[править] Аутентифицирующий режим
Для работы в этом режиме клиенты должны быть настроены для работы с прокси-сервером.
Может выполняться аутентификация и авторизация клиентов через Kerberos, Ldap, Ntlm и Radius.
Возможно построение взаимодействия с серверами Microsoft Active Directory путем аутентификации клиентов – членов домена, используя протокол Kerberos, и последующей авторизации членов групп домена используя LDAP в прозрачном режиме (пользователь вводит свой пароль только при регистрации в домене).
Для авторизированных групп возможно применение различных настроек контроля доступа и QoS (delay pools).
Пример настройки Squid для аутентификации по протоколу Kerberos и авторизации через LDAP
[править] Обратный прокси-сервер
Прокси-сервер кэширует исходящие данные. Обратный прокси-сервер Squid получает данные у HTTP сервера от имени клиента и передает их обратно клиенту (например, в Интернет).
Этот режим позволяет осуществить:
- Использование кэширования, которое снижает нагрузку на HTTP сервера;
- Распределение нагрузки между HTTP серверами;
- Маскировку HTTP серверов и их характеристик;
- Предотвращение web атак на сервера.
[править] Рецепты
[править] Блокирование Skype
Метод достаточно злобный, в том смысле, что блокирует всех, кто лезет по методу CONNECT на численый IP-адрес, но другие более гуманные способы борьбы со Skype средствами Squid пока неизвестны:
acl CONNECT method CONNECT acl skype url_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ http_access deny CONNECT skype
[править] Особенности
- При обработке команд reconfigure/rotate, закрывает все соединения и открывает их заново, поэтому при большом количестве клиентов лучше этого не делать — создадите кому-то небольшой дискомфорт.
Sep 2 16:31:09 proxy14 squid[64325]: Reconfiguring Squid Cache (version 2.7.STABLE6)... Sep 2 16:31:09 proxy14 squid[64325]: FD 113 Closing HTTP connection ... Sep 2 16:31:16 proxy14 squid[64325]: Accepting transparently proxied HTTP connections at 0.0.0.0, port 3128, FD 111. Sep 2 16:31:16 proxy14 squid[64325]: Loaded Icons. Sep 2 16:31:16 proxy14 squid[64325]: Ready to serve requests.
- Из-за своей архитектуры, основной процесс может использовать только одно ядро процессора.
[править] Дополнительная информация
- Squid3.0 Configuration File (англ.) — подробное описание всех опций конфигурационного файла squid
- Анализаторы логов для Squid — список на OpenNet
- squid-errors-uk-0.5.tar.gz — Файлы сообщений об ошибках Squid на украинском языке
- Creating RAMDISK — Кеш сквида в tmpfs
- SquidFaq (рус.) на wiki altlinux.
- Настройка proxy-сервера Squid (рус.) на wiki.rsu.edu.ru.