Прокси-сервер
статья по информатике и икт (11 класс) на тему

Пруцкая Людмила Алексеевна

Что такое прокси-сервер, для чего используется, виды и настройки.

Материал  поможет системному администратору школы в настройке сети

Скачать:

ВложениеРазмер
Microsoft Office document icon proksi-server2.doc768 КБ
Office presentation icon proksi-server.ppt1.01 МБ

Предварительный просмотр:

                                                                                Пруцкая Л.А.

Что такое  ПРОКСИ-СЕРВЕР

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

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

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

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

Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси-сервер имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.

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

Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом (распространяется в соответствии с GNU GPL). Все запросы выполняет как один неблокируемый процесс ввода/вывода. Используется в UNIX-like системах и в ОС семейства Windows. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей.

В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера. В этом режиме маршрутизатор вместо того, чтобы сразу пересылать http-запросы пользователя http-серверу в интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кэша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.

Проект прокси-сервера Squid в свое время отделился от ныне платного проекта Harvest и разрабатывается несколькими энтузиастами во главе с Duane Wessels из Национальной лаборатории по исследованию сетей (National Laboratory for Applied Network Research). Сервер Squid — это высокопроизводительный кэширующий прокси-сервер, ориентированный прежде всего на работу с пользователями, которые занимаются активным серфингом в Интернете. Squid поддерживает работу пользователей с такими протоколами, как FTP, HTTP, HTTPS и GOPHER. В отличие от других подобных проектов, прокси-сервер Squid обладает интересной особенностью — выполнение запросов пользователей реализовано в нем как один большой неблокируемый процесс ввода-вывода, что обеспечивает более высокую производительность сервера в целом. Поскольку сервер Squid является кэширующим прокси-сервером, он поддерживает широкие возможности по построению иерархической структуры связи кэш-серверов на основе протоколов ICP/UDP (Internet Cache Protocol), HTCP/TCP и multicast. Такая система позволяет получить высокую производительность и оптимизировать пропускную способность канала в Интернет.

 Кэш сервера разделяется на виртуальный, который находится в оперативной памяти компьютера, и обычный, который хранится на жестком диске. Наиболее часто используемые объекты хранятся в оперативной памяти, что ускоряет процесс их отсылки клиентам. Также в виртуальной памяти хранится большая часть запросов DNS. Squid в полной мере поддерживает SSL (HTTPS), что обеспечивает конфиденциальность передаваемой пользователями информации и приватность их работы в Интернете. Также нельзя обойти вниманием широкие возможности по аутентификации пользователей на основе различных методик: NCSA, LDAP, MSNT, NTLM, PAM, SMB, SASL и др. Все дополнительные программы для аутентификации пользователей идут в комплекте с основным ядром программы. Как видно из перечисленных методик, Squid поддерживает авторизацию пользователей средствами сервисов не только на Linux, но и на Windows-платформе (MSNT и NTLMv1) в операционных системах Windows 2003 Server и Vista

Сервер Squid развивается в течение уже многих лет. Обеспечивает совместимость с большинством важнейших протоколов Интернета, а также с операционными системами:

GNU/Linux

FreeBSD

OpenBSD

NetBSD

BSDI

Mac OS X

OSF и Digital Unix

IRIX

SunOS/Solaris

NeXTStep

SCO Unix

AIX

HP-UX

Microsoft Windows

Описание архитектуры

Списки контроля доступа

Для контроля доступа к ресурсам и определения ряда действий используются списки контроля доступа (англ. access control list, acl). Каждый ACL может состоять из нескольких критериев (но только одного типа):

  • адрес (сеть) источника запроса, цели запроса;
  • имя (доменное имя) источника запроса, имя цели запроса;
  • части URL запроса;
  • протокол;
  • порт (получателя, отправителя, самого Squid’а);
  • метод (PUT или GET) при передаче данных по http;
  • браузер (User-agent);
  • ident (запрос к рабочей станции);
  • номер автономной системы отправителя/получателя (не для всех случаев);
  • авторизация на прокси-сервере;
  • номер соединения (чаще всего используется для ограничения количества соединений);
  • SNMP;
  • сертификаты пользователя;
  • параметры запроса;
  • внешние обработчики;
  • Идентификация.

Squid поддерживает несколько видов идентификации пользователей:

  • по IP-адресу (или доменному имени узла);
  • по переданным реквизитам (логин/пароль);
  • по идентификатору пользовательского агента (браузера);
  • Для идентификации по логину/паролю возможно использовать:обычные логин/пароль;
  • NTLM-авторизацию;
  • внешние программы авторизации (определяющие формат авторизации).

