Ж у р н а л о к о м п ь ю т е р н ы х с е т я х и т е л е к о м м у н и к а ц и о н н ы х т е х н о л о г и я х |
![]() |
![]() |
ПОИСК: | ПОДПИСКА НА НОВОСТИ: | НОМЕР: | |||||||
ДОМОЙ • Архив: Новостей | Конференций | Номеров • Подписка |
Могут ли ужиться IPsec и NAT? Майк Фратто
Стандарты IPsec и NAT, каждый в отдельности, решают свои задачи. Оба они служат нам не первый день, но, чтобы заставить их согласованно работать друг с другом, надо приложить немало труда. Знатоки IP считают трансляцию сетевых адресов (Network Address Translation — NAT) опасным трюком, поскольку она вносит изменения в работу IP на фундаментальном уровне. Администратору сети, отвечающему за сетевую адресацию, NAT часто бывает полезна независимо от того, где он работает: у поставщика услуг Интернет, на крупном предприятии или в небольшой фирме. Почему? Потому что NAT предоставляет несколько способов скрыть сети и хосты. Протокол IPsec (IP security) тоже часто используется, поскольку позволяет безопасно подключать удаленные офисы и удаленных пользователей через Интернет. Однако архитектура протоколов IPsec и нехватка NAT-устройств, способных работать с IPsec, до настоящего времени создавали проблемы при попытках заставить их согласованно работать друг с другом. Самым простым решением было бы поставить широкополосный маршрутизатор, который сочетал бы в себе функции NAT и VPN (Virtual Private Network). Тогда у вас не было бы проблем с IPsec и NAT. Но, поскольку такая роскошь не всегда доступна, вам следует знать о некоторых способах, с помощью которых поставщики решают проблему совместной работы IPsec и NAT более подробную информацию о NAT см.: Сети и системы связи. 1999. № 1. C. 104). Разновидности NAT Существуют две основные разновидности NAT. При динамической трансляции сетевых адресов внешний IP-адрес временно ставится в соответствие внутреннему IP-адресу, т. е. выполняется трансляция только IP-адресов. Динамическая трансляция используется главным образом в коммутируемых соединениях или соединениях по требованию при частом подключении и отключении удаленных пользователей (рис. 1). В момент подключения удаленного пользователя ему присваивается некий IP-адрес; когда он отключается, этот IP-адрес освобождается и может быть затем повторно использован — временно присвоен следующему удаленному пользователю. ![]() Рис 1. Динамическая трансляция сетевых адресов. Трансляция сетевых адресов на уровне портов (Nework Address Port Translation — NAPT) знакома многим. NAPT используется почти исключительно устройствами доступа, предназначенными для того, чтобы скрывать небольшие и среднего размера сети с помощью единственного открытого IP-адреса. NAPT транслирует IP-адрес и номер порта источника в IP-адрес и номер порта открытого интерфейса (рис. 2). ![]() Рис 2. Трансляция сетевых адресов на уровне портов. NAPT бывает особенно полезна при использовании доступа по каналам кабельной сети или линиям DSL, поскольку многие провайдеры берут дополнительную плату за число компьютеров, подключенных к Интернет (хотя число адресов, которое вы получаете, и цена сильно варьируются в зависимости от местоположения поставщика услуг Интернет). Режимы IPsec Теперь главное об IPsec. Этот протокол имеет два режима. В транспортном режиме протокол IPsec применяется к содержимому IP-пакетов, при этом их исходные заголовки остаются видимыми. Транспортный режим IPsec может быть использован только в VPN-соединениях типа хост—хост. Туннельный режим инкапсулирует исходные IP-пакеты в IPsec с новыми заголовками IP. Этот режим позволяет эффективно скрывать исходные IP-пакеты. В соединениях IPsec типа хост—шлюз, т. е. в обычном сценарии удаленного доступа, должен использоваться туннельный режим IPsec. Нам необходимо рассмотреть два протокола IPsec: AH (Authentication Header) и ESP (Encapsulation Security Payload). С помощью протокола AH, редко используемого на практике, можно проверить, что требующиеся для подтверждения подлинности пакета поля, такие, как IP-адреса отправителя и получателя, не были изменены во время передачи. Если пакет не прошел проверку, он отбрасывается. Таким образом, AH обеспечивает целостность данных и аутентификацию их источника. Позднее мы увидим, что работа AH нарушается при использовании любой формы NAT. Протокол ESP шифрует данные IP-пакетов. В туннельном режиме он также обеспечивает целостность данных и аутентификацию источника. Сети VPN, использующие IPsec, обмениваются информацией через логические соединения, называемые SA (Security Association — соглашение по безопасности). SA — это определенная совокупность применяемых на оконечных узлах протоколов, алгоритмов и договоренностей о времени существования ключа. Каждое соединение IPsec сети VPN имеет два SA-соглашения — по одному в каждом направлении. SA-соглашения определяются тремя параметрами. Один из них, SPI (Security Parameter Index), представляет собой уникальный номер, который присваивается получателем каждому SA. Другие два параметра—это адрес назначения и протокол. Уникальность номеров SPI гарантируется тем, что оконечный узел назначения может иметь вручную сформированный SPI, неизвестный отправителю. И наконец, IKE (Internet Key Exchange) представляет собой отдельное соединение SA, которое применяется для согласования других параметров протокола IPsec. IKE использует порт 500 протокола UDP и поэтому может проходить процедуру трансляции сетевых адресов без какой-либо специальной обработки, как и любой другой протокол TCP/UDP. Соглашение IKE остается в силе в течение всего времени жизни SA-соглашения более низкого уровня. Комбинация NAT и IPsec Здесь начинается самое интересное. Давайте рассмотрим отдельные случаи, когда IPsec и NAT отказываются работать вместе. NAT и AH не могут работать вместе, поскольку NAT по определению меняет IP-адреса в IP-пакетах, а любые изменения в IP-пакете отмечаются протоколом AH как нарушение. Устройство NAPT, находящееся между двумя оконечными узлами IPsec и не знающее, как обрабатывать трафик IPsec, тоже нарушает работу IPsec. Аналогично ESP и NAPT не будут работать вместе, потому что в транспортном режиме номера портов защищены протоколом ESP и любое изменение будет отмечено им как неверное. При использовании протокола ESP в туннельном режиме заголовки TCP/UDP невидимы и не могут применяться для трансляции внешних адресов во внутренние и наоборот. Здесь мы ограничимся рассмотрением случая, когда в сети имеется всего одно устройство NAT. Если число их больше, то все они должны работать с IPsec, чтобы передавать трафик соответствующим образом. Статическая трансляция NAT и ESP будет проходить нормально, поскольку транслируются только IP-адреса независимо от протоколов более высоких уровней. Устройство 3060 компании Cisco Systems и его клиент VPN поддерживают работу с удаленными пользователями через NAT, инкапсулируя IP-пакеты в пакеты UDP до передачи их в сеть. Поскольку внешний UDP-пакет и связанный с ним IP-заголовок никак не защищены, они свободно проходят через все виды устройств NAT. Устройство-получатель Cisco 3060 должно декапсулировать приходящий пакет и обработать его. Этот механизм действует только при использовании устройств семейства Cisco 3000. В настоящее время организация IETF рассматривает и другие предложения по стандартизации инкапсуляции IPsec в UDP. Из них заслуживают упоминания IPsec NAT-Traversal (группа Network Working Group) и RSIP (Realm-Specific IP) для сквозных соединений IPsec (группа Network Address Translators Group). В ближайшее время должен выйти продукт NAT Traversal Toolkit фирмы SSH Communications Security. Что же осталось? Таким образом, нам осталось рассмотреть только ситуацию, в которой ESP взаимодействует с NAPT. Поставщики используют два способа решения этой задачи. Самый простой из них, который, однако, позволяет пропустить через NAPT только одно IPsec-соединение VPN, — ассоциировать единственную рабочую станцию, выполняющую соединение IKE, со всеми пакетами IPsec. Этот метод применяется такими поставщиками, как D-Link Systems, Linksys и Macsense Connectivity. Маршрутизатор SME NAPT вы можете купить за 100—200 долл. Все пакеты IPsec, пришедшие на устройство NAPT, по умолчанию пересылаются на указанный хост. Это возможно благодаря тому, что данный клиент начинает согласование путем передачи данных другому оконечному узлу на порт 500. Этим он сигнализирует устройству NAPT, чтобы оно пересылало все приходящие данные IPsec обратно именно ему. Оба протокола: и ESP и AH — являются протоколами IP, которым присвоены номера 50 и 51 соответственно. Хотя это не самая универсальная реализация, она работает в случае подключения одиночных рабочих станций. Но что произойдет, если использовать IPsec захотят несколько рабочих станций? В этом случае вам следует воспользоваться продуктами, подобными Nexland ISB2LAN или маршрутизатору Asante Technologies FriendlyNet 10/100 для кабельных и DSL-линий, которые поддерживают работу нескольких клиентов IPsec, обслуживаемых устройством NAPT. Эти более универсальные системы стоят от 150 до 250 долл. в зависимости от предлагаемых ими возможностей. При трансляции адреса для передачи пакетов между частной сетью и сетью общего пользования NAPT принимает решение основываясь на уникальность номера порта источника. Поэтому согласование IKE происходит без какой-либо специальной обработки, поскольку IKE работает по протоколу UDP, используя порт 500. Чтобы передать трафик IPsec между хостами, тоже необходимы какие-то уникальные номера, в качестве которых могут быть использованы номера SPI. Напомним, что каждое SA-соединение IPsec идентифицируется номером SPI, IP-адресом назначения и номером протокола. Когда в ходе установления VPN-соединения происходит согласование IKE, осуществляется обмен номерами SPI. Устройство NAPT “привязывает” эту пару номеров SPI к соответствующей оконечному узлу VPN, находящемуся позади устройства NAT (рис. 3). ![]() Рис 3. Трансляция IPsec Отправка пакетов с клиента на шлюз не требует никакой специальной обработки. NAPT-устройство должно знать, куда отправлять входящие пакеты, и поскольку оно не может видеть или модифицировать номер порта UDP/TCP, то будет использовать SPI-идентификаторы клиента для адресации входящих пакетов
Единственным идентификатором SPI, который должен быть привязан к внутреннему IP-адресу, является идентификатор SPI входящего соединения, выбранный клиентом IPsec, так как устройство NAPT должно знать, куда посылать входящий трафик. Исходящий же трафик передается без проблем, потому что IP-адрес клиента IPsec изменяется устройством NAPT. Здесь есть, однако, некоторые нюансы. Во-первых, такой сценарий будет работать, только если соединение IPsec сети VPN инициируется клиентом IPsec, расположенным за устройством NAPT. Если соединение попытается инициировать шлюз IPsec, то согласование будет блокировано устройством NAPT, поскольку оно не будет знать, куда посылать пакеты UDP (оно не будет располагать схемой отображения адресов). По той же самой причине вы не сможете поместить Web-сервер позади устройства NAPT без использования переадресации портов, когда все входящие пакеты с каким-то конкретным портом назначения по умолчанию отправляются на некий внутренний IP-адрес. Переадресация на уровне портов должна быть сконфигурирована заранее. Во-вторых, чтобы все это работало, необходимо настроить ваш шлюз IPsec, чтобы он провел IKE-согласование, как минимум, со шлюзом NAPT или с любым IP-адресом. Для определения, какому SA-соединению принадлежит каждый пакет IPsec, ESP использует SPI, IP-адрес назначения и номер протокола. Поскольку шлюз IPsec идентифицирует клиента IPsec только по адресу NAPT, именно этот адрес и будет использоваться. И наконец, аутентификация на основе IKE до сих пор осуществляется главным образом с помощью заранее распределенных секретных ключей или паролей, связанных с IP-адресами. Поэтому для проведения согласования вы должны указать шлюзу IPsec IP-адрес NAPT. Поскольку удаленные пользователи часто подключаются, имея динамический IP-адрес, выделяемый им их провайдером, то почти все шлюзы IPsec способны связывать ключ с диапазоном IP-адресов. Если известно, например, что устройство NAPT при трансляции IPsec использует IP-адреса из подсети 192.168.1.0, то можно настроить шлюз IPsec таким образом, чтобы целой подсети соответствовал один ключ. Затем необходимо настроить каждый клиент IPsec, находящийся позади устройства NAPT, для использования того же самого ключа. В результате это практически ничем не будет отличаться от обычного удаленного доступа через IPsec.
| ![]() |
![]() |
Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. | ![]() |