NAT

реклама
Уфимский Государственный Авиационный Технический Университет
Кафедра ВМиК
Отчет по Курсовой работе
«Исталяция, настройка и сопровождение Firewall-a + NAT на
базе ОС FreeBSD»
по дисциплине
"Администрирование Информационных Систем"
Выполнили: ст. группы МО-511
Катаманов А.С.
Чванов А.С.
Проверил: профессор кафедры ВМиК
Верхотуров М.А.
Уфа 2007
1.
СОДЕРЖАТЕЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ
3
2.
ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ
3
3.
ОБЗОР И АНАЛИЗ МЕТОДОВ РЕШЕНИЯ
4
1)
Обзор ОС семейства Linux/FreeBSD
4
2)
История развития ОС
4
3)
Предназначение FireWall
5
4)
Предназначение Маршрутизации (NAT)
6
a.
Маршрутизация
6
b.
Механизм работы NAT
7
c.
История появления NAT
7
4.
ОПИСАНИЕ РЕАЛИЗАЦИИ ПРИМЕНЯЕМЫХ МЕТОДОВ
9
1)
Установка ОС
9
2)
Установка FireWall
10
3)
Установка NAT
10
4)
Конфигурирование FireWall
10
5)
Конфигурирование NAT
10
5.
ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ ИНФОРМАЦИИ
10
2
192.168.0.1
192.168.0.0/24
193.233.146.0/28
193.233.146.242
Internet
192.168.1.0/24
192.168.1.1
192.168.1.3
10.0.0.2
10.0.0.1
10.0.0.0/24
Client
FreeBSD:
NAT+ipfw
Home OS
10.0.0.3
11
NAT
ERROR! BOOKMARK NOT DEFINED.
Материал из Википедии — свободной энциклопедии
Error! Bookmark not defined.
Содержание
Error! Bookmark not defined.
[править] Недостатки
Error! Bookmark not defined.
Преимущества
Error! Bookmark not defined.
История NAT
Error! Bookmark not defined.
NAT "глазами" интернет-программ
Error! Bookmark not defined.
Даемон преобразования сетевых адресов (natd)
19.13.1 Обзор
19.13.2 Настройка
19.13.3 Настройка
19.13.4 Перенаправление портов
19.13.5 Перенаправление адреса
12
12
12
13
14
15
1.Содержательная постановка задачи
Установить и настроить FireWall+NAT на базе ОС FreeBSD.
2.Формальная постановка задачи
Произвести установку ОС FreeBSD и сконфигурировать её для выполнения функций
маршрутизации и фильтрации трафика.
3
3.Обзор и анализ методов решения
1)
Обзор ОС семейства Linux/FreeBSD
На сегодняшний момент существует огромное количество Linux систем. Их огромное
разнообразие обусловлено ее открытостью (open source). Каждый создавал "свой
собственный" Linux для своих нужд. Имея возможность брать коды из более успешных
реализаций разработчики дистрибутивов перемешали Linux настолько, что сегодня уже
нельзя сказать что они все кардинально различимы.
FreeBSD разрабатывается как целостная операционная система. Исходный код ядра,
драйверов устройств и базовых пользовательских программ (т.н. userland), таких как
командные оболочки и т. п., содержится в одном дереве системы управления версиями
(CVS). Это отличает FreeBSD от GNU/Linux — ещё одной свободной реализации UNIXподобной системы - в которой ядро разрабатывается одной группой разработчиков, а
набор пользовательских программ — другими (например, проект GNU), а
многочисленные группы собирают это все в единое целое и выпускают в виде различных
дистрибутивов GNU/Linux.
FreeBSD хорошо зарекомендовала себя как система для построения интернет- и
интранет-серверов. Она предоставляет достаточно надёжные сетевые службы и
эффективное управление памятью. FreeBSD широко представлена в списке веб-серверов с
наибольшим временем непрерывной работы (согласно исследованию компании Netcraft).
2)
История развития ОС
Первоначально UNIX была разработана в конце 1960-х годов сотрудниками Bell Labs,
в первую очередь Кеном Томпсоном, Денисом Ритчи и Дугласом МакИлроем.
С 1978 года начинает свою историю BSD UNIX, созданный в университете Беркли.
Важной причиной раскола UNIX стала реализация в 1980 г. стека протоколов TCP/IP.
До этого межмашинное взаимодействие в UNIX пребывало в зачаточном состоянии —
наиболее существенным способом связи был UUCP (средство копирования файлов из
одной UNIX-системы в другую, изначально работавшее по телефонным сетям с помощью
модемов).
В 1983 году Ричард Столлмэн объявил о создании проекта GNU — попытки создания
свободной UNIX-подобной операционной системы с нуля, без использования
оригинального исходного кода. Большая часть программного обеспечения,
разработанного в рамках данного проекта, — такого, как GNU toolchain, Glibc
(стандартная библиотека языка Си) и Coreutils — играет ключевую роль в других
свободных операционных системах. Однако работы по созданию замены для ядра UNIX,
необходимые для полного выполнения задач GNU, продвигались крайне медленно.
В 1991 году, когда Линус Товальдс опубликовал ядро Linux и привлёк помощников,
использование инструментов, разработанных в рамках проекта GNU, было очевидным
выбором. Операционная система GNU и ядро Linux вместе составляют ОС, известную,
как GNU/Linux. Дистрибутивы этой системы (такие как Red Hat и Debian), включающие
ядро, утилиты GNU и дополнительное программное обеспечение стали популярными как
среди любителей, так и среди представителей бизнеса.
В результате урегулирования юридического дела, возбуждённого UNIX Systems
Laboratories против университета Беркли и Berkeley Software Design Inc., было
установлено, что университет может распространять BSD UNIX, в том числе и бесплатно.
После этого были возобновлены эксперименты, связанные с BSD-версией UNIX. Вскоре
4
разработка дистрибутива BSD была продолжена в нескольких направлениях
одновременно, что привело к появлению проектов, известных как FreeBSD, NetBSD,
OpenBSD, TrustedBSD и DragonFlyBSD.
В настоящий момент GNU/Linux и представители семейства BSD быстро отвоёвывают
рынок у коммерческих UNIX-систем и одновременно проникают как на настольные
компьютеры конечных пользователей, так и на мобильные и встраиваемые системы.
Одним из свидетельств данного успеха служит тот факт, что, когда фирма Apple искала
основу для своей новой операционной системы, она выбрала NEXTSTEP —
операционную систему со свободно распространяемым ядром, разработанную фирмой
NeXT и переименованную в Darwin после приобретения фирмой Apple. Данная система
относится к семейству BSD и основана на ядре Mach. Применение Darwin BSD UNIX в
Mac OS X делает его одной из наиболее широко используемых версий UNIX.
После разделения компании AT&T, товарный знак UNIX и права на оригинальный
исходный код неоднократно меняли владельцев, в частности, длительное время
принадлежали компании Novell.
В 1993 году Novell передала права на товарный знак и на сертификацию программного
обеспечения на соответствие этому знаку консорциуму X/Open, который затем
объединился с Open Software Foundation, образовав консорциум The Open Group. Он
объединяет ведущие компьютерные корпорации и государственные организации, в том
числе IBM, Hewlett-Packard, Sun, NASA и многие другие. Консорциум занимается
разработкой открытых стандартов в области операционных систем, самым важным из
которых является Single UNIX Specification, ранее известный как POSIX. С точки зрения
The Open Group, название UNIX могут носить только системы, прошедшие сертификацию
на соответствие Single UNIX Specification.
3)
Предназначение FireWall
Брандма́уэр (нем. brandmauer) — заимствованный из немецкого языка термин,
являющийся аналогом английского firewall в его оригинальном значении (стена, которая
разделяет смежные здания, предохраняя от распространения пожара). Интересно, что в
области компьютерных технологий в немецком языке употребляется слово «firewall».
Файрво́л, файерво́л — образованo транслитерацией английского термина firewall,
эквивалентного термину межсетевой экран, в настоящее время не является официальным
заимствованным словом в русском языке.
Разновидности сетевых экранов:
Сетевые экраны подразделяются на различные типы в зависимости от следующих
характеристик:
•
обеспечивает ли экран соединение между одним узлом и сетью или между
двумя или более различными сетями;
•
происходит ли контроль потока данных на сетевом уровне или более
высоких уровнях модели OSI;
•
отслеживаются ли состояния активных соединений или нет.
В зависимости от охвата контролируемых потоков данных сетевые экраны делятся на:
•
традиционный сетевой (или межсетевой) экран — программа (или
неотъемлемая часть операционной системы) на шлюзе (сервере передающем
трафик между сетями) или аппаратное решение, контроллируюшие входящие и
исходящие потоки данных между подключенными сетями.
•
персональный сетевой экран — программа, установленная на
пользовательском компьютере и предназначенная для защиты от
несанкционированного доступа только этого компьютера.
5
Вырожденный случай — использование традиционного сетевого экрана сервером, для
ограничения доступа к собственным ресурсам.
В зависимости от уровня, на котором происходит контроль доступа, существует
разделение на сетевые экраны, работающие на:
•
сетевом уровне, когда фильтрация происходит на основе адресов
отправителя и получателя пакетов, номеров портов транспортного уровня модели
OSI и статических правил, заданных администратором;
•
сеансовом уровне (также известные как stateful) — отслеживающие сеансы
между приложениями, не пропускающие пакеты нарушающих спецификации
TCP/IP, часто используемых в злонамеренных операциях — сканировании
ресурсов, взломах через неправильные реализации TCP/IP, обрыв/замедление
соединений, инъекция данных.
•
уровне приложений, фильтрация на основании анализа данных приложения,
передаваемых внутри пакета. Такие типы экранов позволяют блокировать передачу
нежелательной и потенциально опасной информации, на основании политик и
настроек.
4)
Предназначение Маршрутизации (NAT)
a. Маршрутизация
Маршрутизация (англ. Routing) — процесс определения маршрута следования
информации в сетях связи. В русском языке часто используется слово "роутинг". Надо
заметить, что правильное произношение этого слова - "рутинг".
Маршруты могут задаваться административно (статические маршруты), либо
вычисляться с помощью алгоритмов маршрутизации, базируясь на информации о
топологии и состоянии сети, полученой с помощью протоколов маршрутизации
(динамические маршруты).
Обычно маршрутизатор использует адрес получателя, указанный в пакетах данных
и определяет по таблице маршрутизации путь, по которому следует передать данные.
Если в таблице маршрутизации для адреса нет описанного маршрута, пакет отбрасывается
либо пересылается на маршрутизатор используемый по умолчанию.
Существуют и другие способы определения маршрута пересылки пакетов, когда,
например, используется адрес отправителя, используемые протоколы верхних уровней и
другая информация, содержащаяся в заголовках пакетов сетевого уровня. Нередко
маршрутизаторы могут осуществлять трансляцию адресов отправителя и получателя,
фильтрацию транзитного потока данных на основе определённых правил с целью
ограничения доступа, шифрование/дешифрование передаваемых данных и т. д.
Таблица маршрутизации содержит информацию, на основе которой маршрутизатор
принимает решение о дальнейшей пересылке пакетов. Таблица состоит из некоторого
числа записей — маршрутов, в каждой из которых содержится адрес сети получателя,
адрес следующего узла, которому следует передавать пакеты и некоторый вес записи —
метрика. Метрики записей в таблице играют роль в вычислении кратчайших маршрутов к
различным получателям. В зависимости от модели маршрутизатора и используемых
6
протоколов маршрутизации, в таблице может содержаться некоторая дополнительная
служебная информация.
b. Механизм работы NAT
NAT (от англ. Network Address Translation — «преобразование сетевых адресов»)
— это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных
пакетов. Механизм NAT определён в RFC 1631, RFC 3022.
Преобразование адресов методом NAT может производиться почти любым
маршрутизирующим устройством — маршрутизатором, сервером доступа, межсетевым
экраном. Суть механизма состоит в замене обратного (source) адреса при прохождении
пакета в одну сторону и обратной замене адреса назначения (destination) в ответном
пакете. Наряду с адресами source/destination могут также заменяться номера портов
source/destination. Помимо source NAT (предоставления пользователям локальной сети с
внутренними адресами доступа к Интернету) часто применяется также destination NAT,
когда, например, обращения извне сетевым экраном транслируются на сервер в локальной
сети, имеющий внутренний адрес и потому недоступный извне сети непосредственно (без
NAT).
Существует 3 базовых концепции трансляции адресов: статическая (Static Network Address
Translation), динамическая (Dynamic Address Translation), маскарадная (NAPT, PAT).
К недостаткам следует отнести:
 Не все протоколы могут «преодолеть» NAT. Некоторые не в состоянии работать,
