Автор: Пользователь скрыл имя, 13 Декабря 2012 в 00:50, реферат
Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служб в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси-сервер имеет свой кэш).
1. Введение
2. Прокси-сервер Squid
3. Описание архитектуры. Списки контроля доступа
4. Установка Squid
5. Настройка конфигурации Squid
6. Запуск прокси-сервера Squid
7. Заключение
8. Список использованных ресурсов
Федеральное Агентство по образованию
Российской Федерации
Московский государственный университет
Приборостроения и информатики
По дисциплине «Администрирование вычислительных систем и сетей»
Тема: Настройка прокси-сервера ОС семейства Unix
Прокси-сервер (от англ. proxy — «представитель, уполномоченный») — служб в компьютерных сетях, позволяющая клиентам выполнять косвенные запросы к другим сетевым службам. Сначала клиент подключается к прокси-серверу и запрашивает какой-либо ресурс (например, e-mail), расположенный на другом сервере. Затем прокси-сервер либо подключается к указанному серверу и получает ресурс у него, либо возвращает ресурс из собственного кэша (в случаях, если прокси-сервер имеет свой кэш). В некоторых случаях запрос клиента или ответ сервера может быть изменён прокси-сервером в определённых целях. Также прокси-сервер позволяет защищать клиентский компьютер от некоторых сетевых атак.(1)
Термином «proxy-сервер» сейчас называют широкий спектр программ. Некоторые фирмы подлили масла в огонь, назвав свои программные продукты «proxy-server» или «что-то proxy». И эти продукты выполняют разные функции. У системных администраторов разбегаются глаза при их виде, как у советского туриста во французском супермаркете. Между тем, есть две концептуально разные функции, обычно присущие всем этим продуктам. Первая – это кэширование http-запросов. Кэширующий сервер не умеет делать ничего, кроме кэширования запросов. Http-запрос от клиентского компьютера (из броузера Opera или Internet Explorer, например) вначале попадает к кэширующему серверу. Тот его переправляет веб-серверу, которому запрос предназначен, и сохраняет у себя ответ
сервера. Если кто-то из пользователей обратится к кэширующему серверу с таким же запросом, он получит страницу быстрее – прямо из кэша. Это не только ускоряет работу конечных пользователей с сетью, но и уменьшает входящий трафик организации. Следовательно, экономятся и время, и деньги. Такая схема дает и побочный эффект: пользователи, которые обращаются к кэширующему серверу, могут иметь «приватные» IP-адреса, поскольку им не нужен прямой доступ к Интернету. Для сети такой организации достаточно одного официально зарегистрированного, «публичного» IP-адреса, и этот адрес им охотно предоставит провайдер. Этот адрес надо будет присвоить внешнему интерфейсу компьютера, на котором работает кэширующий сервер.
Таким образом, кэширующий сервер решает две задачи: собственно кэширование и подстановка своего адреса в качестве адреса отправителя запроса. Это позволяет даже компьютерам, не имеющим публичного адреса в Интернете, получать оттуда информацию через кэширующий сервер.
Вторая функция, которую может выполнять программа, называемая proxy-сервером, – это трансляция адреса отправителя (NAT – Network Address Translation). При трансляции адреса в каждом пакете, проходящем через NAT, адрес отправителя подменяется адресом компьютера, выполняющего трансляцию. Подробнее о NAT рассказано в следующем разделе – «NAT». Существуют программы, выполняющие
трансляцию адреса только для пакетов определенных служб. Например, telnet, ftp и http. Часто такая программа совмещает функции NAT и кэширования http_запросов. Некоторые программы выполняют эти функции или одну из них после авторизации пользователя, что еще сильнее усложняет схему их работы. Нельзя же требовать авторизации на передачу каждого пакета, приходится запрашивать пароль
при начале работы в сети и затем хранить его или пользоваться существующей в сети аутентификацией.
Из-за этого часто возникает терминологическая путаница и бывает не_
ясно, что собеседник думает, когда говорит «proxy-сервер». Правильнее всегда уточнять, какая функция имеется в виду – кэширование запросов или подстановка адресов.
До сих пор мы говорили о proxy-серверах вообще, не упоминая операционную систему, в которой они работают. Многие proxy-серверы работают под управлением Windows. Однако наиболее популярный, особенно у провайдеров, http-кэш squid работает под UNIX. Он распространяется в исходных текстах и может быть установлен практически на любой диалект UNIX. Однако на практике обычно требуется доступ не только к веб-страницам и ftp-серверам, но и к почте. В случае если сеть организации использует NAT, это не вызывает никаких дополнительных проблем. Даже если почтовый сервер организации находится во внешней сети, пользователи будут обращаться к нему через NAT. Так же, как и к любому другому внешнему серверу. Если же NAT не используется, адреса во внутренней сети назначены из блока приватных адресов, то эта задача решается установкой почтового сервера на ту же машину с «публичным» внешним интерфейсом, на которой работает и кэширующий сервер. Вы уже догадались, что маршрутизатором будет эта же машина, то есть она будет подключена и к внутренней сети организации, и к интернет-провайдеру. (2.[стр. 172-173])
Squid — программный пакет,
реализующий функцию
В сочетании с некоторыми межсетевыми экранами и маршрутизаторами Squid может работать в режиме прозрачного прокси-сервера. В этом режиме маршрутизатор вместо того, чтобы сразу пересылать http-запросы пользователя http-серверу в интернете, перенаправляет их прокси-серверу, который может работать как на отдельном хосте, так и на самом маршрутизаторе. Прокси-сервер обрабатывает запрос (с возможной отдачей содержимого из кэша), это содержимое направляется к запросившему пользователю, для которого оно выглядит как «ответ» сервера, к которому адресовался запрос. Таким образом, пользователь может даже не знать, что все запросы и ответы прошли через прокси-сервер.
Сервер 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 имеет возможность
переписывать запрашиваемые
Редиректор – не является стандартной частью пакета Squid. Редиректор предоставляет администратору контроль за передвижениями пользователей. Использование редиректора в сочетании с прозрачным проксированием дает простой, но эффективный контроль, над доступом к порно. Программа-редиректор должна читать URL (один на строку) со стандартного входа и записывать измененные URL или пустые строки на стандартный выход.
SAMS (SQUID Account Management System) - программное
средство для
На данный момент SAMS настраивает работу редиректоров:
Редиректор SAMS - редиректор, работающий напрямую с базами SAMS
SquidGuard - очень мощный редиректор.
Стандартный SQUID - простейший редиректор, описанный в документации к SQUID.
Редиректор SAMS
Написан специально для SAMS, напрямую использует информацию, содержащуюся в базе данных. Позволяет включить различное перенапраление запросов для пользователей (регулируется шаблонами пользователей).
Редиректор SAMS обеспечивает:
ограничение доступа пользователей к SQUID
контроль времени доступа пользователей к SQUID
ограниечение доступа пользователей к запрещенным ресурсам (или доступ пользователей только к разрешенным ресурсам)
перенаправление запросов пользователей к баннерам, счетчикам и т.п.(1)
Squid – приложение позволяющее
организовать прокси/
Для примера будет использоваться Linux Mint, но все сказанное касается и всех остальных дистрибутивов или ОС, за исключением особенностей установки в конкретном решении. Хотелось бы также отметить, что сейчас параллельно развивается две ветки: 2-x и 3-x. Третья ветка перешла в разряд STABLE в конце 2008 года и рекомендуема к использованию. По параметрам описываемых далее отличий у них практически нет, поэтому все описанное касается обеих версий.
Рис. 3. Установка Squid в Mint.
После инсталляции Squid будет запущен с установками по умолчанию.(4)(3)
Все настройки 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 blockfile
http_access deny blockadult
http_access deny!work_hours
Разрешение acl all доступ:
http_access allow all
Разрешение или запрет доступа к ICP порту, основанное на заявленных списках доступа:
Информация о работе Настройка прокси-сервера ОС семейства Unix