Редиректоры

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

Редиректор – не является стандартной частью пакета Squid. Редиректор предоставляет администратору контроль за передвижениями пользователей. Использование редиректора в сочетании с прозрачным проксированием дает простой, но эффективный контроль, над доступом к порно. Программа-редиректор должна читать URL (один на строку) со стандартного входа и записывать измененные URL или пустые строки на стандартный выход. Нужно заметить, что программа-редиректор не может использовать буферизированный I/O. Squid дописывает дополнительную информацию после URL, которую редиректор может использовать для принятия решения.

SAMS (SQUID Account Management System) - программное средство для администрирования доступа пользователей к прокси-серверу Squid.

На данный момент SAMS настраивает работу редиректоров:

Редиректор SAMS - редиректор, работающий напрямую с базами SAMS

SquidGuard - очень мощный редиректор.

Стандартный SQUID - простейший редиректор, описанный в документации к SQUID.

Редиректор SAMS

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

Редиректор SAMS обеспечивает:

  • ограничение доступа пользователей к SQUID ;
  • контроль времени доступа пользователей к SQUID;
  • ограниечение доступа пользователей к запрещенным ресурсам (или доступ пользователей только к разрешенным ресурсам);
  • перенаправление запросов пользователей к баннерам, счетчикам и т.п.

Редиректор SquidGuard

Мощный редиректор с большими возможностями. В состав редиректора входят списки баннерных, порно и пр. доменов.

SAMS добавляет в файл конфигурации SquidGuard Squidguard.conf настройки на списки запрещенных доменов и перенаправления доступа SAMS. Настройки на списки, идущие с SquidGuard не изменяются и не удаляются.

При использовании редиректора SquidGuard в файл Squid.conf заносятся acl, разрешающие доступ всех пользователей к SQUID. Ограничение доступа пользователей организовано средствами редиректора.

Стандартный SQUID

Этот редиректор описан в документации на SQUID. Написан на perl. Редиректор создается после подачи команды на реконфигурирование SQUID, на основе списков перенаправления запросов. Быстрый и легкий редиректор, но не различает пользователей.

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

При использовании редиректора SQUID или если редиректор не используется вовсе, то в существует возможность - при отключении пользователей за превышение трафика у них остается доступ к URL и IP адресам, прописанным в списке "Локальные домены".

Обратное кэширование

Одной из особенностей Squid является возможность работать в режиме «обратного прокси-сервера» («reverse proxy»), так же известного как «ускоритель» («HTTP accelerator»). В этом случае вместо кэширования запросов нескольких пользователей к множеству сайтов, кэшируются запросы множества пользователей к нескольким сайтам. В этом режиме принятый запрос проверяется на «динамичность» (нужно ли каждый раз обрабатывать запрос с нуля) и «возраст» (актуальны ли ещё данные). Если данные ещё актуальны и не поменялись, то запрос не передаётся серверу, а отдаётся из кеша Squid. Таким образом, существенно снижается нагрузка на серверы (например, в Википедии запросы к страницам кэшируются, так как от просмотра их содержимое не меняется, при этом нагрузка на серверы существенно меньше — обработка запроса к кэшу много проще, чем обработка запроса к базе данных SQL, обработка вики-разметки и формирование веб-страницы).

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

Режим прозрачного прокси-сервера

В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера (англ. transparent proxy). В этом режиме маршрутизатор вместо того, чтобы сразу пересылать HTTP-запросы пользователя HTTP-серверу в Интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кеша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.

При таком подходе проксирования аутентификация не предусмотрена, так как прозрачность проксирования это и подразумевает.

Установка Squid

Постановка задачи

Для компьютерной сети, выходящей в интернет через прокси-сервер Squid, настроить список контроля доступа. Сервер расположен на компьютере под управлением операционной системы семейства  Linux. и Windows

Squid – приложение позволяющее организовать прокси/кэширующий сервер для HTTP, FTP и некоторых других популярных протоколов. Поддерживается работа с защищенными TLS/SSL соединениями, кэширование DNS, возможно использование Squid в качестве прозрачного или реверсного прокси. Распространяется по лицензии GNU GPL. Работает во всех популярных вариантах Unix систем – GNU/Linux, *BSD, Mac OS X, SunOS/Solaris, и некоторых других. Есть версия для Windows.

