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


Сервер посредник

На сегодняшний день интернет является одним из важных инструментов ведения бизнеса. Обмен электронными посланиями, как по электронной почте, так и посредством систем мгновенного обмена сообщениями, поиск в сети информации о продуктах, предложениях конкурентов, использование глобальной сети как средства отдыха — всё это и многое другое заставляет компании и простых граждан подключаться к Сети. И если отдельному человеку сэкономить на трафике можно сменив тарифный план и/или провайдера, то для организации таких возможностей предоставляется несколько больше.

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

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

У серверов-посредников существует два основных вида: HTTP, который может включать в себя функционал FTP, и Socks. Иногда (с подачи Wingate, как мы подозреваем) упоминают еще SMTP-прокси, но это не прокси, это как правило smtp-сервер с облегчённым функционалом, и pop3-прокси, который не стандартизован и крайне ограничен в функциях. Почтовые протоколы вообще по большому счёту проксировать нельзя, всё что существует — попытки заставить скрипача забивать гвозди скрипкой.

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

Кроме непосредственно обеспечения работы пользователей компании с внешними ресурсами важными качествами сервером-посредников являются: предоставление пользователям посреднических услуг на базе различных систем учета и проверки подлинности пользователей (аутентификация); контроль использования пользователями внешних ресурсов на основе списков доступа, ключевых слов или другой информации (авторизация); учет объёмов этих услуг по различным показателям. Но те же самые функции могут быть реализованы и без сервера-посредника.

Для чего нужны механизмы аутентификации, авторизации и учёта?

Аутентификация нужна нам для того, чтобы установить личность пользователя. В качестве систем проверки личности для современных серверов-посредников можно использовать локальные списки пользователей, их адресов в сети, и внешние системы, например, систему Microsoft Windows Active Directory или LDAP сервер.

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

Контроль, как и в случаях с определением подлинности пользователя, осуществляется как внутренними механизмами самого сервера, так и внешними приложениями. Для прокси-сервера Squid (сервер-посредник для протоколов http и ftp) часто используется системы Squidguard, Rejik (www.rejik.ru).

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

Однако следует помнить, что учет траффика через посредник имеет естественную погрешность порядка 15..25% в меньшую сторону. То есть посредник считает только эффективный траффик (непосредственно полезную нагрузку), а провайдер — вообще весь IP-траффик, включая заголовки пакетов, установление подключения, повторные передачи данных при сбоях и так далее.

А как же насчёт экономии дорогого трафика, почему мы об этом не пишем подробнее. Не всегда сервер-посредник может экономить нам трафик, в основном эта экономия возможна при работе с протоколами http и ftp. При вводе в поисковую строку браузера адреса нужной нам страницы, сервер-посредник проверяет в своей памяти, есть ли у него уже такая страница и не устарела ли она у него. Если страница такая есть, и она до сих пор актуальна (не изменилась на сервере источнике), то вместо скачивания её из внешней сети, он выдаёт пользователю, копию хранящуюся у него. Так же он поступает и с другими объектами, которые запрашивает пользователь при работе. Вот за счёт этого и возникает экономия трафика, и даже убыстрение загрузки данных из внешней сети.

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

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

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

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

А что делать, когда в компании нет такого человека или вы не уверены в своих знаниях. Тогда в помощь вам придёт тот же интернет, в котором можно найти всё, в том числе и помощь по установке и настройке нужного вам сервера-посредника. На форумах нашего сайта «Системное администрирование, безопасность» и «Программы: Unix-like системы» вы сможете найти ответы на интересующие вас вопросы.

Сервер-посредник на данный момент имеет смысл рассматривать только, как один из элементов комплексной системы обеспечения доступа в интернет, которая в общем случае должна сочетать NAT (систему отображения внутренних адресов на внешний/внешние адреса), систему контроля сетевого трафика firewall, антивирусную фильтрацию, фильтрацию содержимого, учет траффика (причем лучше всего учет иметь на основе IP, а не через посредник, иначе могут быть казусы), и опционально и аккуратно — кеширование данных. NAT — потому что далеко не каждое приложение умеет работать через посредника, а использование туннелей — нарушение информационной безопасности (попутно увеличивающее обьем траффика, кстати). Firewall — думаю и так понятно, фильтр содержимого и антивирус — аналогично, следует упомянуть только, что они проще всего реализуются через сревре-посредник при чём необязательно явно для пользователя. Соответственно, базовым элементом будет NAT, остальное — приложения к нему. Исходя из этого и надо планировать систему. Не стоит использовать посредника как основную часть системы, многовато ограничений он накладывает при использования в одиночку, без NAT.


Некоторые термины использующиеся в статье:

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

Авторизация (англ. Authorization) — процесс, а также результат процесса проверки необходимых параметров и предоставление определённых полномочий лицу или группе лиц на выполнение некоторых действий в различных системах с ограниченным доступом.

HTTP (от англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — сетевой протокол прикладного уровня для передачи файлов. Основным назначением HTTP является передача веб-страниц (текстовых файлов с разметкой HTML), хотя с помощью него с успехом передаются и другие файлы, как связанные с веб-страницами (изображения и приложения), так и не связанные с ними (в этом HTTP конкурирует с более сложным FTP). HTTP предполагает, что клиентская программа — веб-браузер — способна отображать гипертекстовые веб-страницы и файлы других типов в удобной для пользователя форме.

File Transfer Protocol (букв. «протокол передачи файлов») или просто FTP — сетевой протокол, предназначенный для передачи файлов в компьютерных сетях. Протокол FTP позволяет подключаться к серверам FTP, просматривать содержимое каталогов и загружать файлы с сервера или на сервер, кроме того возможен режим передачи файлов между серверами.

Определения использованы с сайта RU.WIKIPEDIA.ORG — русского зеркала Открытой Сетевой Энциклопедии.




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.