Программа squid что это

Содержание

Squid

Squid это программа создающая кэширующий HTTP прокси-сервер.

Squid обеспечивает например

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

Замечание: В Debian Squeeze Squid присутствовал в двух версиях 2.7 и 3.1, где Squid3 это версия переписанная на C++ с дополнительными возможностями. Отличия Squid3 от прежнего Squid приведены в статье Такой разный Squid. Начиная с Debian Jessie поддерживается только только версия 3+. Учитывайте, что актуализация статьи производится для последних версий Squid

Установка

Пакет присутствует в хранилище пакетов debian.

Прокси+firewall. Часть восьмая, прокси https на squid.


Для установки пакета

  • в командной строке: следует выполнить команду # apt-get install squid
  • в графическом режиме: воспользоваться специализированной программой управления пакетами

После установки пакет необходимо настроить.

Настройка осуществляется путём редактирования файла конфигурации /etc/squid/squid.conf.
Описание параметров файла конфигурации содержится в статье Squid.conf.

Некоторые часто используемые команды

# /usr/sbin/squid -z — создание и обнуление структуры каталогов кэша # /etc/init.d/squid start — запуск сервера # /etc/init.d/squid restart — перезапуск сервера # /etc/init.d/squid force-reload — перезагрузка новой конфигурации сервера # squid -k reconfigure — переконфигурация сервера # squid -k rotate — «перемещение» (ротация) логов squid # squid -d 9 — запуск squid в отладочном режиме с выводом информации на экран # tail /var/log/squid/access.log — просмотр лог-файла squid

Ограничение доступа к интернет

Ограничение доступа в Squid может быть осуществлено

  • на основе настройки списков контроля доступа Access Control List, встроенных в Squid
  • с использованием внешних Программ-фильтров HTTP-контента или собственного анализатора
  • с использованием локального сервера DNS

Таким образом Squid позволяет обеспечить запрет загрузки опасного, вредного и паразитного контента, что вместе с кэшированием снижает нагрузку на интернет-канал и безопасность посещения Сети Интернет.

В случае «невозможности доставить запрошенный url» Squid позволяет осуществить перенаправление вызова на стандартные файлы ошибок deny_info. Эти файлы могут быть отредактированы по собственному усмотрению, или вообще содержать null.gif — единственный пиксель.

Запрет доступа к кэшу

Запрет запуска файлов из кэша повышает безопасность использования прокси сервера.

Установка и настройка прокси-сервера squid на Линукс

Для установки запрета запуска программ из кэша

  • каталог кэша /var/spool/squid размещается на отдельном разделе
  • параметры монтирования раздела в файле конфигурации /etc/fstab установлены как

/dev/mapper/squid /var/spool/squid reiserfs defaults,noexec,nodev,nosuid 0 2

  • для применения параметров сразу перемонтируется раздел

# mount /var/spool/squid/ -o remount

Для ограничения несанкционированного доступа к кэшу

  • права доступа до каталогов кэша устанавливаются в

# chown -R proxy:proxy /var/spool/squid/

Авторизация подключения к прокси-серверу

Доступ к прокси через авторизацию может быть необходим как минимум по двум причинам: — это повышает безопасность, за счет добавления паролей для пользователей; — и классифицирует в логе программы запрошенную информацию по пользователем, в связи с включением в access.log имени пользователя.

Для добавления авторизации пользователей при подключении к Squid

  • в файл конфигурации добавляются строки

auth_param basic program /usr/lib/squid/ncsa_auth /usr/local/etc/squid/passwd auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off acl myusers proxy_auth REQUIRED http_access allow myusers http_access deny all

  • создание файла паролей /usr/local/etc/squid/passwd осуществляется с помощью программы htpasswd , которая устанавливается вместе с веб-сервером Apache2.

# htpasswd -с /usr/local/etc/squid/passwd USER ключ «-с» вводится один раз — для создания файла с паролями, далее просто добавляем пользователей # htpasswd -b /usr/local/etc/squid/passwd USER PASSOWRD Adding password for user USER

  • Применение ПРОКСИ-сервера для организации авторизованного доступа к сети Интернет
  • Авторизация Windows-пользователей в SQUID на основе их доменных аккаунтов
  • Как в Squid работает прокси-аутентификация ?

Создание каскада прокси

Создание каскада позволяет прокси-серверу передавать HTTP-запросы другой программе. Эта программа может быть другим прокси-сервером или программой-фильтром контента. Поддержка каскада прокси позволяет создавать Обратный прокси на squid — то есть проксировать внешние запросы к сайтам в локальной сети.