если на пути между взаимодействующими хостами есть трансляция адресов.
Некоторые межсетевые экраны, осуществляющие трансляцию IP-адресов, могут
исправить этот недостаток, соответствующим образом заменяя IP-адреса не только
в заголовках IP, но и на более высоких уровнях (например, в командах протоколов
FTP или H.323).
 Из-за трансляции адресов «много в один» появляются дополнительные сложности
с идентификацией пользователей. Необходимо хранить полные логи трансляций
Но, NAT выполняет две важных функции:
 Позволяет сэкономить IP-адреса, транслировав несколько внутренних IP-адресов в
один внешний публичный IP-адрес (или в несколько, но меньше, чем внутренних).
 Позволяет предотвратить или ограничить обращение снаружи ко внутренним
хостам, оставляя возможность обращения изнутри наружу.
c. История появления NAT
Как известно, нехватка IP-адресов в 4-байтовом адресном пространстве
прогнозировалась еще в начале 90х годов (плюс нехватка денег на аренду адресных
блоков в некоторых компаниях :). Поэтому уже в марте 1994 г договорились об адресном
«сегментировании» общего пространства – выделении для локальных сетей отдельных
диапазонов IP-адресов и исключение этих IP-адресов из использования в интернете (
http://www.ietf.org/rfc/rfc1597.txt March 1994 Address Allocation for Private Internets; цитата
о назначении этого документа «Авторы надеются, что использование этих методов
приведет к значительной экономии при выделении IP адресов»).
7
Это решение позволило выделять компаниям небольшие блоки IP-адресов – для их
интернет-серверов, а внутри ЛС IP-адреса для собственных нужд выделялись самими
компаниями из диапазонов для локальных сетей. В результате интернет-серверы
компаний (почтовые и www/ftp) были легко доступны как из интернета, так и из ЛС, и
внутри ЛС компьютеры без проблем связывались по таким же IP-протоколам.
Но это решение воздвигло барьер между локальными сетями и интернетом: т.к.
один и тот же IP-адрес мог использоваться в разных ЛС, и т.к. по этой причине в
интернете перестали маршрутизировать пакеты на адресные блоки, выделенные для ЛС.
Т.е. фактически «физический барьер» (без перерубаний проводов, чем развлекались в
российских банках после первых взломов, и без установки FireWall, чем увлекаются
сейчас). Сети стали изолированными, как изолированы задачи в современных
операционных системах – у каждой своё адресное пространство.
Этот барьер не представлял проблемы для почты, т.к. почтовые серверы
предприятий ставились на границе сетей и были видимы и из интернета, и из ЛС. А вот с
доступом из ЛС к внешним ресурсам – к ftp и еще только набирающим в те годы
популярность http-серверам начались проблемы. Если раньше с любого компьютера
можно было напрямую взаимодействовать с сервером, то теперь эта возможность осталась
у компьютеров только с реальными интернет-адресами, т.к. в какую ЛС слать ответ на IPпакет, у которого в обратном адресе стоит локальный IP – роутер определить не сможет.
Простейшее решение этой задачи – подмена обратного адреса на границе сетей –
лежало на поверхности и не замедлило опубликоваться: в мае 1994 г., т.е. через два месяца
после «раздела сетей» предложили спецификацию NAT: http://www.ietf.org/rfc/rfc1631.txt
The IP Network Address Translator (NAT) May 1994 Авторы анонсировали это как “shortterm solution”, т.е. временное решение указанной проблемы, эдакий «хак», пока не получат
распространение нормальные решения. Но, как известно, ничего не бывает столь
постояным, как временное.
IPv6 вопреки ожиданиям быстро не прижился, и все прошедшие 10 лет мы были
свидетелями все новых и новых боев на границах ЛС и интернета. NAT получил
распространение, т.к. никакого другого приемлемого решения этой проблемы в те годы не
было: FTP-клиенты и HTTP-клиенты (браузеры) не успели адаптироваться под под
измененную картину мира, не могли работать из ЛС с внешними ресурсами, поэтому
чтобы сделать для них границу прозрачной, их просто программно «обманывали» с
помощью NAT – все IP-пакеты, адресованные из ЛС наружу, подвергались простейшей
обработке на границе: замене обратного IP-адреса на реальный адрес «пограничного»
компьютера, и обратной замене во входящих пакетах. Кроме того обычно заменялся и
номер порта ЛС-источника, т.к. с разных машин в ЛС пакеты могут исходить с одними и
теми же номерами портов. Т.е. транслируются не только IP-адреса, но и номера портов
(иногда порт-трансляторы называют отдельной аббревиатурой PAT).
В условной классификации NAT подразделяют на «статические, динамические и
маскарадинг (masquerading)", но на практике применяется в основном третий тип, он
позволяет через один реальный IP адрес обслуживать тысячи соединений из ЛС (в
идеале), трансляция портов при этом используется всегда. На NAT-компьютере или
роутере+NAT выделяется диапазон портов, используемых для трансляции, например с
номерами больше 60000 (чтобы быстрее отличать эти порты от выделенных под
собственные нужды этого компьютера) и динамическая таблица текущих
сессий/отображений адресов. Каждый проходящий пакет сверяется с этой таблицей по IP
и порту и производятся соответствующие подстановки.
Технология настолько проста, что сейчас уже все реже можно встретить роутер или
кабельный модем без встроенного NAT (и FireWall, столь же примитивного как NAT),
причем NAT уже можно обнаружить даже в hub'ах c ценами от $40. Не говоря уж о
«бесплатном» NAT, входящем в состав нескольких последних версий Windows под
именем «connection sharing» и «совместное использование соединения». Именно
8
доступность, простота понимания/использования и нетребовательность к клиентскому
софту, сделали NAT заслуженно популярным.
Но, конечно, как бывает и с любым другим программным трюком, в NAT сразу же
стали вылезать разнообразные неприятные побочные эффекты. На момент появления NAT
одним из самых популярных протоколов был
FTP, и именно этот протокол стал для NAT первым неперевариваемым протоколом. Это
выявило проблему, которая так и не была хоть сколько нибудь успешно решена в NAT за
эти 10 лет. И в общем случае она не может быть решена в рамках NAT, могут быть только
подгонки под конкретные протоколы, но эти подгонки нельзя считать надежным
решением. Проблема эта состоит в том, что в некоторых протоколах, среди которых
старейшим является FTP, передается IP-адрес клиентской машины, и этот IP-адрес
используется сервером для передачи данных клиенту. Поскольку в случае с NAT
клиентская программа, работающая из ЛС «обманута» NAT'ом, она может передать
серверу только свой собственный локальный IP-адрес, соединиться с которым внешний
сервер не сможет из-за невидимости локальных сетей из интернета. Другими примерами
могут служить протоколы ICQ, MS NetMeeting, RealAudio и многие другие протоколы,
разработчики которых видимо сидели в сетях без NAT.
NAT может предложить только одно решение такой проблемы – основываясь на
номерах портов угадать конкретный транслируемый протокол и начать следить за
содержимым IP-пакетов. Когда в них встречается FTP-команда PORT, в которой
указывается IP:порт локального клиента (текстовая команда в теле пакета, а не в заголовке
IP-пакета), то заменять не только заголовки, но весь пакет, с пересчетом контрольной
суммы и организацией прослушки еще одного входящего порта. К сожалению для NAT,
TCP-протокол, в котором передаются команды FTP-протокола, является поточным
протоколом, организованным над IP – команда PORT при попадании на IP-уровень может
оказаться разбитой на 2 пакета (а то и более, в зависимости от FTP-клиента и буферизации
в ОС). Поэтому для надежного обнаружения места подмены NAT'у придется
реконструировать исходный TCP-поток, буферизировать и пересобирать пакеты. На
практике это приводит к тому, что стандартный режим FTP с использованием команды
PORT через NAT как правило НЕ работает.
Поэтому «проблему NAT» в FTP-протоколе приходится обходить особым образом в
FTP-клиентах или в еще одном промежуточном специализированном FTP-прокси. В FTPклиенте для этого нужно переключиться в т.н. «пассивный режим» – использовать вместо
команды PORT команду PASV. PASV просит FTP-сервер открыть дополнительный порт у
себя и сообщить клиенту его IP:порт. Клиент после этого соединяется с указанным IP
(NAT его еще раз обманывает-транслирует) и сессия удается.
Кроме необходимости поддержки PASV-режима в FTP-клиенте, при этом требуются и
некоторые усилия со стороны администратора FTP-сервера – особенно если он тоже
частично загорожен Firewall'ами и NAT'ами. В общем, здесь NAT не помогает
соединяться, а мешает.
4.Описание реализации применяемых
методов
1)
Установка ОС
Как ставили то?
9
2)
Установка FireWall
А с фаерволом что?
3)
Установка NAT
А как нат прикрутили?
4)
Конфигурирование FireWall
Настройте ФаерВол плиз?
5)
Конфигурирование NAT
А у меня нат не работает
5. Использованные источники
информации
1. ru.wikipedia.org
2. bsdportal.ru
3. www.freebsd.org.ru
4. FreeBSD: полный справочник. Родерик Смит.
5. FreeBSD: Установка, настройка, использование. Алексей Федорчук, Алексей
Торн.
6. www.eserv.ru/NAT/
7. opennet.ru
10
192.168.0.0/24
193.233.146.0/28
192.168.0.1
193.233.146.242
Internet
192.168.1.0/24
192.168.1.1
192.168.1.3
10.0.0.2
Client
10.0.0.1
10.0.0.0/24
FreeBSD:
NAT+ipfw
Home OS
10.0.0.3
11
Даемон преобразования сетевых адресов
(natd)
Текст предоставилChern Lee.
19.13.1 Обзор
Даемон преобразования сетевых адресов (Network Address Translation) во FreeBSD,
широко известный как natd(8), является даемоном, который принимает входящие IPпакеты, изменяет адрес отправителя на адрес локальной машины и повторно отправляет
эти пакеты в потоке исходящих пакетов. natd(8) делает это, меняя IP-адрес отправителя и
порт таким образом, что когда данные принимаются обратно, он может определить
расположение источника начальных данных и переслать их машине, которая запрашивала
данные изначально.
Чаще всего NAT используется для организации так называемого Совместного
Использования Интернет.
19.13.2 Настройка
Из-за исчерпания пространства адресов в IPv4 и увеличения количества пользователей
высокоскоростных каналов связи, таких, как кабельное подключение или DSL,
необходимость в решении по Совместному Использованию Интернет растёт.
Возможность подключить несколько компьютеров через единственное соединение и IPадрес делает natd(8) подходящим решением.
Чаще всего у пользователя имеется машина, подключенная к кабельному каналу или
каналу DSL с одним IP-адресом и есть желание использовать этот единственный
подключенный компьютер для организации доступа в Интернет другим компьютерам в
локальной сети.
Для этого машина FreeBSD, находящаяся в Интернет, должна выступать в роли шлюза.
Эта шлюзовая машина должна иметь два сетевых адаптера--один для подключения к
маршрутизатору Интернет, а другой для подключения к ЛВС. Все машины в локальной
сети подключаются через сетевой концентратор или коммутатор.
12
Подобная конфигурация часто используется для совместного использования доступа в
Интернет. Одна из подключенных к локальной сети машин подключается к Интернет.
Остальные машины работают с Интернет посредством этой ``шлюзовой'' машины.
19.13.3 Настройка
В файле конфигурации ядра должны присутствовать следующие параметры:
options IPFIREWALL
options IPDIVERT
Дополнительно, если это нужно, можно добавить следующее:
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSE
В файле /etc/rc.conf должны быть такие строки:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags=""
Указывает машине выступать в качестве шлюза. Выполнение
gateway_enable="YES" команды sysctl net.inet.ip.forwarding=1 приведёт к тому же
самому результату.
При загрузке включает использование правил межсетевого экрана
firewall_enable="YES"
из файла /etc/rc.firewall.
Здесь задается предопределенный набор правил межсетевого
firewall_type="OPEN" экрана, который разрешает все. Посмотрите файл
/etc/rc.firewall для нахождения дополнительных типов.
Указывает, через какой интерфейс передавать пакеты (интерфейс,
natd_interface="fxp0"
подключенный к Интернет).
Любые дополнительный параметры, передаваемые при запуске
natd_flags=""
даемону natd(8).
При использовании вышеуказанных параметров в файле /etc/rc.conf при загрузке будет
запущена команда natd -interface fxp0. Эту команду можно запустить и вручную.
13
Note: Если для передачи natd(8) набирается слишком много параметров, возможно также
использовать конфигурационный файл. В этом случае имя настроечного файла должно
быть задано добавлением следующей строки в /etc/rc.conf:
natd_flags="-f /etc/natd.conf"
Файл /etc/natd.conf будет содержать перечень конфигурационных параметров, по
одному в строке. К примеру, для примера из следующего раздела будет использоваться
такой файл:
redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80
Для получения более полной информации о конфигурационном файле прочтите страницу
справки по natd(8) относительно параметра -f.
Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из адресного
пространства частных сетей, как это определено в RFC 1918, а в качестве маршрутизатора
по умолчанию должен быть задан IP-адрес машины с natd из внутренней сети.
Например, клиенты A и B в ЛВС имеют IP-адреса 192.168.0.2 и 192.168.0.3, а
интерфейс машины с natd в локальной сети имеет IP-адрес 192.168.0.1.
Маршрутизатором по умолчанию для клиентов A и B должна быть назначена машина с
natd, то есть 192.168.0.1. Внешний, или Интернет-интерфейс машины с natd не требует
особых настроек для работы natd(8).
19.13.4 Перенаправление портов
Минусом использования natd(8) является то, что машины в локальной сети недоступны из
Интернет. Клиенты в ЛВС могут выполнять исходящие соединения во внешний мир, но
не могут обслуживать входящие. Это является проблемой при запуске служб Интернет на
клиентских машинах в локальной сети. Простым решением является перенаправление
некоторых портов Интернет машины с natd на клиента локальной сети.
Пусть, к примеру, сервер IRC запущен на клиенте A, а веб-сервер работает на клиенте B.
Чтобы это работало, соединения, принимаемые на портах 6667 (IRC) и 80 (веб), должны
перенаправляться на соответствующие машины.
Программе natd(8) должна быть передана команда -redirect_port с соответствующими
параметрами. Синтаксис следующий:
-redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]
В примере выше аргументы должен быть такими:
-redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80
При этом будут перенаправлены соответствующие порты tcp на клиентские машины в
локальной сети.
Аргумент -redirect_port может использоваться для указания диапазонов портов, а не
конкретного порта. Например, tcp 192.168.0.2:2000-3000 2000-3000 будет перенаправлять
14
все соединения, принимаемые на портах от 2000 до 3000, на порты от 2000 до 3000
клиента A.
Эти параметры можно указать при непосредственном запуске natd(8), поместить их в
параметр natd_flags="" файла /etc/rc.conf, либо передать через конфигурационный
файл.
Для получение информации о других параметрах настройки обратитесь к справочной
странице по natd(8)
19.13.5 Перенаправление адреса
Перенаправление адреса полезно, если имеется несколько адресов IP, и они должны быть
на одной машине. В этой ситуации natd(8) может назначить каждому клиенту ЛВС свой
собственный внешний IP-адрес. Затем natd(8) преобразует исходящие от клиентов
локальной сети пакеты, заменяя IP-адреса на соответствующие внешние, и
перенаправляет весь трафик, входящий на некоторый IP-адрес, обратно конкретному
клиенту локальной сети. Это также называют статическим NAT. К примеру, пусть IPадреса 128.1.1.1, 128.1.1.2 и 128.1.1.3 принадлежат шлюзовой машине natd.
128.1.1.1 может использоваться в качестве внешнего IP-адреса шлюзовой машины natd,
тогда как 128.1.1.2 и 128.1.1.3 будут перенаправляться обратно к клиентам ЛВС A и B.
Синтаксис для -redirect_address таков:
-redirect_address localIP publicIP
localIP Внутренний IP-адрес клиента локальной сети.
publicIP Внешний IP, соответствующий клиенту локальной сети.
В примере этот аргумент будет выглядеть так:
-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3
Как и для -redirect_port, эти аргументы также помещаются в строку natd_flags="" файла
/etc/rc.conf или передаются через конфигурационный файл. При перенаправлении
адресов нет нужды в перенаправлении портов, потому что перенаправляются все данные,
принимаемые для конкретного IP-адреса.
Внешние IP-адреса машины с natd должны быть активизированы и являться алиасами для
внешнего интерфейса. Обратитесь к rc.conf(5), чтобы это сделать
15
Скачать