8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 44 45 46 47 48 49 50 ... 125

Сокрытие информации DNS

с помощью классического proxy-сервера

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

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

Более подробную информацию о службе Domain Name Service (DNS) и ее настройке вы можете найти в главе 2.

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

Использование файла hoete

Существует еще один метод, позволяющий внешним клиентам получать адреса серверов во внутренней сети: можно записать их в файл /etc/hosts. Когда-то применение этого файла, в котором именам компьютеров сопоставляются их IP-адреса, было стандартным способом разрешения имен. Основной недостаток такого решения заключается в том, что при изменении IP-адреса или имени узла вам придется изменить файл hosts на каждом из клиентов. В случае большого числа клиентов это займет массу времени. При использовании сервера DNS изменение нужно внести только один раз. Но если число внешних клиентов невелико, то комбинация прозрачного proxy-сервера с файлом hosts может быть приемлемым решением. Если же вы собираетесь обеспечить публичный доступ, например к анонимному FTP, такое решение будет непрактичным.

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


Создание proxy-сервера

Некоторые proxy-серверы позволяют создавать шлюзы для определенных служб. Например, в пакете TIS Firewall Toolkit (описанном в главе 14) для установки proxy-соединений с доверенными внешними серверами подходит шлюз plug-gw. Но подобный шлюз не дает возможности анализировать передаваемые данные и не будет работать как настоящий proxy-сервер. Этот метод предназначен для создания исключений в политике безопасности и связывания портов двух серверов, что обеспечивает их взаимодействие через межсетевой экран. С помощью таких шлюзов могут быть определены пользователи и узлы по обе стороны межсетевого экрана, которым разрешен доступ к данной службе. Как и другие proxy-серверы, они способны выполнять регистрацию и выдавать предупреждения. Но во многих случаях применение этого шлюза, действующего по принципу «все или ничего», нежелательно в плане гарантий безопасности.

Если вы хотите больше узнать о plug-gw, обратитесь к главе 14.

Прикладные и канальные шлюзы

Proxy-серверы обычно работают на прикладном уровне, а фильтры пакетов -на сетевом. Но в литературе употребляются два других термина, обозначающие proxy-серверы. Прикладной шлюз (application-level gateway) - это proxy-сервер, понимающий внутреннее устройство используемого протокола или службы (приложения). Канальный шлюз (circuit-level gateway), например plug-gw, выполняет более простые функции и не разбирается в деталях действия протокола или службы, для которых он выступает в качестве proxy-сервера. Канальные шлюзы служат администратору для обеспечения установки определенных соединений через межсетевой экран. Хотя канальные шлюзы не позволяют управлять доступом к отдельным функциям службы, они предоставляют возможность регистрации и выдачи предупреждений.

Трансляторы сетевых адресов

Трансляция сетевых адресов (Network Address Translation, NAT) - часто применяемая функция proxy-сервера. Одна из важных задач, которую выполняет межсетевой экран - сокрытие информации о внутренней сети от посторонних. Эта информация включает в себя данные о настройке и адресации TCP/IP для серверов и рабочих станций сети. Чтобы скрыть информацию об узлах сети, программа NAT при выполнении запросов от имени клиентов локальной сети применяет собственный IP-адрес (или диапазон IP-адресов). Внутри сети клиенты взаимодействуют при помощи реальных IP-адресов. Когда же запрос посылается через межсетевой экран, NAT подставляет в поле источника собственный адрес. При возврате


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

Важно отметить, что существует несколько методов реализации NAT. Некоторые трансляторы адресов осуществляют это посредством статического присваивания адресов (static address assignment), адрес клиента в локальной сети привязывается к фиксированному IP-адресу, который служит программе NAT во внешнем мире. Трансляторы, действующие по принципу динамического присваивания адресов (dynamic address assignment), выделяют IP-адрес для использования во внешней сети, если клиент делает запрос, проходящий через proxy-сервер. По завершении сеанса связи с клиентом или после истечения заданного интервала времени адрес возвращается в список свободных адресов и может быть предоставлен другому компьютеру.

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

Базовая трансляция адресов

Концепция трансляции сетевых адресов, о которой шла речь до сих пор, обычно называется базовой трансляцией адресов (basic NAT). Ее реализация требует наличия одного или нескольких Internet-адресов, с помощью которых сервер NAT создает соединения для ряда клиентов в локальной сети. Это означает, что число IP-адресов сервера должно быть равно максимально возможному числу активных исходящих соединений. Если в распоряжении сервера NAT 10 IP-адресов, только 10 клиентов локальной сети смогут одновременно устанавливать исходящие соединения.

На рис. 7.3 показан пример подобной ситуации. Здесь сетевому адаптеру рабочей станции А присвоен адрес 10.10.10.1. Когда с этой станции поступает запрос на установку Internet-соединения, сервер NAT берет для формирования соединения адрес 140.176.123.1 из блока своих адресов.

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

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



0 ... 44 45 46 47 48 49 50 ... 125