Для создания каскада прокси

  • в файл конфигурации /etc/squid/squid.conf добавляется строка

cache_peer 192.168.2.1 parent 3128 0 proxy-only default где 192.168.2.1:3128 — ip-адрес/порт вышестоящего прокси-сервера

  • перезагружается конфигурация сервера

Оптимизация прокси

Для увеличения частоты попаданий в кэш прокси-сервера

— в файл конфигурации добавляются например параметры cache_dir ufs /var/spool/squid 10240 16 256 увеличение размера дискового кэша maximum_object_size 10 MB увеличение размера кэшируемого объекта reload_into_ims on замена запроса reload на If-Modified-Since refresh_pattern .jpg$ 43200 100% 43200 override-lastmod override-expire ignore-reload ignore-no-cache — добавление правил частоты обновления объектов в кэше

Для повышения производительности (отзывчивости) прокси-сервера

— в файл конфигурации добавляются например параметры cache_mem 512 MB увеличение размера буфера кэша в памяти maximum_object_size_in_memory 1 MB увеличение размера кэшируемого в память объекта dns_nameservers IP_SERVER прямое указание IP адреса DNS-сервера

  • Оптимизация кэша squid
  • Рассчитать cache_dir и cache_mem s SQUID
  • Настройка Squid для начинающих
  • Squid: настраиваем контроль доступа и оптимизируем кэш
  • Конфигурирование параметров оперативной и дисковой памяти Squid3

deny_info

Squid позволяет выдать ответ клиенту на запрещённый запрос произвольным способом.

В обычном случае для этого используются директивы deny_info и указание URL вида

http_access deny banners deny_info http://ip_web_server/error.html banners где ip_web_server — адрес Веб-сервера содержавший странички с кодами ошибок
Например Для обеспечения эстетичного просмотра веб-страницы при блокировании запроса может быть применено перенаправление на 1-пиксельный GIF-файл: http_access deny banners deny_info http://ip_web_server/1×1.gif banners

Но использование веб-сервера в данном случае не является обязательным.
Для обеспечения перенаправления deny_info средствами самого Squid

  • файл 1×1.gif копируется в доступный для Squid каталог, например

# cp null.gif /usr/share/squid/icons/

  • в файл MIME Squid-а досбавляется строка

# echo «null.gif$ image/gif null.gif — image +download +view» >> /usr/share/squid/mime.conf

  • в файле конфигурации Squid строки deny_info приводятся к виду

deny_info IP_SquidServer:PORT_SquidServer/squid-internal-static/icons/null.gif banners

  • перезагружается конфигурация сервера
  • Squid: баним баннеры без вспомогательного веб-сервера
  • Squid: Секция Error Pages

Блокирование HTTPS хостов

В настоящее время сайты в интернет активно используют защищённый HTTP протокол — HTTPS. Это вызывает трудности для установки ограничений доступа, как для самого Squid, так и для программ-фильтров, так как доступа к контенту странички нет. Тем не менее запрос URL попадает к прокси в открытом виде. Что позволяет осуществить его блокирование по маске запрашиваемого хоста.

Для блокирования HTTPS хостов по маске запрашиваемого хоста

— в файл конфигурации добавляются например параметры acl poorDSTDOM dstdomain -i «/etc/squid/acl/poorDSTDOM» http_access deny poorDSTDOM
где файл /etc/squid/acl/poorDSTDOM содержит плохие маски запросов по домену, вида .direct.yandex.ru .content.adriver.ru .doubleclick.net .top100.rambler.ru .adservice.google.ru .

Существуют и другие методы к блокированию SSL-запросов в Squid.
Например с использованием SSL-сертификатов

  • wiki.squid-cache.org: Feature: Squid-in-the-middle SSL Bump
  • ПРОЗРАЧНЫЙ ПРОКСИ ДЛЯ HTTPS В SQUID
  • Squid фильтрация https без подмены сертификатов
  • Squid 3.5.26 on Debian 8 with SSL

Результирующие коды Squid

Результаты своей работы Squid записывает в файл журнала (обычно /var/log/squid/access.log). Для понимания выполнения прокси-сервером своей функции следует иметь представление о записываемых в лог Результирующих кодах, выставляемых SQUID-ом и о кодах состояния HTTP.

Перечень Результирующих кодов Squid