В ОС Linux прокси-сервер Squid входит в состав группы пакетов Web Server. Его также можно установить отдельно из пакета  Squid.

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

  • /etc/init.d/squid - init-скрипт запуска прокси-сервера Squid.
  • /etc/squid - каталог, в котором содержатся все конфигурационный файлы прокси-сервера Squid.
  • /etc/sysconfig/squid - файл, в котором содержатся опции запуска прокси-сервера Squid при помощи init-скрипта.
  • /usr/share/doc/squid - <версия> - каталог с документацией в формате HTML.
  • /usr/lib/squid/ - каталог, содержащий специальные программы (helpers) используемые прокси-сервером Squid для аутентификации пользователей.
  • /usr/sbin/squid - демон прокси-сервера Squid.
  • /usr/share/squid - каталог, содержащий шаблоны сообщений об ошибках.
  • /var/log/squid - каталог, в который выполняется журналирование системных событий прокси-сервера Squid.
  • /var/spool/squid - каталог, используемый для хранения кэшированных данных.

Общая последовательность действий для развертывания прокси-сервера Squid следующая:

  1. Установить пакет squid и все его зависимости;
  2. Настроить конфигурационный файл squid.conf;
  3. Создать базу кэшированных данных;
  4. Запустить демон squid и настроить его автозапуск.

Конфигурирование прокси-сервера Squid в основном сводится к настройке его конфигурационного файла /etc/squid/squid.conf, который содержит более 4000 строк, включая комментарии. На каждой не закомментированной строке указывается определенная директива, имеющая несколько параметров. Остановимся на некоторых из директив. Для того чтобы указать порт, который будет обрабатывать клиентские запросы, используется директива http_port <номер_порта>, где необходимо указать номер порта выше 1024, поскольку демон squid запускается от не привилегированного пользователя. Директива hierarchy_stoplist определяет условия, при которых запросы будет направляться напрямую веб серверу, минуя кэш. Типовая директива hierarchy_stoplist имеет вид:

hierarchy_stoplist cgi-bin ?

acl query urlpath_regex cgi-bin \?

 cache deny query .

 

Рис. 3. Установка Squid в Mint.

После инсталляции Squid будет запущен с установками по умолчанию


        Настройка конфигурации

Все настройки Squid производятся в единственном файле /etc/Squid/Squid.conf, параметров внутри очень много. Просмотреть список параметров (их более 400), убрав пустые и закомментированные строки, можно при помощи команды (рис. 4):

$ sudo grep -v «^#» /etc/Squid/Squid.conf | sed -e /^$/d’

Рис. 4. Список параметров.

Создание acl (Access Control List) с именем all для абсолютно всех ip-адресов:

Создание 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

В этих файлах размещаются журналы запросов клиентов. На каждый HTTP и ICP запрос отводится одна строка:

access_log /var/log/squid/access.log squid

Этот тэг определяет имя хоста(hostname), которое будет отображатся в сообщениях об ошибках, и т.д. в данном случае используется имя mysquid:

visible_hostname mysquid

Директория ошибок:

error_directory /usr/share/squid/errors/ru

Выводит ошибки для определенных ACL:

deny_info ERR_ACCESS_DENIED_ADULT blockadult

deny_info ERR_ACCESS_DENIED_WORK_HOURS work_hours

deny_info ERR_ACCESS_DENIED_BLOCKFILES blockfiles

deny_info ERR_ACCESS_DENIED_BLOCKDOMEN blockdomen

Расположение локальной базы данных связей IP адрес-имя узла:

hosts_file /etc/hosts

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

coredump_dir /var/spool/squid

Формат Squid.conf стандартен для Unix, каждая запись состоит из строк вида: параметр значение.

