7-0 Настройка трансляции сетевых адресов
В этой главе объясняется, как настраивать параметры трансляции сетевых адресов (NAT); использование NAT позволяет использовать во внутренней сети резервные адреса и тем самым расширить ее адресное пространство, обеспечить сокрытие структуры внутренней сети с прозрачным доступом к Интернет.
7-1 Введение
Что такое трансляция сетевых адресов?
Любой сети, желающей подключиться к Интернет, необходим набор IP адресов, которые может выделить любая имеющая на это право организация. Существуют три класса IP адресов: класс А, внутри которого можно описать до 16777214 хостов, класс В, позволяющий описать до 65533 хостов и класс С с 254 хостами.
Бум, который переживает Интернет в последние годы, привел к тому, что сети класса А и В в настоящее время стали недоступны для организаций и отдельных пользователей. Поэтому Вам может быть выделена только сеть класса С, с 254 адресами. При большем числе хостов вам потребуются другие сети класса С, что усложняет работу администратора. Другой способ решения проблемы состоит в использовании трансляции сетевых адресов (NAT).
Трансляция сетевых адресов - это технология, которая позволяет использовать для внутренней сети любые адреса, возможно даже из класса А; при этом сохраняется одновременный и прозрачный доступ в Интернет для всех хостов.
Механизм функционирования такого процесса достаточно прост: каждый раз, когда хост с зарезервированным адресом пытается получить доступ в Интернет, межсетевой экран контролирует эту попытку и автоматически преобразует его адрес в разрешенный. Когда хост назначения отвечает и посылает данные на разрешенный адрес, межсетевой экран преобразует его обратно в зарезервированный адрес и передает данные внутреннему хосту. При этом ни клиент, ни сервер не знают о существовании этого преобразования.
Кроме уже упомянутых преимуществ, трансляция сетевых адресов позволяет все хосты внутренней сети сделать невидимыми для внешней сети, что увеличивает уровень безопасности.
Трансляция сетевых адресов не может быть использована для сервисов, которые передают информацию об IP-адресах или портах внутри протокола. Межсетевой экран Aker из сервисов такого вида поддерживает только сервисы FTP и Real Audio/Real Video.
Что представляет собой моя внутренняя сеть?
Внутренняя сеть состоит из хостов, входящих в состав одной или более подсетей, защищенных межсетевым экраном Aker. Сюда включаются также внутренние сетевые устройства, такие как маршрутизаторы, коммутаторы, серверы, клиенты и т.д. В межсетевом экране Aker внутренняя сеть называется
частной сетью (Private Network).
Что представляет собой моя внешняя сеть?
Внешние сети состоят из тех хостов, которые не являются частью внутренней сети. Они могут находиться или не находиться под административной ответственностью вашей организиции.
Если организация подключена к Интернет, внешней сетью будет весь Интернет.
Адресация в локальной сети
Независимо от технических возможностей, адреса внутренней сети не следует выбирать случайным образом. Специально для этих целей существуют зарезерезерированные адреса. Эти адреса не присвоены и никогда не будут присвоены какому-либо хосту, непосредственно соединенному с Интернет.
Зарезервированными являются следующие адреса:
От 10.0.0.0 до 10.255.255.255, маска 255.0.0.0 (класс A)
От 172.16.0.0 до 172.31.0.0, маска 255.255.0.0 (класс B)
От 192.168.0.0 до 192.168.255.255, маска 255.255.255.0 (класс C)
Трансляция 1-1 и много - 1
Существуют два различных типа преобразования сетевых адресов: 1-1 и много - 1. Каждый из них обладает своими характерными особенностями. Для улучшения результатов обычно применяют их комбинацию.
Тип 1-1 - наиболее понятный, но обычно наименее полезный. Он заключается в создании пары адресов с отображением одного зарезервированного адреса в один реальный адрес. В результате различные хосты будут иметь различные адреса трансляции.
Очень существенное ограничение этого типа состоит в невозможности отображения большего количества хостов, чем количество реальных адресов, поскольку они всегда преобразуются по схеме один-в-один. С другой стороны, эта процедура позволяет иметь доступ извне к хостам с зарезервированными адресами.
Преобразование много-в-один, как свидетельствует его название, делает возможным нескольким хостам с зарезервированными адресами использовать один и тот же реальный адрес. Чтобы достичь этой цели, преобразование использует IP-адреса в комбинации с портами (в случае TCP и UDP протоколов) и в комбинации с порядковыми номерами (в случае ICMP). Это отображение производится динамически межсетевым экраном каждый раз, когда устанавливается соединение. Поскольку существует 65535 портов или различных порядковых номеров, то можно осуществить до 65535 одновременных активных соединений, использующих один и тот же адрес.
Единственным ограничением этой технологии является то, что она не позволяет иметь доступ к внутренним хостам снаружи. Все соединения должны инициироваться изнутри.
Применения трансляции сетевых адресов в межсетевом экране
Предположим, что некоторая организация получает сеть класса С (обозначим ее А.В.С.0). Эта сеть позволяет описать 254 реальных хоста (адреса А.В.С.0 и А.В.С.255 резервируются для специальных целей и не быть использованы, остаются значения между А.В.С.1 и А.В.С.254). Предположим еще, что локальная сеть состоит из 1000 хостов, которые необходимо подключить к Интернет. Так как реальных адресов недостаточно, необходимо воспользоваться трансляцией сетевых адресов. Поэтому для использования во внутренней сети была выбрана зарезервированная сеть класса А 10.x.x.x c cетевой маской 255.0.0.0.
Межсетевой экран Aker устанавливается на границе между Интернет и внутренней сетью, имеющей адреса из зарезервированной сети. Aker будет выполнять преобразование зарезервированных адресов 10.x.x.x в реальные адреса А.В.С.x. В результате межсетевой экран должен иметь по крайней мере два адреса: реальный адрес, до которого можно добраться через Интернет, и зарезервированный, к которому возможен доступ только из внутренней сети. (Как правило на межсетевом экране устанавливают два или более адаптера, один для внешней сети, а один или более - для внутренней. Возможно, хотя крайне нежелательно установить на межсетевой экран всего один сетевой адаптером, с присвоением реального и зарезервированного адреса одному и тому же адаптеру.)
Предположим, что адрес А.В.С.2 выбран для реального (внешнего) сегмента, а адрес 10.0.0.2 для внутреннего сегмента. Реальный адрес будет использоваться межсетевым экраном для преобразования всех соединений из внутренней сети в Интернет. С внешней стороны все соединения будут выглядеть так, как будто они начинаются на межсетевом экране.
В межсетевом экране Aker такой адрес называется виртуальным адресом (он виртуальный, поскольку на самом деле соединения не инициируются межсетевым экраном). Этот адрес должен быть настроен на одном из сетевых интерфейсов межсетевого экрана. Если на сетевом интерфейсе описано более одного реального адреса, виртуальным адресом может быть любой из них.
При такой схеме все внутренние хосты могут получить доступ к ресурсам Интернет прозрачно, как если бы они имели действительные адреса. Однако при этом внешние хосты не могут образовывать соединения с внутренними (так как внутренние хосты не имеют реальных адресов). Для решения этой проблемы у межсетевого экрана Aker есть таблица статического преобразования, которая выполняет преобразования 1-1 и позволяет имитировать реальный адрес для любого из зарезервированных. Эта таблица называется таблицей серверной трансляции.
Вернемся опять к нашей гипотетической организации. Предположим, что в вашей сети существует WWW сервер с адресом 10.1.1.5. Предположим еще. что вам хотелось бы, чтобы этот сервер предоставлял информацию как для внутренней сети, так и для Интернет. В этом случае нужно так выбрать реальный адрес, чтобы он мог использоваться внешними клиентами для соединения с этим сервером. Положим, что выбранный адрес есть А.В.С.10. Тогда в таблицу статического преобразования должен прибавиться элемент для отображения адреса А.В.С.10 во внутренний адрес 10.1.1.5. С этого момента все обращения к адресу А.В.С.10 будут автоматически направляться по адресу 10.1.1.5
Реальный адрес, выбранный для выполнения преобразования 1-1, нельзя присвоить какому-нибудь хосту. В нашем примере возможны конфигурации, содержащие до 253 серверов во внутренней сети, к которым можно иметь доступ извне (один из 254 допустимых действующих адресов уже использован для преобразования трафика всех клиентов).
Межсетевой экран Aker использует технологию proxy-arp для взаимодействия внешних сетевых устройств (например, внешний маршрутизатор) с виртуальными серверами.
Примеры настройки трансляции сетевых адресов
С Интернет существует выделенный канал
Оборудование: 1 роутер, 1 Aker Firewall, n клиентов,
2 сервера во внутренней сети
Реальный адрес: А.В.С.x ; сетевая маска 255.255.255.0
Зарезервированный адрес: 10.x.x.x ; сетевая маска 255.0.0.0
Адреса серверов: 10.1.1.1, 10.2.1.1
Адреса клиентов: 10.x.x.x
Адрес маршрутизатора: реальная сеть: А.В.С.1 , Интернет: x.x.x.x
Конфигурация межсетевого экрана Aker:
Адреса адаптера: внутренняя сеть: 10.0.0.2 ,
Виртуальный IP адрес A.B.C.2
Внутренняя сеть: 10.0.0.0
Маска внутренней сети: 255.0.0.0
Таблица серверной трансляции:
A.B.C.10 - 10.1.1.1
A.B.C.30 - 10.2.1.1
Взаимодействие отделов
В этом примере мы покажем, как обеспечить взаимодействие между собой отделов одной компании с использованиемтрансляции адресов между ними.
Оборудование: 1 роутер, 3 Aker Firewalls, n клиентов, 4 внутренних сетевых клиента
Реальные адреса: A.B.C.x, маска 255.255.255.0
Зарезервированные адреса: 10.x.x.x маска 255.255.0.0
Зарезервированные адреса:172.16.x.x, маска 255.240.0.0
Адреса подсети 1:
10.1.x.x
Адрес сервера: 10.1.1.1
Адрес клиента: 10.1.x.x
Адрес роутера: внутренняя сеть: A.B.C.1 , Интернет:x.x.x.x
Конфигурация межсетевого экрана Aker:
Внутренняя сеть: 10.1.0.1, Реальная сеть A.B.C.2
Виртуальный IP адрес: A.B.C.2
Внутренняя сеть: 10.0.0.0
Маска внутренней сети: 255.0.0.0
Адреса подсети 3:
Внешние: 10.2.x.x
Внутренние: 172.16.x.x
Адрес сервера: 172.16.1.1
Адреса клиента: 172.x.x.x
Конфигурация межсетевого экрана Aker:
Подсеть 2: 172.16.0.1, Подсеть 1:10.1.0.2
Виртуальный IP адрес: 10.1.0.2
Внутренняя сеть (2): 172.16.0.0
Маска внутренней сети: 255.240.0.0
Таблица трансляции серверов:
10.2.1.1 - 172.16.1.1
Адреса подсети 3:
Внешний: 10.3.x.x
Внутренний: 172.16.x.x
Адрес сервера: 172.16.1.1
Адреса клиента: 172.x.x.x
Конфигурация межсетевого экрана Aker:
Подсеть3: 172.16.0.1, Подсеть 1:10.1.0.3
Виртуальный IP адрес: 10.1.0.3
Внутренняя сеть (3): 172.16.0.0
Маска внутренней сети: 255.240.0.0
Таблица трансляции серверов:
10.3.1.1 - 172.16.1.1
При такой конфигурации необходимо описать в таблице маршрутизации маршруты к подсетям 10.1.х.х , 10.2.х.х и 10.3.х.х .
7-2 Использование графического интерфейса пользователя
Для получения доступа к меню описания трансляции сетевых адресов необходимо выполнить следующие шаги:
- Выбрать пункт Редактировать в главном меню.
- Выбрать опцию Трансяция адресов
Окно трансляции сетевых адресов
Окно трансляции сетевых адресов состоит из нескольких полей, которые необходимо заполнить для правильной работы NAT в межсетевом экране Aker. Эти поля имеют вид:
Общие параметры трансляции:
Активизировать трансляцию адресов: Эта опция должна быть включена для активизации механизма трансляции адресов. Когда механизм трансляции не активен, конфигурация будет сохраняться, но ее нельзя будет изменить.
IP адрес приватной сети: IP адрес внутренней сети.
Сетевая маска приватной сети: Сетевая маска внутренней сети.
Виртуальный IP адрес: Это реальный IP адрес, в который будут транслироваться адреса источника всех пакеты от хостов внутренней сети при их соединении в внешними серверами. Этот адрес должен быть одним из адресов сетевого интерфейса межсетевого экрана.
Максимальное число TCP и UDP соединений: Это максимальное число одновременных соединений между внутренней и внешней сетями для UDP и TCP протоколов. Параметр может принимать значениеот 0 до 55000 (значение 0 не следует использовать, так как оно деактивирует трансляцию для выделенного протокола; при этом генерируется сообщение об ошибке при каждом обращении клиента к сервису, основанному на этом протоколе).
Максимальный периоде времени, в течение которого соединение считается активным, даже при отсутствии трафика, можно настраивать с помощью системных параметров. Настройка этого параметра описана в главе 4 Настройка системных параметров.
Трансляция адресов много-в-один работает только для протоколов TCP, UDP и ICMP. Для сервисов, основанных на других протоколах, трансляция производиться не будет, если только хост источника не помещен в таблицу серверной трансляции.
Таблица серверной трансляции:
Таблица серверноой трансляции используется для определения отображения один-в-один;серверам присваиваются реальные адреса и внешние хосты получают к ним доступ.
Чтобы добавить новое отображение в список, нужно выполнить следующие действия:
- Нажмите на иконку, которая представляет добавление в инструментальном меню.
или:
- Нажмите в любом месте списка правую клавишу мыши и выделите опцию Добавить во всплывающем меню.
Для редактирования элемента списка надо сделать следующее:
- Нажать на левую клавишу мыши на редактируемом элементе, а затем на иконке, которая представляет редактирование в инструментальном меню.
или
- Нажмите в любом месте списка правую клавишу мыши и выделите опцию Редактировать во всплывающем меню.
Для удаления отображения из списка необходимо выполнить следующее:
- Выделить удаляемый элемент при помощи левой клавиши мыши, а затем нажать иконку, представляющую удаление в инструментальном меню.
или
- Выделить удаляемый элемент при помощи правой клавиши мыши и выберите опцию Удалить во всплывающем.
Для опций Добавить или Редактировать появится следующее окно:
Реальный IP: Это IP адрес сетевого интерфейса внутреннего хоста
Виртуальный IP: Это реальный IP адрес, в который будут транслироваться адреса из внутренней сети. Этот адрес нельзя присваивать какому-либо внешнему хосту и он не может являться адресом сетевого интерфейса межсетевого экрана Aker.
Важные замечания:
- Список серверов не должен содержать повторяющиеся записи.
- Реальные адреса должны принадлежать внутренней сети, определенной в полях IP адрес внутренней сети и сетевая маска внутренней сети.
- Виртуальный адрес не может принадлежать внутренней сети
- Когда хост, описанный в таблице серверной трансляции образует соединение с внешним хостом, его адрес источника будет преобразован в соответствующий виртуальный адрес, кроме протокола FTP. В случае протокола FTP преобразованный адрес будет виртуальным IP адресом глобальной трансляции, независимо от того, описан ли хост в таблице серверной трансляции или нет.
Объекты, для которых трансляция производиться не будет
Таблица объектов, для которых трансляция не будет производиться используется для задания хостов, сетей и наборов, приватные адреса которых не будут транслироваться. В этом случае, даже если хост описан в серверной таблице, его адрес источника не будет транслироваться при обращении к объектам, описанным в этой таблице
В этой таблице два списка: в левом представлены все описанные в системе объекты типа хост, сеть, набор. Справа представлены те обьекты, для которых трансляция производиться не будет.
Для добавления объекта к таблице исключений необходимо
- Выделить добавляемый объект в левом списке
- Нажать на стрелку справа ( только что добавленный объект будет отмечен красным значком V в левом списке и появится в правом)
Для удаления объекта из таблицы исключений необходимо:
- Выделить удаляемый объект в правом списке
- Нажать кнопку X (удаляемый объект больше не будет отмечен значком V в левом списке)
7-3 Использование интерфейса командной строки
Интерфейс командной строки для трансляции сетевых адресов прост в использовании и обладает теми же возможностями, что и графический интерфейс.
Путь к программе: /etc/firewall/fwconver
Синтаксис:
fwconver [activate | deactivate | show | help]
fwconver add server <Real IP> <Virtual IP>
fwconver add entity <name>
fwconver remove server <position>
fwconver remove entity <name>
fwconver <max_con_tcp | max_con_udp> <number
fwconver <private_net | netmask | virtual_ip> <address>
Program help:
Aker Firewall - Version 3.01
fwconver - настройка параметров трансляции сетевых адресов
Использование: fwconver [activate | deactivate | show | help]
fwconver [activate | deactivate | show | help]
fwconver add server <Real IP> <Virtual IP>
fwconver add entity <name>
fwconver remove server <position>
fwconver remove entity <name>
fwconver <max_con_tcp | max_con_udp> <number
fwconver <private_net | netmask | virtual_ip> <address>
activate = активизирует трансляцию сетевых адресов
deactivate = деактивизирует трансляцию сетевых адресов
show = показывает активную конфигурацию
add = добавляет новый элемент в таблицу серверной трансляции или в таблицу
объектов, для которых трансляция производиться не будет
remove = удаляет элемент из таблицы серверной трансляции или из таблицы объектов,
для которых трансляция производиться не будет
max_con_tcp = устанавливает максимальное число одновременных TCP соединений
max_con_udp = устанавливает максимальное число одновременных UDP соединений
private_net = устанавливает IP адрес частной сети
netmask = устанавливает сетевую маску частной сети
virtual_ip = устанавливает виртуальные адреса для трансляции
help = показывает данное сообщение
Для команды добавления:
server = добавление записи в таблицу серверной трансляции
entity = добавление записи в таблицу объектов, для которых
трансляция производиться не будет
Real IP = преобразуемый реальный адрес
Virtual IP = IP адрес, в который будет преобразован реальный адрес
name = имя объекта, добавляемого в таблицу объектов, для которых
трансляция производиться не будет
Для команды удаления:
server = удаление записи из таблицы серверной трансляции
entity = удаление записи из таблицы объектов, для которых
трансляция производиться не будет
position = позиция элемента, удаляемого из таблицы
(Слово ALL можно использовать для удаления всех элементов таблицы)
name = имя объекта, удаляемого из таблицы объектов, для которых
трансляция производиться не будет
Для полей max_con_tcp и max_con_udp :
number = максимальное число одновременных соединений (от 0 до 55000)
Для полей private_net, netmask и virtual_ip:
address = адрес
Пример 1: (Просмотр конфигурации)
#fwconver show
Global Translation parameters:
------------------------------
Network address translation : activated
Maximum number of TCP connections: 300
Maximum number of UDP connections: 300
Private network address : 10.0.0.0
Private network mask : 255.0.0.0
Virtual IP address : 200.239.39.11
Servers translation table:
--------------------------
01 - 10.4.1.3 200.239.39.3
02 - 10.4.1.7 200.239.39.7
Entities to which the translation will not be performed:
--------------------------------------------------------
Internal_network_1 (Network)
Пример 2: (деактивизация трансляции адресов и просмотр конфигурации)
#fwconver deactivate
#fwconver show
Global Translation parameters:
------------------------------
Network address translation : deactivated
Maximum number of TCP connections: 300
Maximum number of UDP connections: 300
Private network address : 10.0.0.0
Private network mask : 255.0.0.0
Virtual IP address : 200.239.39.11
Servers translation table:
--------------------------
01 - 10.4.1.3 200.239.39.3
02 - 10.4.1.7 200.239.39.7
Entities to which the translation will not be performed:
--------------------------------------------------------
Internal_network_1 (Network)
Пример 3: (Удаление первого элемента таблицы серверной трансляции
и просмотр конфигурации)
#fwconver remove 1
#fwconver show
Global Translation parameters:
------------------------------
Network address translation : deactivated
Maximum number of TCP connections: 300
Maximum number of UDP connections: 300
Private network address : 10.0.0.0
Private network mask : 255.0.0.0
Virtual IP address : 200.239.39.11
Servers translation table:
--------------------------
01 - 10.4.1.7 200.239.39.7
Entities to which the translation will not be performed:
--------------------------------------------------------
Internal_network_1 (Network)
Прнимер 4: (Добавление элемента в таблицу серверной трансляции и
просмотр конфигурации)
#fwconver add 10.4.1.9 200.239.39.39
#fwconver show
Global Translation parameters:
------------------------------
Network address translation : deactivated
Maximum number of TCP connections: 300
Maximum number of UDP connections: 300
Private network address : 10.0.0.0
Private network mask : 255.0.0.0
Virtual IP address : 200.239.39.11
Servers translation table:
--------------------------
01 - 10.4.1.7 200.239.39.7
02 - 10.4.1.9 200.239.39.39
Entities to which the translation will not be performed:
--------------------------------------------------------
Internal_network_1 (Network)
Пример 5: (добавление объекта в таблицу исключений и просмотр конфигурации)
#fwconver add entity Server_01
Entity added to the table of entities to which the network address translation
will not be performed
#fwconver show
Global Translation parameters:
------------------------------
Network address translation : deactivated
Maximum number of TCP connections: 300
Maximum number of UDP connections: 300
Private network address : 10.0.0.0
Private network mask : 255.0.0.0
Virtual IP address : 200.239.39.11
Servers translation table:
--------------------------
01 - 10.4.1.7 200.239.39.7
02 - 10.4.1.9 200.239.39.39
Entities to which the translation will not be performed:
--------------------------------------------------------
Internal_network_1 (Network)
Server_01 (Host)