TCP_HIT верная копия запрошенного объекта была в кэше TCP_MISS запрошенного объекта не было в кэше TCP_REFRESH_HIT запрошенный объект был закэширован, но УСТАРЕЛ; IMS-запрос для этого объекта вернул «304 not modified» TCP_REF_FAIL_HIT запрошенный объект был закэширован, но УСТАРЕЛ; IMS-запрос завершен неудачно и устаревший объект был доставлен TCP_REFRESH_MISS запрошенный объект был закэширован, но УСТАРЕЛ; IMS-запрос вернул новое содержимое TCP_CLIENT_REFRESH_MISS клиент послал прагму «no-cache» или другу аналогичную команду контроля кэширования в запросе, поэтому объект.должен быть повторно получен. TCP_IMS_HIT клиент использовал IMS-запрос для объекта, который был найден в кэше свежим TCP_SWAPFAIL_MISS объект скорее всего был в кэше, но доступа к нему нет TCP_NEGATIVE_HIT запрос для негативно кэшированных объектов типа «404 not found», о которых кэш знает, что они недоступны; См. пояснения по negative_ttl в вашем файле squid.conf. TCP_MEM_HIT верная копия запрошенного объекта была в кэше и в памяти; доступа к диску не производилось TCP_DENIED доступ запрещен для этого запроса. TCP_OFFLINE_HIT запрошенный объект был извлечен из кэша в режиме offline. В режиме offline никогда не проверяются, См. пояснения по offline_mode в вашем файле squid.conf. UDP_HIT верная копия запрошенного объекта была в кэше UDP_MISS запрошенный объект отсутствует в этом кэше UDP_DENIED доступ запрещен для этого запроса UDP_INVALID был получен неверный запрос UDP_MISS_NOFETCH из-за параметра запуска «-Y» или частых отказов, кэш при хите будет возвращать либо UDP_HIT или этот код. Соседи таким образом получат только хиты. NONE указывается с ошибками и запросами cachemgr. TCP_CLIENT_REFRESH См. TCP_CLIENT_REFRESH_MISS. TCP_SWAPFAIL См. TCP_SWAPFAIL_MISS. TCP_IMS_MISS См. TCP_IMS_HIT. UDP_HIT_OBJ Совпавший объект больше недоступен. UDP_RELOADING См. UDP_MISS_NOFETCH.

  • Файлы журналов Squid
  • Squid Log Files
Читайте также:
Crm программа что это такое для ведения клиентской

Литература

  • wikipedia.org: Squid
  • xgu.ru: Squid
  • Мини-HOWTO: Прозрачный Прокси-сервер при помощи Squid
  • Установка Debian-маршрутизатора с возможностями прозрачного proxy-сервера
  • Что может и чего не может корпоративный прокси сервер
  • шесть вещей, которые должен знать новичок-администратор Squid
  • Кэширующий прокси-сервер (Squid) Андрей Горев, Георгий Курячий
  • sysadminwiki: Squid

Справочная информация

  • 18.07.2007: Squid: создание описания пакета на примере ASPLinux11
  • 17.01.2008: Squid: добавлено описание ограничения доступа в интернет средствами squidGuard
  • 20.03.2010: Squid: создание статьи в википедии
  • 26.04.2010: Squid: добавлено описание каскада прокси
  • 29.04.2010: Squid: правка внешнего вида, добавлено описание автоконфигурации прокси
  • 22.12.2011: Squid: правка внешнего вида, добавлено описание оптимизации кэша
  • 10.06.2012: Squid: добавлено описание создания обратного прокси
  • 21.02.2015: Squid: добавлен раздел о Результирующих кодах Squid
  • 10.02.2016: Squid: добавлено описание запрета доступа в видео-контенту
  • 13.02.2016: Squid: добавлен раздел о директиве deny_info
  • 14.02.2016: Squid: осуществлено отделение описание ограничения доступа в интернет в отдельную статью Access Control List
  • 29.04.2018: Squid: добавлен раздел о Блокировании HTTPS хостов

Источник: tdkare.ru

Как установить прокси-сервер Squid в Windows

squid — это высокопроизводительный кэширующий прокси-сервер для веб-клиентов, поддерживающий объекты данных FTP, gopher, ICAP, ICP, HTCP и HTTP. Squid снижает нагрузку на сеть, количество передаваемых данных и улучшает время отклика за счёт сохранения в кэше и повторного использования часто запрашиваемых веб-страниц. Squid имеет обширный контроль доступа и является отличным ускорителем серверов. Он работает в большинстве доступных операционных систем, включая Windows, и распространяется под лицензией GNU GPL.

Официальный сайт прокси-сервера squid: http://www.squid-cache.org