Возможно использование переменных. Cтроки начинающиеся со знака решетки (#) являются комментариями. Для удобства настройки, все параметры разбиты по секциям. Такое разбиение чисто условно и можно прописывать свои параметры в любое место файла, лишь бы было понятно. Возможно подключение внешнего файла с настройками при помощи include. Единственное о чем следует помнить – установки применяются в порядке очередности. После установки в /usr/share/doc/Squid можно найти документацию и примеры конфигурационных файлов.

2.2 Запуск прокси-сервера Squid

Для запуска прокси-сервера Squid используется команда (Рис. 5):

$ sudo /etc/init.d/Squid start

Рис. 5. Запуск Squid.

Так же нужно настроить клиентские машины для доступа в интернет через прокси-сервер Squid (Рис. 6).

Рис. 6. Направление всего трафика через прокси-сервер.

Теперь при попытке доступа к заблокированным ресурсам вместо них будут открываться надписи со сведениями причины блокировки:


Рис. 7. Запрет доступа к развлекательным и зарубежным доменам.


Squid  в Windows

Второй задачей будет установить прокси сервер в для раздачи интернета на другие компьютеры или для ускорения своего собственного интернета. Хотя «ускорение» будет довольно спорное, в пределах 10% и только для сайтов, на которые хоть раз, но заходили. Прокси сервер будем использовать Squid, как гибкое и стабильное решение, хотя и сложное в настройке для неподготовленного пользователя. Метод протестирован на Windows версий XP, 2003, 7.

 1. Качаем архив squid.rar  squid-2.7.STABLE4-bin.zip (последняя стабильные версия)

2. Распаковываем в каталог c:\squid. Можно установить и в другой каталог, но придется поправить .bat файлы уже созданные в данной сборке для вашего удобства

Конфигурационные файлы Squid расположены в папке etc. Заходим туда и создаем собственные файлы конфигурации путем копирования оригинальных файлов конфигурации. Т.е. файл: - squid.conf.default необходимо скопировать в файл squid.conf - cachemgr.conf.default необходимо скопировать в файл cachemgr.conf - mime.conf.default необходимо скопировать в файл mime.conf

3. Устанавливаем Squid как системную службу и создаем кэш, для этого запускаем файлы install_step1.bat и install_step2.bat

Все, у вас работает служба squid25, проверить ее можно в «Управлении» — правой кнопкой по «Мой компьютер» — «Управление» — «Службы» — «Squid25». Должна быть примерно   такая картинка

Если все в порядке, то прописываем настройки в ваш браузер, например в Internet Explorer нужные нам настройки находятся — «Сервис» — «Свойства обозревателя» — «Соединения» — «Настройка LAN». Адрес нашего прокси сервера для компьютера на котором сам сервер и установлен будет 127.0.0.1, порт 3128.

В конфигурационном файле, который находится в C:\squid\etc\squid.conf по умолчанию есть доступ только для локального компьютера. Если вы хотите дать доступ дополнительному устройству (ноутбуку, компьютеру, еще какому девайсу в виде соседа), то нужно изменить файл примерно так:  (в блокноте)

Начальная конфигурация

visible_hostname server  // имя ПК

http_port 3128  // порт прокси

acl localhost src 192.168.0.1/255.255.255.255  // адреса которым мы разрешим доступ

acl Safe_ports port 80 110 25 //порты по которым мы можем обращаться в интернет, 80 - www, 25,110 - email

acl CONNECT method CONNECT

acl all src 0.0.0.0/0.0.0.0

http_access allow localhost // разрешаем доступ

http_access allow !Safe_ports // разрешаем порты

http_access deny CONNECT

http_access allow all  

Изменим acl localhost src 127.0.0.1/255.255.255.255 на acl localhost src 192.168.0.0/255.255.255.0 для предоставления доступа сети 192.168.0.1 — 192.168.0.254 и запустим reconfsquid.bat для «применения» настроек.

UPD Обновил архив squid.rar — добавил логи кто что качал и две нужные папки, без них оказывается не стартовал сервис.


Настройка прокси сервера

Настройка прокси-сервера для Internet Explorer 

Зайдите в меню Сервис -> Свойства обозревателя. Выберите вкладку «Подключения», а затем нажмите кнопку «Настройка LAN...»

Установите галочку «Использовать прокси-сервер для подключений...».

В поле ввода «Адрес» введите «192.168.0.1», а в поле «Порт» — «3128»

Не забудьте включить «Не использовать прокси-сервер для локальных адресов».

Теперь нажмите кнопку «Дополнительно».

В поле ввода «HTTP» введите «192.168.0.1», а в поле «Порт» — «3128».

Теперь поставьте галочку «Использовать один прокси-сервер для всех протоколов».


Настройка прокси-сервера для Mozilla FireFox 2

Зайдите в меню Инструменты -> Настройки. Затем перейдите на вкладку «Дополнительно».

Чуть ниже выберите вкладку «Сеть», в рамочке «Соединение» нажмите кнопку «Настроить».

Установите галочку «Настроить параметры подключения вручную».
В поле ввода «HTTP - прокси» введите «192.168.0.1», а в поле «Порт» — «
3128».
Затем установите галочку «Использовать этот прокси-сервер для всех протоколов».


Настройка прокси-сервера для Opera

Зайдите в меню Инструменты -> Настройки. Затем перейдите на вкладку «Дополнительно».

В списке слева выберите вкладку «Сеть».

Теперь нажмите кнопку «Прокси - серверы». Поставьте галочки «HTTP» и «FTP», в полях ввода напротив них — введите «192.168.0.1 », а в полях «Порт» — «3128».

Заключение

В настоящее время на рынке программного обеспечения предствленно множество разнообразных программных прокси-серверов. Большинство из них имеет два основных недостатка: они коммерческие и не поддерживают ICP (ICP используется для обмена информации о наличии URL в соседнем кэше). Squid – это лучший выбор для кэширующего прокси-сервера, так как он надежный, бесплатный и поддерживает ICP. В настоящее время это наиболее производительный прокси-сервер, превосходящий по функциональности Microsoft ISA Server 2000.

Производный от “кэширующего” программного обеспечения ARPA-funded Harvest research project, разработанного в National Laboratory for Applied Network Research and funded by the National Science Foundation, Squid предлагает высокопроизводительное кэширование для веб клиентов, он также поддерживает FTP, HTTP и HTTPS объекты данных. Squid хранит часто используемые объекты в RAM, поддерживает надежную базу данных объектов на диске, имеет комплексных механизм контроля доступа и поддерживает SSL протокол для посредничества в безопасных соединениях. В дополнение к этому, он поддерживает иерархические связи с другими прокси-серверами, базирующимися на Squid.  Он ведет достаточно подробные логи об интернет-активности пользователей,  используется в UNIX-like системах и в ОС семейства Windows NT. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей.


Список литературы

  1. Бруй В. В., Карлов С. В. Б67 “LINUX-сервер: пошаговые инструкции инсталляции и настройки.” – М.: Изд-во СИП РИА, 2003. – 572 с. ISBN 5-89354-153-7
  2. http://www.Squid-cache.org/- Домашняя страница проекта Squid
  3. http://Squid.visolve.com/ - Руководство, советы по настройке
  4. http://Squid.opennet.ru/ - FAQ, форум, ссылки на русскоязычные ресурсы, посвященные Squid
  5. http://www.bog.pp.ru/ - Установка, настройка и использование
  6. http://www.break-people.ru/ - Файл Squid.conf на русском, по секциям

Web страницы посвященные Squid.

Здесь информация по программе Squid http://squid.nlanr.net/Squid/,

а здесь http://www.nlanr.net/Cache/

дополнительная информация по кешированию вообще.


Предварительный просмотр:


Подписи к слайдам:

Слайд 1

Прокси-сервер (от англ. proxy — « представитель, уполномоченный ») — служба в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси-сервер имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак. Возможности прокси-сервера SQUID

Слайд 2

Использование прокси-серверов Чаще всего прокси-серверы применяются для следующих целей: 1. Обеспечение доступа с компьютеров локальной сети в Интернет. 2. Кэширование данных: если часто происходят обращения к одним и тем же внешним ресурсам, то можно держать их копию на прокси-сервере и выдавать по запросу, снижая тем самым нагрузку на канал во внешнюю сеть и ускоряя получение клиентом запрошенной информации. 3. Сжатие данных: прокси-сервер загружает информацию из Интернета и передаёт информацию конечному пользователю в сжатом виде. Такие прокси-серверы используются в основном с целью экономии внешнего трафика. 4. Защита локальной сети от внешнего доступа: например, можно настроить прокси-сервер так, что локальные компьютеры будут обращаться к внешним ресурсам только через него, а внешние компьютеры не смогут обращаться к локальным вообще (они «видят» только прокси-сервер). 5. Ограничение доступа из локальной сети к внешней: например, можно запретить доступ к определённым веб-сайтам, ограничить использование интернета каким-то локальным пользователям, устанавливать квоты на трафик или полосу пропускания, фильтровать рекламу и вирусы. 6. Анонимизация доступа к различным ресурсам. Прокси-сервер может скрывать сведения об источнике запроса или пользователе. В таком случае целевой сервер видит лишь информацию о прокси-сервере, например, IP-адрес, но не имеет возможности определить истинный источник запроса. Существуют также искажающие прокси-серверы, которые передают целевому серверу ложную информацию об истинном пользователе

Слайд 4

Ключевыми типами прокси-серверов, являются: пересылающие прокси-серверы (forward proxies); прозрачные прокси-серверы (transparent proxies); кэширующие прокси-серверы (caching proxies); прокси-сервер обеспечения безопасности (security proxies); обратные прокси-серверы (reverse proxies).

Слайд 5

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

Слайд 6

Прокси-сервер Squid Squid — программный пакет, реализующий функцию кэширующего прокси-сервера для протоколов HTTP, FTP, Gopher и (в случае соответствующих настроек) HTTPS. Разработан сообществом как программа с открытым исходным кодом ( распространяется в соответствии с GNU GPL ). Все запросы выполняет как один неблокируемый процесс ввода/вывода. Используется в UNIX-like системах и в ОС семейства Windows. Имеет возможность взаимодействия с Active Directory Windows Server путём аутентификации через LDAP, что позволяет использовать разграничения доступа к интернет ресурсам пользователей, которые имеют учётные записи на Windows Server, также позволяет организовать «нарезку» интернет трафика для различных пользователей. В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера. В этом режиме маршрутизатор вместо того, чтобы сразу пересылать http-запросы пользователя http-серверу в интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кэша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.

Слайд 7

Сервер Squid развивается в течение уже многих лет. Обеспечивает совместимость с большинством важнейших протоколов Интернета, а также с операционными системами: GNU/Linux FreeBSD OpenBSD NetBSD BSDI Mac OS X OSF и Digital Unix IRIX SunOS/Solaris NeXTStep SCO Unix AIX HP-UX Microsoft Windows

Слайд 8

Squid имеет возможность переписывать запрашиваемые URL. Squid может быть сконфигурирован так, чтобы пропускать входящие URL через процесс редиректора выполняемого как внешний процесс (подобно dnsserver), который возвращает новый URL или пустую строку, обозначающую отсутствие изменений. Редиректор – не является стандартной частью пакета Squid. Редиректор предоставляет администратору контроль за передвижениями пользователей. Использование редиректора в сочетании с прозрачным проксированием дает простой, но эффективный контроль, над доступом к порно. Редиректоры Редиректор SAMS Написан специально для SAMS, напрямую использует информацию, содержащуюся в базе данных. Позволяет включить различное перенапраление запросов для пользователей (регулируется шаблонами пользователей). Редиректор SAMS обеспечивает: ограничение доступа пользователей к SQUID ; контроль времени доступа пользователей к SQUID; ограничение доступа пользователей к запрещенным ресурсам (или доступ пользователей только к разрешенным ресурсам); перенаправление запросов пользователей к баннерам, счетчикам и т.п.

Слайд 9

Редиректор SquidGuard Мощный редиректор с большими возможностями. В состав редиректора входят списки баннерных, порно и пр. доменов. SAMS добавляет в файл конфигурации SquidGuard Squidguard.conf настройки на списки запрещенных доменов и перенаправления доступа SAMS. Настройки на списки, идущие с SquidGuard не изменяются и не удаляются. При использовании редиректора SquidGuard в файл Squid.conf заносятся acl, разрешающие доступ всех пользователей к SQUID . Ограничение доступа пользователей организовано средствами редиректора.

Слайд 10

Squid поддерживает несколько видов идентификации пользователей: по IP-адресу (или доменному имени узла); по переданным реквизитам (логин/пароль); По идентификатору пользовательского агента (браузера); Для идентификации по логину/паролю возможно использовать:обычные логин/пароль; NTLM-авторизацию; внешние программы авторизации (определяющие формат авторизации).

Слайд 12

В ОС Linux прокси-сервер Squid входит в состав группы пакетов Web Server . Его также можно установить отдельно из пакета Squid . После установки пакета Squid в системе будут присутствовать следующие конфигурационные и бинарные файлы, которые используются прокси-сервером Squid : /etc/init.d/squid - init-скрипт запуска прокси-сервера Squid. /etc/squid - каталог, в котором содержатся все конфигурационный файлы прокси-сервера Squid. /etc/sysconfig/squid - файл, в котором содержатся опции запуска прокси-сервера Squid при помощи init-скрипта. /usr/share/doc/squid - <версия> - каталог с документацией в формате HTML. /usr/lib/squid/ - каталог, содержащий специальные программы (helpers) используемые прокси-сервером Squid для аутентификации пользователей. /usr/sbin/squid - демон прокси-сервера Squid. /usr/share/squid - каталог, содержащий шаблоны сообщений об ошибках. /var/log/squid - каталог, в который выполняется журналирование системных событий прокси-сервера Squid. /var/spool/squid - каталог, используемый для хранения кэшированных данных

Слайд 13

Общая последовательность действий для развертывания прокси-сервера Squid следующая: Установить пакет squid и все его зависимости; Настроить конфигурационный файл squid.conf; Создать базу кэшированных данных; Запустить демон squid и настроить его автозапуск. Конфигурирование прокси-сервера Squid в основном сводится к настройке его конфигурационного файла /etc/squid/squid.conf , который содержит более 4000 строк, включая комментарии. На каждой не закомментированной строке указывается определенная директива, имеющая несколько параметров. Остановимся на некоторых из директив. Для того чтобы указать порт, который будет обрабатывать клиентские запросы, используется директива http_port <номер_порта , где необходимо указать номер порта выше 1024, поскольку демон squid запускается от не привилегированного пользователя. Директива hierarchy_stoplist определяет условия, при которых запросы будет направляться напрямую веб серверу, минуя кэш. Типовая директива hierarchy_stoplist имеет вид: hierarchy_stoplist cgi-bin ? acl query urlpath_regex cgi-bin \? cache deny query .

Слайд 16

Создание 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 Значения некоторых параметров конфигурации

Слайд 17

Разрешение или запрет доступа к ICP порту, основанное на заявленных списках доступа: icp_access allow localnet icp_access deny all Адреса сокетов, на которых Squid будет ожидать запросы HTTP клиентов : http_port 192.168.70.131:3128 В этих файлах размещаются журналы запросов клиентов. На каждый HTTP и ICP запрос отводится одна строка : access_log /var/log/squid/access.log squid Этот тэг определяет имя хоста(hostname), которое будет отображатся в сообщениях об ошибках, и т.д. в данном случае используется имя mysquid : visible_hostname mysquid Директория ошибок : error_directory /usr/share/squid/errors/ru Выводит ошибки для определенных ACL: deny_info ERR_ACCESS_DENIED_ADULT blockadult deny_info ERR_ACCESS_DENIED_WORK_HOURS work_hours deny_info ERR_ACCESS_DENIED_BLOCKFILES blockfiles deny_info ERR_ACCESS_DENIED_BLOCKDOMEN blockdomen Расположение локальной базы данных связей IP адрес-имя узла : hosts_file /etc/hosts По умолчанию Squid оставляет файлы ядра в папке, из которой он был запущен: coredump_dir /var/spool/squid Формат Squid.conf стандартен для Unix, каждая запись состоит из строк вида: параметр значение. Возможно использование переменных. Cтроки начинающиеся со знака решетки (#) являются комментариями. Для удобства настройки, все параметры разбиты по секциям. Такое разбиение чисто условно и можно прописывать свои параметры в любое место файла, лишь бы было понятно. Возможно подключение внешнего файла с настройками при помощи include. Единственное о чем следует помнить – установки применяются в порядке очередности. После установки в /usr/share/doc/Squid можно найти документацию и примеры конфигурационных файлов.

Слайд 18

2.2 Запуск прокси-сервера Squid Для запуска прокси-сервера Squid используется команда (Рис. 5): $ sudo /etc/init.d/Squid start Рис. 5. Запуск Squid. Так же нужно настроить клиентские машины для доступа в интернет через прокси-сервер Squid (Рис. 6).

Слайд 19

Так же нужно настроить клиентские машины для доступа в интернет через прокси-сервер Squid (Рис. 6).

Слайд 20

Теперь при попытке доступа к заблокированным ресурсам вместо них будут открываться надписи со сведениями причины блокировки:

Слайд 21

Прокси сервер в Windows служит для раздачи интернета на другие компьютеры или для ускорения своего собственного интернета. Хотя «ускорение» будет довольно спорное, в пределах 10% и только для сайтов, на которые хоть раз, но заходили. Будем использовать S quid , как гибкое и стабильное решение, хотя и сложное в настройке для неподготовленного пользователя. Метод протестирован на Windows версий XP, 2003, 7. Windows

Слайд 22

1. Качаем архив squid . rar squid -2.7. STABLE 4- bin . zip (последняя стабильные версия) 2. Распаковываем в каталог c:\squid. Можно установить и в другой каталог, но придется поправить .bat файлы уже созданные в данной сборке для вашего удобства Конфигурационные файлы Squid расположены в папке etc. Заходим туда и создаем собственные файлы конфигурации путем копирования оригинальных файлов конфигурации. Т.е. файл: - squid.conf.default необходимо скопировать в файл squid.conf - cachemgr.conf.default необходимо скопировать в файл cachemgr.conf - mime.conf.default необходимо скопировать в файл mime.conf

Слайд 23

3. Устанавливаем Squid как системную службу и создаем кэш, для этого запускаем файлы install_step1.bat и install_step2.bat Все, у вас работает служба squid25, проверить ее можно в «Управлении» — правой кнопкой по «Мой компьютер» — «Управление» — «Службы» — «Squid25». Должна быть примерно такая картинка

Слайд 24

В конфигурационном файле, который находится в C:\squid\etc\squid.conf по умолчанию есть доступ только для локального компьютера. Если вы хотите дать доступ дополнительному устройству (ноутбуку, компьютеру, еще какому то пользователю в виде соседа), то нужно изменить файл примерно так: (в блокноте) Начальная конфигурация visible _ hostname server // имя ПК http _ port 3128 // порт прокси acl localhost src 192.168.0.1/255.255.255.255 // адреса которым мы разрешим доступ acl Safe_ports port 80 110 25 //порты по которым мы можем обращаться в интернет, 80 - www, 25,110 - email acl CONNECT method CONNECT acl all src 0.0.0.0/0.0.0.0 http_access allow localhost // разрешаем доступ http_access allow !Safe_ports // разрешаем порты http_access deny CONNECT http_access allow all Изменим acl localhost src 127.0.0.1/255.255.255.255 на acl localhost src 192.168.0.0/255.255.255.0 для предоставления доступа сети 192.168.0.1 — 192.168.0.254 и запустим reconfsquid.bat для « применения » настроек . UPD Обновил архив squid.rar — добавил логи кто что качал и две нужные папки, без них оказывается не стартовал сервис.

Слайд 25

Настройка прокси-сервера для Internet Explorer Зайдите в меню Сервис -> Свойства обозревателя. Выберите вкладку «Подключения», а затем нажмите кнопку «Настройка LAN...» Установите галочку «Использовать прокси-сервер для подключений...». В поле ввода «Адрес» введите « 192.168.0.1 », а в поле «Порт» — « 3128 » Не забудьте включить «Не использовать прокси-сервер для локальных адресов».

Слайд 26

Теперь нажмите кнопку «Дополнительно». В поле ввода «HTTP» введите « 192.168.0.1 », а в поле «Порт» — « 3128 ». Теперь поставьте галочку «Использовать один прокси-сервер для всех протоколов». Установите галочку «Использовать прокси-сервер для подключений...». В поле ввода «Адрес» введите « 192.168.0.1 », а в поле «Порт» — « 3128 » Не забудьте включить «Не использовать прокси-сервер для локальных адресов».

Слайд 27

Настройка прокси-сервера для Mozilla FireFox 2 Зайдите в меню Инструменты -> Настройки. Затем перейдите на вкладку «Дополнительно». Чуть ниже выберите вкладку «Сеть», в рамочке «Соединение» нажмите кнопку «Настроить». Установите галочку «Настроить параметры подключения вручную». В поле ввода «HTTP - прокси» введите « 192.168.0.1 », а в поле «Порт» — « 3128 ». Затем установите галочку «Использовать этот прокси-сервер для всех протоколов».

Слайд 28

Настройка прокси-сервера для Opera Зайдите в меню Инструменты -> Настройки. Затем перейдите на вкладку «Дополнительно». В списке слева выберите вкладку «Сеть ». Теперь нажмите кнопку «Прокси - серверы». Поставьте галочки «HTTP» и «FTP», в полях ввода напротив них — введите «192.168.0.1 », а в полях «Порт» — « 3128 ».

Слайд 29

Список литературы Бруй В. В., Карлов С. В. Б67 “LINUX-сервер: пошаговые инструкции инсталляции и настройки.” – М.: Изд-во СИП РИА, 2003. – 572 с. ISBN 5-89354-153-7 http://www.Squid-cache.org/- Домашняя страница проекта Squid http://Squid.visolve.com/ - Руководство, советы по настройке http://Squid.opennet.ru/ - FAQ, форум, ссылки на русскоязычные ресурсы, посвященные Squid http://www.bog.pp.ru/ - Установка, настройка и использование http://www.break-people.ru/ - Файл Squid.conf на русском, по секциям Web страницы посвященные Squid. Здесь информация по программе Squid http://squid.nlanr.net/Squid/,а здесь http://www.nlanr.net/Cache/дополнительная информация по кешированию вообще.