Squid может компилироваться и запускаться в Windows как системная служба с использованием среды эмуляции Cygwin или может быть скомпилирован в собственном режиме Windows с использованием среды разработки MinGW + MSYS. Поддерживаются Windows NT 4 SP4 и более поздние версии.

  • Функции Squid, которые не работают в Windows:
  • DISKD: ещё нужно портировать
  • Прозрачный прокси: отсутствует некоммерческий драйвер перехвата для Windows
  • WCCP: эти функции не были перенесены. Без поддержки прозрачного прокси в этом нет необходимости.
  • Поддержка SMP: Windows-эквивалент сокетов UDS не реализован
  • Некоторые разделы кода могут совершать блокирующие вызовы.
  • Некоторые внешние помощники могут не работать.
  • Количество файловых дескрипторов жёстко ограничено до 2048 при сборке с помощью MinGW.
  • Squid-3.x всех официальных выпусков имеет серьёзные проблемы со сборкой.

Скомпилированные пакеты Squid для Windows

Это самый простой способ получить Squid в Windows — проект с открытым исходным кодом https://github.com/diladele/squid-windows предоставляет файлы установщика MSI Windows для Squid Proxy Server. Он делает возможным установку Squid буквально в несколько кликов. Текущая сборка основана на последней сборки Squid 3.5 для Cygwin под Windows 64 bit.

Для скачивания установщика перейдите на сайт: https://squid.diladele.com/ и нажмите ссылку «MSI installer for SQUID FOR WINDOWS».

Запустите скаченный файл двойным кликом и следуйте подсказкам установщика.

Сразу после завершения работы установщика, рядом с часами появится иконка для управления службой Squid:

При клике на неё будут доступны следующие опции:

  • Open Squid Configuration – Открыть файл настроек
  • Open Squid Folder – Открыть папку программы
  • Start Squid Service – Запустить службу Squid (неактивна, если служба уже запущена)
  • Stop Squid Service – Остановить службу Squid
  • About – О
  • Exit – Выйти

Путь до конфигурационного файла в Windows: C:Squidetcsquidsquid.conf. Имейте это ввиду, так как во всех последующих разделах настройка будет показана на примере Linux.

Чтобы сделанные в конфигурационном файле изменения вступили в силу, нужно перезапустить службу Squid, для этого остановите и запустите её снова.

Служба Squid будет автоматически запускаться при включении компьютера, а чтобы появилась иконка в трее для управления Squid нужно запустить файл C:SquidbinDiladele.Squid.Tray.exe.

В конфигурационном файле вы можете увидеть пути вроде такого: «/cygdrive/d/squid/cache». Чтобы их понимать, посмотрите «Как получить доступ к дискам в Cygwin».

Также там будут пути вроде такого: /var/cache/squid — это всё директории внутри папки C:Squid. То есть, например, /var/cache/squid — это на самом деле C:Squidvarcachesquid.

Чтобы проверить, действительно ли служба Squid прослушивает порт для подключения, вы можете выполнить следующее:

1. Нажмите Win+x и в открывшемся меню выберите «Windows PowerShell (администратор)».

2. Последовательно выполните команды:

Вы убедитесь, что Squid действительно прослушивает порт 3128.

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

Далее выполнение всех действий показано на примере Linux, поскольку Squid намного сильнее распространён именно на Linux, а не на Windows. Тем не менее, вы, пользователи Windows, можете использовать последующую информацию для настройки Squid на Windows. Но вам нужно иметь ввиду следующие нюансы:

1. Когда приводится команда на открытие файла, вы должны открывать свой конфигурационный файл, путь до которого дан чуть выше.

2. Когда говориться, что нужно перезапустить службу и даётся для этого команда, вам нужно открыть помощник в трее и остановить, а потом запустить службу там.

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

net stop squidsrv net start squidsrv

Для управления автозапуском службы, смотрите статью «Как отключить автозапуск программ и служб в Windows».

3. Скорее всего (я не проверял) вы не сможете настроить авторизацию по логину и паролю на прокси-сервере, так как многие (или все) помощники не работают в Windows.

4. В конфигурационном файле пути до файлов в Linux и Windows могут совпадать, так как Cygwin эмулирует рабочее окружение Linux, но перепроверяйте.

Смотрите также руководство по настройке Squid: Как создать и настроить прокси-сервер Squid

Связанные статьи:

  • Как сделать скриншоты всей страницы сайта в Google Chrome без использования плагинов (50%)
  • Как включить спрятанный режим чтения Google Chrome (50%)
  • Как остановить спам в Календаре Google (50%)
  • Как отключить всплывающие подсказки для вкладок в Google Chrome (50%)
  • Как в Google Chrome включить панель закладок (50%)
  • Как удалённо выйти из Gmail на потерянном или пропавшем устройстве (RANDOM — 50%)

Источник: zawindows.ru

Squid

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 соединение осуществляемое клиентами перенаправляется на прокси-сервер без их ведома или явной конфигурации. В этом режиме не требуется настройка клиентов.

Squid transparent.png

Недостатки: конфигурация NAT и перенаправления трафика, аутентификация клиентов не работает, не перенаправляются FTP и HTTPS запросы.

Аутентифицирующий режим

Для работы в этом режиме клиенты должны быть настроены для работы с прокси-сервером.

Может выполняться аутентификация и авторизация клиентов через Kerberos, Ldap, Ntlm и Radius.

Squid authent.png

Возможно построение взаимодействия с серверами Microsoft Active Directory путем аутентификации клиентов – членов домена, используя протокол Kerberos, и последующей авторизации членов групп домена используя LDAP в прозрачном режиме (пользователь вводит свой пароль только при регистрации в домене).

Для авторизированных групп возможно применение различных настроек контроля доступа и QoS (delay pools).

Обратный прокси-сервер

Прокси-сервер кэширует исходящие данные. Обратный прокси-сервер Squid получает данные у HTTP сервера от имени клиента и передает их обратно клиенту (например, в Интернет).

Squid reverse.png

Этот режим позволяет осуществить:

  • Использование кэширования, которое снижает нагрузку на HTTP сервера;
  • Распределение нагрузки между HTTP серверами;
  • Маскировку HTTP серверов и их характеристик;
  • Предотвращение web атак на сервера.

Рецепты

Блокирование Skype

Метод достаточно злобный, в том смысле, что блокирует всех, кто лезет по методу CONNECT на численый IP-адрес, но другие более гуманные способы борьбы со Skype средствами Squid пока неизвестны:

Читайте также:
Com Google Android apps resTore что это за программа на Андроид

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.

Источник: xgu.ru

Squid

Squid — популярный прокси сервер, имеющийся во многих дистрибутивах Unix (Linux) систем, а также для Windows.

Установка

  • Проверяем, установлен ли squid.

# dpkg -la | grep squid
# rpm -qa | grep squid

  • Если не установлен, то устанавливаем:

# apt-get install squid3

Настройка

Базовая настройка

  • Вносим изменения в конфигурационный файл /etc/squid3/squid.conf:

Прокси сервер будет отвечать только на запросы из локальной сети и компьютера, где установлен:

http_port 10.0.0.2:3128 http_port 127.0.0.1:3128

Squid позволяет обмениваться закэшированной информацией с другими сервермами, если не будем устанавливать их у себя, то отключаем эту возможность (по умолчанию squid прослушивает для этого порт 3130):

icp_port 0

Отводим под кэш 9 Гб, 32 и 256 это 1-й и 2-й уровни каталогов для хранения кэша.

cache_dir ufs /var/spool/squid3/ 9000 32 256

Для безопасности ограничим количество портов, которые будет обрабатывать наш прокси сервер. Для этого правилах acl Safe_ports port закомментируем всё кроме

  • 80 — соединение по http,
  • 21 — соединение по ftp,
  • 443 — соединение по https

После заголовка # INSERT YOUR OWN RULE(S) HERE TO ALLOW: можно вставить правила на ограничения доступа к сервису ICQ и нежелательным сайтам:

acl pool_icq src ‘/etc/squid3/icq.txt’ acl icq dstdomain .icq.com http_access allow pool_icq icq http_access deny icq acl pool_blacklist dstdomain ‘/etc/squid3/blacklist.txt’ http_access deny pool_blacklist

Здесь же можно указать запрет на загрузку mp3, avi и др. мультимедиа файлов:

acl music urlpath_regex -i .mp3 .wav .ogg .avi .mpg .mpeg .wmf http_access deny music

Указываем кому писать если есть проблемы

Задаём размер оперативной памяти, в которой squid будет хранить часть кэша. Параметр зависит от общего объёма оперативной памяти и загруженности сервера остальными задачами. Squid по умолчанию ставит 5 MB.

memory_pools_limit 100 MB

Статистику по клиентам будем собирать внешней программой, т.ч. здесь выключим

client_db off

Сообщения об ошибках показывать на русском языке

error_directory /usr/share/squid3/errors/Russian-koi8-r

  • В /etc/squid3/ создаём файлы:
  • icq.txt — пользователи, кому разрешено использовать эту службу
  • blacklist.txt — список запрещённых для пользователя сайтов, можно указывать как IP адреса так и DNS имена (к сожалению одно другое не заменяет, т.е. если IP занесён, а имя нет, то по последнему можно будет получить доступ к странице). Список можно взять либо где-нибудь в интернете (забыл, где брал, но таких мест несколько), либо здесь.
  • Создаём кэш сквида:

# /usr/sbin/squid3 -z

  • Запускаем:

# /etc/init.d/squid3 start

  • Всё. Прокси-сервер работает. Проверяем с клиентской машины.

Объединение нескольких Squid

Чтобы объединить несколько проски-серверов squid для обмена кэшами между собой, нужно в squid.conf на каждом из них указать соседей:

[[Медиа:Example.ogg]] icp_port 3130 cache_peer 10.0.0.2 sibling 3128 3130 cache_peer 10.0.0.3 sibling 3128 3130

Если мы хотем завернуть весь трафик на соседний прокси, т.е. заставить наш прокси 10.0.0.1 выходить в Интернет только через соседний прокси-сервер 10.0.0.2, то в squid.conf прописываем:

icp_port 3130 cache_peer 10.0.0.2 parent 3128 3130 never_direct allow all

и на 10.0.0.2 даём доступ для 10.0.0.1. Теперь все пользователи, подключенные к 10.0.0.1 будут выходить в Интернет через прокси 10.0.0.2 как один большой пользователь.

Параметр never_direct иногда нужно закомментировать.

Разрешаем доступ по определённому порту

Чтобы позволить клиентам подключаться через прокси сервер к серверам в Интеренет по определённому порту, скажем 3900 и 3901, добавляем в /etc/squid3/squid.conf правило:

acl Special_ports port 3900 3901 . http_access deny CONNECT . !Special_ports

Квотирование доступа

Для квотирования и управления доступом пользователей существует несколько проектов:

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

Включив режим прозрачного прокси сервера, мы избавим пользователей от необходимости настраивать свои интернет-обозреватели на наш прокси. Клиенты будут думать, что идут в Интернет напрямую. Файрвол (через правила NAT) будет перенаправлять все запросы отправляемые в Интернет на 80 порт squid’у. Запросы к веб серверам локальной сети (10.0.0.0/8) перенаправлять не будет, они пойдут по правилам маршрутизации.

Настройка Squid. В squid.conf к параметру http_port нужно добавить параметр transparent. Например так:

http_port 10.0.0.1:3128 transparent

Настройка iptables. Добавим правило для NAT:

iptables -t nat -A PREROUTING -s 10.0.0.0/8 -d ! 10.0.0.0/8 -i eth0 -p tcp —dport 80 -j REDIRECT —to-ports 3128

В этом правиле подразумевается, что Squid установлен на том же сервере, что выполняет роль шлюза.

Очистка кэша

Создание структуры каталогов:

squid -z

Для squid 3 это может быть:

squid3 -z
find /var/spool/squid -type f -exec rm <> ;

Журналы (ротация, вид)

  • По умолчанию Squid хранит журналы в /var/log/squid3 (для версии до 3 в /var/log/squid) в формате

Time Elapsed Host Status/HTTP Size Method URL Ident Hier_Status/Hier_Host Content_Type

  • Изменить представление даты и времени из юниксового в человеческий можно в /usr/local/squid/etc/squid.conf указав:

emulate_httpd_log on

Если позже решим использовать Calamaris или Sarg, то нужно вернуть родной для squid формат журнала, выключив эту опцию.

  • Посмотреть и изменить можно в /etc/logrotate.d/squid3. Для примера, настроим ротацию на ежедневную, сделаем 6 архивных файлов, для access.log уберём компрессию, а для cache.log и store.log оставим:

/var/log/squid3/access.log < daily rotate 6 copytruncate nocompress notifempty missingok >/var/log/squid3/cache.log < daily rotate 6 copytruncate compress notifempty missingok >/var/log/squid3/store.log < daily rotate 6 copytruncate compress notifempty missingok postrotate /usr/sbin/squid3 -k rotate endscript >

Работа над ошибками

Потеря прав

Если squid перестал работать, а в журнале появились записи:

(squid): storeUfsDirOpenSwapLog: Failed to open swap log. squid[8293]: Squid Parent: child process 8317 exited due to signal 6 squid[8293]: Exiting due to repeated, frequent failures

значит squid потерял доступ к каталогу со своим кэшем. Проверить это можно установив полный доступ к каталогу. Предварительно запомним кому он принадлежит и с какими правами:

# chmod 777 /var/spool/squid

Если после этого squid запустился нормально, то стоит выяснить почему он потерял свои права.

Источник: sysadminwiki.ru

Записки IT специалиста

Как устроена и работает система контроля доступа в Squid

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

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Система контроля доступа Squid состоит из двух различных частей: элементов ACL (ACL elements) и списков доступа (access lists). Здесь сокрыта первая сложность, которая связана с переводом на русский язык используемых терминов. Так ACL elements чаще всего переводится как ACL записи или ACL списки, что, в общем-то, достаточно верно отражает их смысл, но вызывает путаницу с термином access lists, вместо которого чаще всего используется термин правила ACL. Чаще всего путаница возникает при самостоятельном переводе англоязычной документации, что резко затрудняет понимание и приводит к различного рода казусам.

Элементы ACL

Под элементами ACL (они же записи или списки) подразумеваются списки значений определенного типа. Список допустимых типов представлен в документации: ACL TYPES AVAILABLE. Как видим, он довольно разнообразен, это и адреса источника или назначения, и доменные имена, параметры URL, время и дата, регулярные значение и т.д., и т.п. Каждый элемент ACL может содержать данные только одного допустимого типа, перечисленные через пробел или отдельной строкой. Также каждый элемент ACL должен иметь уникальное имя. Общий синтаксис следующий:

acl имя_acl тип_acl список_значений

Например, создадим элемент ACL содержащий IP-адреса какого-либо подразделения:

acl buh src 192.168.0.100-192.168.0.110 192.168.0.123

Также можно записать это следующим образом:

acl buh src 192.168.0.100-192.168.0.110
acl buh src 192.168.0.123

При выборе варианта написания следует исходить из его удобочитаемости, на наш взгляд второй вариант более удобен в восприятии, чем первый.

Читайте также:
Программа варьете что это

Одно и тоже значение может входить в списки сразу нескольких элементов ACL. Так один и тот же IP-адрес может входит в списки элементов buh (бухгалтерия), office (сеть офиса) и localnet (локальная сеть):

acl buh src 192.168.0.100-192.168.0.110 192.168.0.123
acl office src 192.168.0.100-192.168.0.230
acl localnet src 192.168.0.0/24

При этом абсолютно не важна последовательность указания элементов ACL в конфиге, в любом случае значение адреса будет входить во все три элемента. Определение принадлежности значения к элементу ACL производится по принципу ИЛИ, т.е. достаточно совпадения с одним из значений списка.

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

Вы можете создать какое угодно количество элементов ACL, как говориться, на все случаи жизни, но при этом следует помнить, что все значения элементов загружаются в память при старте сервиса и каждое значение проверяется по каждому элементу соответствующего типа.

По времени работы различают два типа ACL: быстрые и медленные. К медленным относят элементы, связанные с необходимостью выполнять DNS-запросы, аутентификацию пользователей и т.д., с полным списком медленных и быстрых ACL можно ознакомиться здесь: Fast and Slow ACLs. По понятным причинам медленными элементами ACL злоупотреблять не следует.

Списки доступа

Элементы ACL сами по себе не осуществляют никаких действий, это просто списки, которые используются другой частью системы контроля доступа — списками доступа (или правилами). Перечень списков доступа также довольно обширен и полностью с ним можно ознакомиться здесь: Access Lists.

Общий синтаксис таков:

список_доступа действие (allow|deny) элементы_ACL

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

Сами списки обрабатываются последовательно, по принципу ИЛИ, т.е. до первого совпадения.

http_access allow|deny acl И acl И .
ИЛИ
http_access allow|deny acl И acl И .
ИЛИ
.

Если значение не попало ни в один список определенного типа, к нему применяется действие противоположное действию в последнем списке. Эта особенность способна привести к весьма неожиданному результату, поэтому хорошим тоном будет всегда задавать действие по умолчанию, указывая вместо элемента ACL значение all.

Простой пример. Сначала мы разрешили всем подразделениям доступ к интернету через протокол HTTP, но не задали при этом действия по умолчанию:

acl buh src 192.168.0.101-192.168.0.129
acl office src 192.168.0.101-192.168.0.199
acl sklad src 192.168.0.200-192.168.0.209

http_access allow buh
http_access allow office
http_access allow sklad

В приведенном примере всё будет работать как надо, все компьютеры, которые не относятся к указанным элементам ACL доступа к сети иметь не будут. А теперь мы решили заблокировать доступ к сети для склада:

http_access allow buh
http_access allow office
http_access deny sklad

После чего любой компьютер сети, кроме входящих в элемент sklad получит доступ, так как для всех не попавших в списки значений действие будет allow. Поэтому всегда задавайте действие по умолчанию:

http_access allow buh
http_access allow office
http_access deny sklad
http_access deny all

Часто возникает следующий вопрос: а можно ли вместо конструкции

http_access allow buh
http_access allow office
http_access allow sklad
http_access allow buh office sklad

Вроде бы везде allow, зачем плодить строки? Ответ — нельзя! Потому что списки (правила) обрабатываются как ИЛИ, а элементы как И. А так как один и тот же компьютер, несмотря на то, что сеть бухгалтерии входит в сеть офиса, не может одновременно принадлежать офису и складу, то такое правило работать не будет.

Очень простой пример:

acl ivanov src 192.168.0.123
acl petrov src 192.168.0.124

Если мы напишем так, то работать будет:

http_access allow ivanov
http_access allow petrov

так как читать эту конструкцию следует как:

http_access allow ivanov
ИЛИ
http_access allow petrov

А вот так не будет:

http_access allow ivanov petrov

потому что данная запись означает:

http_access allow ivanov И petrov

чего просто не может быть, так как источник может быть Ивановым ИЛИ Петровым, но никак не Ивановым И Петровым одновременно.

Вообще, избегайте сочетать в одном списке доступа элементы ACL одного типа, это самый верный способ получить нерабочее правило.

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

Поэтому правильно будет:

acl ivanov src 192.168.0.123
acl buh src 192.168.0.101-192.168.0.129
acl office src 192.168.0.101-192.168.0.199

http_access allow ivanov
http_access allow buh
http_access allow office
http_access allow buh
http_access allow ivanov
http_access allow office

Допустим, поступила задача — ограничить доступ к интернету рабочим временем для всей бухгалтерии, кроме Иванова. Хорошо, добавляем:

acl worktime time MTWHF 09:00-18:00

Затем добавим к разрешающему списку второй элемент ACL и запретим работу во внерабочее время:

http_access allow buh worktime
http_access deny buh

В первом случае, когда список с элементом ivanov стоит выше списка с элементом buh — все будет работать как надо, а во втором случае нет. Так как адрес источника 192.168.0.123 входит в списки обоих элементов и условие для элемента buh сработает первым.

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

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

http_access allow ivanov
http_access allow buh worktime
http_access allow office

работать не будет, потому что в рабочее время будет срабатывать правило http_access allow buh worktime, а в нерабочее http_access allow office, так как список значений элемента buh перекрывается списком значений элемента office. Чтобы все работало как задумано потребуется еще один список http_access deny buh:

http_access allow ivanov
http_access allow buh worktime
http_access deny buh
http_access allow office

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

Также, как и элементы ACL списки доступа могут быть быстрыми и медленными: Fast and Slow ACLs. Например, списки доступа delay_access, отвечающие за ограничение скорости, являются быстрыми, а http_access — медленными. Общее правило: использовать быстрые списки раньше медленных и не использовать быстрые списки с медленными элементами. Также имеет смысл вводить некоторые «бесполезные» проверки, чтобы уменьшить количество обращений к медленным спискам с медленными элементами.

Дополнительные материалы:

  1. Linux. Настройка роутера (NAT + DHCP + Squid)
  2. Ubuntu Server. Настраиваем роутер NAT + DHCP + Squid3
  3. Ubuntu Server. Настраиваем контент-фильтр роутера (DansGuardian)
  4. DansGuardian. Сложности фильтрации русскоязычного контента
  5. Ubuntu Server. Настраиваем антивирусный фильтр роутера (ClamAV)
  6. Ubuntu Server. Дополняем контент-фильтр роутера антивирусом (DansGuardian + ClamAV)
  7. Ubuntu Server. Настраиваем форвардинг портов на роутере
  8. Ubuntu Server. Настраиваем аутентификацию через Squid
  9. Ubuntu Server. Ограничиваем скорость клиентов через Squid
  10. SARG — анализируем логи прокси-севера Squid
  11. SAMS — веб-интерфейс для управления Squid и не только
  12. Squid — настраиваем URL-фильтрацию по спискам
  13. Squid — блокируем потоковое мультимедиа
  14. Как устроена и работает система контроля доступа в Squid
  15. Настраиваем Squid для работы с Active Directory. Часть 1 — базовые настройки
  16. Настраиваем Squid для работы с Active Directory. Часть 2 — Kerberos-аутентификация
  17. Настраиваем Squid для работы с Active Directory. Часть 3 — Авторизация на основе групп AD
  18. WPAD или автоматическая настройка параметров прокси
  19. Устраняем ошибки Windows Update при работе через прокси-сервер Squid
  20. Настраиваем ограничение скорости для пользователей в Squid
  21. Сборка Squid 3.5 с поддержкой SSL из исходных кодов для Debian / Ubuntu
  22. Настраиваем роутер NAT + DHCP + Squid3 с поддержкой фильтрации SSL-трафика

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Источник: interface31.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru