voliuf.narod.ru

главная

друзья

помощь сайту

Администрирование почтовых серверов sendmail  

Бесплатные учебники по темам

Партнерская программа

1.Принципы организации систем электронной почты

2.Использование ОС Linux в качестве сервера электронной почты

3.Установка телекоммуникационного оборудования в ОС Linux

4.DNS и доменные имена

5.Протокол SMTP

6.Протокол POP3

7.Протокол IMAP

8.Протокол РРР

9.Протокол UUCP

10.Программа sendmail

11.Установка и конфигурирование sendmail

12.Установка и конфигурирование POP3 и IMAP

13.Подключение почтового сервера к провайдеру Internet

14.Администрирование почтового сервера

15.Конфигурирование клиентов ЛВС

16.Поддержка удаленных клиентов

17.Почтовые псевдонимы и преобразование адресов

18.Списки рассылки

19.Маршрутизация IP в ОС Linux

 

Администрирование почтовых серверов sendmail 
19.Маршрутизация IP в ОС Linux
  

В этой книге делается попытка помочь администраторам сетей и почтовых систем установить и настроить полнофункциональный сервер электронной почты под управлением ОС Linux для работы в сети Internet. Возможно, эта лекция вызовет у некоторых из вас недоумение: зачем говорить об IP-маршрутизации, когда книга посвящена работе почтового сервера? Выбирая платформу для почтового сервера, необходимо руководствоваться несколькими критериями. Для обеспечения работы сервера электронной почты в настоящее время существует огромное количество программного обеспечения и операционных систем (хотя ни одна из них не сможет сравнится с ОС Linux). Чаще всего при создании локальной вычислительной сети возникает необходимость подключения ее к сети Internet. В некоторых ОС (таких, например, как Windows NT 4.0) уже заложены функции для подключения локальной сети к Internet. Другие ОС (например, Windows 95) требуют дополнительного программного обеспечения для поддержки этих функций.

 

Если вы остановили свой выбор на ОС Linux в качестве платформы для почтового сервера, то у вас появится вполне закономерное желание использовать его и как маршрутизатор при подключении рабочих станций к сети Internet. Это действительно возможно. В этой лекции описывается, каким образом сервер на базе ОС Linux доставляет электронную почту и обеспечивает доступ к сети Internet для рабочих станции локальной сети, выступая в качестве маршрутизатора.

 

Способы подключения к сети в ОС Linux

Подключение отдельных рабочих станций к сети Internet с помощью сервера под управлением ОС Linux вы можете осуществить двумя способами:

 
  • получить диапазон реальных IP-адресов и использовать в качестве маршрутизатора сервер на базе ОС Linux;
  • воспользоваться диапазоном общедоступных IP-адресов и использовать сервер на базе ОС Linux для преобразования IP-адресов (маскарадинга).
 

В первом случае необходимо, чтобы каждому устройству в сети (каждой рабочей станции) был присвоен реальный IP-адрес, при этом должна быть правильно настроена маршрутизация вашей сети в сеть Internet. Тогда сервер под управлением ОС Linux выступает в роли обычного маршрутизатора IP-пакетов из локальной сети через узел провайдера в сеть Internet.

 

Получить блок IP-адресов можно двумя путями: обратившись в сетевой информационный центр Network Information Center (NIC) или арендуя их у провайдера сети Internet. Во втором случае провайдер выделяет блок IP-адресов из своего адресного пространства, которое он, в свою очередь, получает в NIC. Регистрация блока IP-адресов в сетевом информационном центре довольно дорогостоящее мероприятие. В последнее время стали появляться слухи о том, что в сетевом информационном центре практически не осталось свободных блоков IP-адресов, так как некоторые организации зарегистрировали большие блоки IP-адресов и не используют их. Как правило, провайдеры сети Internet предоставляют своим клиентам блок IP-адресов из собственного диапазона. К сожалению, если в вашей сети предполагается использование более 5–6 рабочих станций, то такая схема выделения IP-адресов вам не подойдет, так как провайдеры обычно не выдают крупные блоки IP-адресов.

 

Чаще всего на практике встречается второй способ подключения клиентов к сети. В локальной сети назначаются IP-адреса из общедоступного диапазона — 192.168.0.0. Все рабочие станции в сети устанавливают сетевые соединения с сервером на базе ОС Linux, используя адреса именно из этого диапазона. Однако устройства, которые имеют общедоступный IP-адрес, не могут работать напрямую в сети Internet. Диапазоны адресов корпоративной сети были специально разработаны для использования во внутренних сетях, не имеющих соединения с сетью Internet.

 

Однако на базе сервера под управлением ОС Linux можно выполнять преобразование или подстановку IP-адресов (маскарадинг). Это делается следующим образом. При подключении сервера на базе ОС Linux к провайдеру Internet ему статически или динамически назначается реальный IP-адрес. Главная уловка заключается в том, что IP-адрес любой рабочей станции в сети можно преобразовать с помощью механизма маскарадинга в реальный IP-адрес, полученный сервером на базе ОС Linux при необходимости послать пакет в сеть Internet. Хост в сети Internet, принявший пакет, посылает ответный пакет на адрес сервера под управлением ОС Linux. Далее Linux-сервер должен произвести обратное преобразование IP-адреса и доставить пакет на соответствующую рабочую станцию в локальной сети.

 

На базе почтового сервера под управлением ОС Linux можно реализовать оба способа подключения клиентов к сети. В последующих разделах дается описание этих способов.

 

Локальная сеть с блоком реальных IP-адресов

Если для вашей локальной сети получен блок реальных IP-адресов, то, естественно, преобразование адресов не потребуется. В этом случае сервер под управлением ОС Linux выполняет функцию маршрутизации пакетов между локальной сетью и Internet. На рис.19.1 представлен пример подключения рабочей станции к сети Internet с использованием в качестве маршрутизатора сервера под управлением ОС Linux.

 

 

Подключение к сети Internet рабочих станций с реальными IP-адресами

Рис. 19.1.  Подключение к сети Internet рабочих станций с реальными IP-адресами

 

 

При такой схеме подключения любой хост в сети Internet может посылать IP-пакеты прямо на рабочую станцию в локальной сети, так как сеть, в которой она находится, имеет реальный адрес в Internet. Для того чтобы сервер под управлением ОС Linux мог работать в режиме маршрутизатора IP-пакетов, этот режим должен быть разрешен на уровне ядра операционной системы. На рис.19.1 клиент локальной сети с IP-адресом 5.6.8.2 устанавливает соединение с удаленным хостом 1.2.3.4. Когда в качестве маршрутизатора выступает локальный почтовый сервер, то этот процесс выглядит так.

 
  • Клиент посылает пакет на удаленный хост с адресом 1.2.3.4.
  • Локальный почтовый сервер пересылает этот пакет на сервер провайдера, указывая в качестве отправителя пакеты рабочую станцию с адресом 5.6.8.2.
  • Сервер провайдера указывает маршрут для пакета на хост с адресом 1.2.3.4 и возвращает ответ на адрес 5.6.8.2.
  • Удаленный хост принимает пакет и посылает ответ на адрес 5.6.8.2.
  • Сервер провайдера обнаруживает на входе пакет, предназначенный для рабочей станции с адресом 5.6.8.2, и пересылает его в соответствующую сеть.
  • Локальный почтовый сервер, который одновременно выполняет функции маршрутизатора, обнаруживает пакет, адресованный рабочей станции 5.6.8.2, и направляет его туда.
 

Если в ядре не разрешена пересылка IP-пакетов, то его нужно перекомпилировать.

 

Чтобы определить, разрешен ли режим пересылки IP-пакетов, обратитесь к файлу /proc/sys/net/ipv4/ip_forward. Установив значение файла ip_forward в '1' вы разрешите пересылку IP-пакетов. Это выполняется с помощью команды, заданной пользователем с правами root:

 

echo '1' > /proc/sys/net/ipv4/ip_forward

 

Замечание

 

В связи с ростом популярности протокола TCP/IP и механизма преобразования адресов (маскарадинга), в большинство современных дистрибутивов ОС Linux пересылка IP включена по умолчанию. Если в имеющейся версии ядра ОС Linux поддержка пересылки IP отсутствует, то необходимо включить ее и перекомпилировать ядро системы. Более детально процесс конфигурирования ядра ОС Linux описан в других книгах издательства Sams Publishing.

 

Предупреждение

 

При внесении каких-либо изменений в ядро операционной системы будьте предельно осторожны. В некоторых случаях внесенные вами изменения могут привести к невозможности загрузки системы.

 

Использование сервера на базе ОС Linux в качестве IP-маршрутизатора — довольно полезная функция, но ее применение сопряжено с определенным риском. Когда ваш сервер под управлением ОС Linux сконфигурирован для маршрутизации сетевого трафика в сеть Internet, работает и обратная связь, т.е. трафик сети Internet может поступать в вашу локальную сеть. Повторим еще раз: трафик сети Internet может поступать в вашу локальную сеть! Ваша сеть в этом случае уязвима для атак хакеров через сеть Internet. В зависимости от оборудования, используемого в сети, это обстоятельство в той или иной степени должно вызывать беспокойство системного или сетевого администратора.

 

Еще одна полезная особенность ОС Linux состоит в том, что, начиная с версии ядра 1.3, в него включены функции поддержки системы безопасности (так называемого брандмауэра — firewall). Эти функции можно использовать для отражения атак хакеров, нацеленных на отдельные устройства во вверенной вам сети.

 

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

 

Для настройки таблицы NAT в ядре операционной системы имеется два программных пакета. Наиболее популярным из них является пакет ipfwadm, который может работать с ядрами версий от 1.3 до 2.0. В ядро версии 2.1 были добавлены новые функции для работы NAT. Если в имеющейся у вас версии ОС Linux применяется ядро версии 2.1 или выше, то вы можете использовать программный пакет ipchains. В нем широко используются новые возможности ядра версии 2.1 и выше, такие как быстрое преобразование адресов и возврат пакетов (отправка отвергнутых ICMP пакетов обратно на пославший их хост). Оба эти программных продукта подробно описаны в разделах "Применение утилиты ipfwadm" и "Применение утилиты ipchains".

 

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

 

Локальная сеть с применением общедоступных IP-адресов

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

 

 

Локальные рабочие станции с общедоступными IP-адресами

Рис. 19.2.  Локальные рабочие станции с общедоступными IP-адресами

 

 

Ввиду того что рабочие станции в локальной сети имеют адреса, запрещенные для использования в сети Internet, сервер на базе Linux должен быть сконфигурирован для их преобразования, если отдельным рабочим станциям или другим устройствам в сети необходимо соединение с хостом в сети Internet. Поддержка преобразования IP-адресов (маскарадинга IP) была реализована в ядре Linux версии 1.3 и модернизирована в версии 2.1. На рис.19.2 клиент с адресом 192.168.1.15 устанавливает соединение с удаленным хостом, адрес которого 1.2.3.4. При применении алгоритма подстановки IP-адресов схема сетевого сеанса будет выглядеть так.

 
  • Клиент посылает пакет на удаленный хост с адресом 1.2.3.4.
  • Локальный почтовый сервер пересылает пакет от клиента на сервер провайдера с адресом 5.6.7.8. Далее в пакете реальный IP-адрес рабочей станции отправителя преобразуется в адрес сервера электронной почты — 5.6.7.9.
  • Затем сервер провайдера направляет пакет по сети Internet на удаленный хост с адресом 1.2.3.4 и с указанием отправителя (5.6.7.9).
  • Удаленный хост принимает пакет и посылает ответ на адрес 5.6.7.9.
  • Сервер провайдера обнаруживает пакет для локального адреса 5.6.7.9 и отправляет его по назначению.
  • Локальный почтовый сервер, приняв пакет, идентифицирует его как пакет для одного из локальных клиентов и пересылает его на адрес 192.168.1.15.
 

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

 

Вы можете определить, включено ли в ядро вашей системы преобразование адресов, обратившись к файлу /proc/net/ip_masquerade. Если этот файл существует, то преобразование адресов уже скомпилировано в ядре. Обязательным условием для преобразования IP-адресов является наличие в ядре ОС поддержки пересылки IP-пакетов. Вы можете разрешить пересылку, проделав операции, описанные в предыдущем разделе. Будьте предельно внимательны при изменении настроек и перекомпиляции ядра. Любая ошибка может полностью вывести из строя ваш Linux-сервер.

 

Для настройки преобразования адресов можно воспользоваться теми же программными пакетами, что и при конфигурировании брандмауэра. Представленные нами ранее программные пакеты ipfwadm и ipchains позволяют вставку и удаление IP-адресов при преобразовании с помощью таблицы NAT. В последующих разделах мы рассмотрим работу этих программных пакетов более детально.

 

Применение утилиты ipfwadm

Утилита пакет ipfwadm позволяет манипулировать внутренней таблицей NAT в ядре ОС Linux. Этот пакет распространяется компанией X/OS. Информация о нем находится на Web-сайте компании по адресу:

 

http://www.xos.nl/linux/ipfwadm/

 

Замечание

 

В большинство дистрибутивов ОС Linux с версией ядра ниже 2.1 входил бинарный пакет с программой ipfwadm. В настоящее время вы можете получить с FTP-сервера компании его версию 2.3.0:

 

ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2/3/0/tar.gz

 

После получения файла через Internet его необходимо распаковать и скомпилировать выполняемый файл ipfwadm.

 

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

 
  • правила для учета IP-пакетов;
  • правила брандмауэра для входящих пакетов;
  • правила брандмауэра для исходящих пакетов;
  • правила брандмауэра при пересылке IP-пакетов.
 

Каждой категории соответствует определенный набор правил. Все правила располагаются в порядке их определения, поэтому будьте внимательны: некоторые правила могут противоречить заданным ранее правилам. Формат команды для запуска ipfwadm следующий:

 

ipfwadm category command parameters [options]

 

Параметр category говорит о типе задаваемых правил. В табл.19.1 представлены возможные типы категорий.

 
Таблица 19.1. Категории ipfwadm
Категория Описание
-A правила для учета IP-пакетов
-I правила брандмауэра для входящих пакетов
-O правила брандмауэра для исходящих пакетов
-F правила брандмауэра при пересылке IP-пакетов
-M правила для управления преобразованием адресов
 

В одной строке можно вводить только правила одной категории. Каждая категория описывает отдельный список правил для ipfwadm. Категория правил -M используется для управления преобразованием адресов.

 

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

 
Таблица 19.2. Команды ipfwadm
Команда Описание
-a [policy] Добавить одно или несколько правил
-i [policy] Вставить одно или несколько правил в начало списка правил
-d [policy] Удалить одно или несколько правил из выбранного списка правил
-l Показать все правила в списке
-z Сбросить все счетчики
-f Обнулить выбранный список правил
-p policy Изменить набор правил по умолчанию
-s tcp tcpfin udp Изменить время задержки, используемое при преобразовании адресов
-c Проверить, будут ли приниматься пакеты с заданным IP-адресом
-h Вывести на экран список команд
 

Параметр policy бывает трех типов: accept, deny и reject. Тип accept позволяет пересылать через сеть определенные пакеты. Тип deny, наоборот запрещает передавать по сети определенные пакеты. Тип reject также запрещает пересылку определенных пакетов по сети, но при этом на адрес отправителя выдается специальный ICMP-пакет с сообщением об ошибке.

 

Для уточнения действий после применения той или иной команды используются специальные параметры. Их описание вы найдете в табл.19.3.

 
Таблица 19.3. Параметры команд ipfwadm
Параметр Описание
-P protocol Проверяемый протокол
-S address [|mask] Проверяемый адрес(а) отправителя
-D address [|mask] Проверяемый адрес(а) получателя
-V address Дополнительный адрес интерфейса, через который пакет будет принят
-W address Дополнительное имя интерфейса, через который пакет будет принят
 

В качестве адреса можно указывать как IP-адреса отдельных устройств, так и адрес сети с соответствующей маской. Маска подсети определяет количество активных бит. Так, например, значение маски 24 соответствует маске подсети вида 255.255.255.0.

 

Дополнительные настройки правил могут выполняться с помощью опций. В табл.19.4 приведены опции, применяемые с ipfwadm.

 
Таблица 19.4. Опции ipfwadm
Опция Описание
-b Двусторонний режим
-e Расширенный вывод результатов
-k Проверка TCP-пакетов на совпадение с битами ACK
-m Преобразование пакетов для пересылки
-n Вывод результатов в цифровом виде
-o Включение режима отчетов о прохождении пакетов
-r [port] Перенаправление пакетов на локальный порт
-t andmask ormask Использование масок для изменения типа обслуживания IP
-v Высокая детализация при выводе результатов
-x Расширенные числа
-y Выравнивание пакетов в начале сеанса
 

Чаще всего на практике применяются опции -m, с помощью которой включается преобразование адресов; -o, с помощью которой для каждого пакета, соответствующего правилу, в файле отчета создается отдельная запись; и -y, с помощью которой запрещается устанавливать соединения с определенными узлами сети. Будьте осторожны, работая с опцией -o: когда она включена, в системе генерируются огромные файлы отчетов. Эта опция часто используется совместно с опцией -y с целью фиксирования попыток установления соединения с рабочими станциями локальной сети со стороны удаленных хостов сети Internet.

 

Команды ipfwadm вводятся в таблицу NAT в том же порядке, в котором они задаются в командной строке. К сожалению, все они аннулируются при перезагрузке сервера на базе ОС Linux. Таким образом, подобрав нужную конфигурацию правил, можно создать файл сценария, который будет выполняться во время загрузки. При этом все необходимые правила будут задаваться автоматически. В листинге 19.1 приведен пример сценария для запуска преобразования адресов в ОС Linux (IP-маскарадинг).

 
1 /sbin/ipfwadm -F -p deny
2 /sbin/ipfwadm -F -a -m -S 192.168.1.0/24 -D 0.0.0.0/0

Листинг 19.1. Пример сценария ipfwadm для преобразования адресов

В строке 1 листинга 19.1 представлена команда ipfwadm, по которой текущий набор правил сменяется на набор правил типа deny. Лучше всего по умолчанию задавать правила, запрещающие пересылку пакетов. В строке 2 осуществляется преобразование адресов, т.е. маскарадинг. Команда -a указывает на то, что новое правило будет добавлено к списку правил, регулирующих пересылку IP-пакетов. Присутствие опции -m свидетельствует о том, что при пересылке пакетов их адреса будут преобразовываться. Параметр -S определяет сетевой адрес отправителя и маску подсети, которая будет использоваться правилом при пересылке пакетов. Маска 24 позволяет использовать в маске подсети все 24 бита. В таком случае маска подсети будет 255.255.255.0, что соответствует локальной сети офиса (до 254 хостов). Параметр -D описывает адрес назначения и его маску. Приведенное правило указывает таблице NAT принимать пакеты из сети 192.168.1.0, адресованные в любою другую сеть, и пересылать их с преобразованием адресов на внешнее РРР-соединение. Таким образом, до пересылки в сеть Internet адреса пакетов, поступающих от рабочих станций, должны быть преобразованы.

 

С помощью преобразования адресов, которое можно наблюдать на рис.19.2, всеми исходящими из локальной сети пакетами будет использоваться адрес почтового сервера на базе ОС Linux. Для того чтобы различать установленные соединения, каждому из них в ОС Linux динамически присваивается номер порта TCP.

 

Приведенное выше правило не выполняет функций брандмауэра. Чтобы разрешить фильтрацию пакетов, нужно добавить еще одну строку:

 
/sbin/ipfwadm -F -a deny -P tcp -W ppp0 -y -o

С помощью этой команды в таблице NAT создается запись, блокирующая TCP-запросы, которые поступают через интерфейс ppp0, обычно подключаемый к провайдеру Internet. Таким образом, вы заблокируете любые попытки установления TCP-соединений извне. То есть, если задать такое правило, то никто в сети Internet не сможет установить соединение с устройствами в вашей локальной сети. Например, если в локальной сети имеется Web-сервер, то клиенты сети Internet не смогут установить соединение с ним, так что следует формировать правила более осторожно. Можно, например, разрешить Web-трафик между Web-сервером и сетью Internet, но запретить все остальные виды соединений. Помните, что правило, разрешающее Web-трафик, должно следовать перед правилом, запрещающим все остальные виды трафика, иначе оно будет аннулировано (или, как говорят, "перекрыто") запрещающим правилом. Адреса помещаются в таблицу NAT в том же порядке, в котором они были введены; в таком же порядке они и обрабатываются.

 

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

 

Применение утилиты ipchains

В ядре ОС Linux версии 2.1 таблица NAT была расширена и наделена дополнительными функциями. Так как в ней обеспечена обратная совместимость, то для внесения изменений в таблицу NAT вы можете использовать программу ipfwadm. Однако для работы с новыми функциями, доступными в этой версии ядра, была разработана другая программа. Для работы с таблицей NAT в ядрах ОС Linux была создана программа ipchains. Программа была написана Расти Расселом (Rusty Russel) и поддерживается им и сегодня. Основной Web-сервер по поддержке программы ipchains находится по адресу:

 

http://www.rustcorp.com/linux/ipchains

 

Замечание

 

В состав большинства дистрибутивов ОС Linux, в которых используется ядро версии 2.2 и выше, входит бинарный пакет с программой ipchains. Во время написания книги его текущая версия была 1.3.9. Этот пакет можно получить по FTP с сервера:

 

ftp://ftp.rustcorp.com/ipchains/ipchains-1.3.9.tar.bz2

 

Полученный через Internet файл нужно распаковать и скомпилировать в выполняемый файл ipchains.

 

С целью облегчения администрирования совместно с программой ipchains можно использовать три сценария: ipchains-save, ipchains-restore и ipchains-wrapper. Сценарий ipchains-wrapper может использоваться, если в системе уже задействован сценарий ipfwadm и вы хотите, модернизировав ядро ОС Linux, перейти к работе с ipchains. Если же вы настраиваете преобразование адресов и брандмауэр впервые, то вам этот сценарий не понадобится.

 

Замечание

 

Все эти сценарии можно получить по FTP с сервера:

 

ftp://ftp.rustcorp.com/ipchains/ipchains-scripts-1.1.2.tar.gz

 

Работу сценариев мы обсудим позже в разделе "Сохранение конфигурации NAT".

 

Программа ipchains, как и ipfwadm, манипулирует в таблице NAT правилами четырех категорий. Эти категории:

 
  • входящая цепочка IP;
  • исходящая цепочка IP;
  • цепочка для пересылки пакетов IP;
  • цепочки, определяемые пользователем.
 

В программе ipchains используется принцип формирования цепочек правил, которые совместно регулируют процесс фильтрации пакетов по мере их прохождения через сервер на базе ОС Linux. Помните о том, что правила создаются для облегчения системному администратору управления таблицей NAT. На рис.19.3 представлена графическая схема цепочки правил. Все правила хранятся в виде пар IP-адресов в таблице NAT.

 

 

Работа правил в программе ipchains

Рис. 19.3.  Работа правил в программе ipchains

 

 

Рис.19.3 демонстрирует процессы обработки пакетов на сервере под управлением ОС Linux. В табл.19.5 дается подробное описание этих процессов.

 
Таблица 19.5. Фильтрация пакетов программой ipchains
Процесс Описание
chesksum Выявляет искаженные пакеты
sanity1 Выявляет неправильно сформированные пакеты
input chain Проверяет входную цепочку правил брандмауэра
demasquerade Для ответа на пакет с преобразованным адресом адрес должен быть сконвертирован в исходный адрес пакета
routing Удаленный хост проверяет, является ли пакет локальным или требуется пересылка на другой хост
sanity2 Выявляет неправильно сформированные пакеты
forward chain Проверяет пересылаемую цепочку брандмауэра
sanity3 Выявляет неправильно сформированные пакеты
output chain Проверяет выходную цепочку брандмауэра
 

Прежде чем пакет будет принят и обработан на локальном хосте либо переслан на другой хост, он должен пройти все необходимые стадии обработки, представленные в табл.19.5.

 

С помощью программы ipchains для входных, выходных цепочек и цепочек пересылки используются правила, устанавливаемые в таблице NAT. Формат команды ipchains варьируется в зависимости от используемой категории. Ниже приведены несколько наиболее распространенных форматов ipchains:

 
ipchains -[ADC] chain rule-specification [options]
ipchains -[RI] chain rulenum rule-specification [options]
ipchains -D chain rulenum [options]
ipchains -[LFZNX] [chain] [options]
ipchains -P chain target [options]
ipchains -M [-L | -S ] [options]

Первый параметр в команде задает функции, выполняемые ipchains. В табл.19.6 представлены команды для управления работой ipchains.

 
Таблица 19.6. Команды ipchains
Команда Описание
-A Добавить одно или несколько правил
-D Удалить одно или несколько правил
-C Проверить пакет вне заданной цепочки
-R Заменить правило для заданной цепочки
-I Вставить одно или несколько правил с заданным номером
-L Вывести список правил для выбранной цепочки
-F Очистить выбранную цепочку
-Z Обнулить счетчики для всех цепочек
-N Создать новую цепочку с параметрами, определенными пользователем
-X Удалить выбранную цепочку с параметрами, определенными пользователем
-P Установить набор правил для цепочки
-M Просмотреть текущие соединения с преобразованием адресов
 

Далее следует имя цепочки. Это может быть либо одна из системных цепочек (входная, выходная или цепочка пересылки), либо имя цепочки, заданное пользователем с помощью команды -N. Цепочки, определяемые пользователем, часто применяются для упрощения сложных правил.

 

Правила для ipchains

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

 
Таблица 19.7. Параметры ipchains
Параметр Описание
-p protocol Проверяемый протокол
-s address [|mask] Проверяемый адрес отправителя
--source-port port Проверяемый порт отправителя
-d address [|mask] Проверяемый адрес получателя
--destination-port port Проверяемый порт получателя
--icmp-type Проверяемый тип ICMP
-j target Направление перехода при соответствии пакета определенному условию
-i name Имя интерфейса
-f Правило, определяющее фрагментацию пакетов
 

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

 

Дополнительные функции, реализованные в более новых версиях ядра ОС Linux, включают в себя возможности перенаправления пакетов и преобразования адресов (маскарадинга). В табл.19.8 приведены возможные действия ipchains.

 
Таблица 19.8. Действия ipchains
Действие Описание
ACCEPT Пропустить пакет
DENY Не пропускать пакет
REJECT Не пропускать пакет и вернуть отправителю сообщение об ошибке согласно протоколу ICMP
MASQ Преобразовать адрес при пересылке пакета
REDIRECT Переслать пакет на локальный порт, а не на удаленный хост
RETURN Немедленно разорвать цепочку
 

При более детальном описании правил используются дополнительные параметры. Они приведены в табл.19.9.

 
Таблица 19.9. Параметры ipchains
Параметр Описание
-b Двусторонний режим
-v Вывод результатов с высокой детализацией
-n Вывод результатов в цифровом виде
-l Включение режима отчетов
-o [maxsize] Копирование согласованных пакетов на заданное устройство
-m markvalue Установка меток на согласованные пакеты
-t andmask xormask Маски, используемые для изменения поля Тип сервиса (Type of Service) в IP-пакете
-x Расширение адресов
-y Производить согласование только для пакетов, обозначающих начало сеанса
 

Таблица NAT формируется в соответствии с порядком задания команд ipchains. Помните, что все внесенные в эту таблицу изменения теряются при перезагрузке сервера. Для того чтобы таблица NAT при каждой загрузке обновлялась, создаются два файла сценариев запуска ipchains.

 

Сохранение конфигурации NAT

Для сохранения текущей конфигурации таблицы NAT используется сценарий ipchains-save, с помощью которого производится запись в заданный файл. Формат команды для сохранения конфигурации следующий:

 
ipchains-save > filename,

где filename — имя файла, куда записывается текущая конфигурация таблицы NAT. Чтобы выполнить эту команду, вы должны обладать в системе правами пользователя root. Для восстановления конфигурации таблицы NAT из файла можно создать сценарий инициализации ipchains-restore. Формат команды для его создания следующий:

 
ipchains-restore > filename,

где filename — имя файла, в котором хранится текущая конфигурация таблицы NAT. Эта команда также должна выполняться только с правами пользователя root. Желательно также, чтобы этот сценарий запускался вместе с остальными при инициализации сервера.

 

Разрешение преобразования адресов

В листинге 19.2 представлены примеры команд ipchains, которые разрешают режим преобразования адресов (маскарадинг) на сервере под управлением ОС Linux.

 
1 /sbin/ipchains -P forward DENY
2 /sbin/ipchains -A forward -i ppp0 -j MASQ

Листинг 19.2. Пример команд, разрешающих преобразование адресов

В строке 1 листинга 19.2 устанавливается правило для запрещения пересылки пакетов. В строке 2 добавляется правило, разрешающее пересылку, но с определенными условиями. Адреса всех пакетов, проходящих через интерфейс ppp0, сначала будут преобразованы в другие. В данном случае соединение с провайдером Internet обеспечивается именно через интерфейс ppp0. Чтобы добавить фильтрацию пакетов, можно ввести команду:

 
/sbin/ipchains -A input -i ppp0 -l -y -j DENY

При использовании этой команды TCP-пакеты типа начало сеанса (start-of-session), поступающие на интерфейс ppp0, не будут пересылаться в локальную сеть. Таким образом, если интерфейс ppp0 обеспечивает соединение с провайдером Internet, эта команда препятствует установлению прямых соединений между рабочими станциями в локальной сети и хостами в сети Internet. Параметр -l включает режим ведения отчетов. При этом все попытки установить соединение с рабочими станциями локальной сети будут протоколироваться в файл отчета. Затем системный администратор, анализируя файл отчетов, может выявить попытки несанкционированного доступа в сеть.

 

Настройка маршрутизации на клиентских рабочих станциях

После настройки сервера на базе ОС Linux для работы в качестве маршрутизатора и/или для преобразования адресов можно приступить к настройке для работы в сети клиентских рабочих станций. Чтобы пакеты пересылались через сервер на базе ОС Linux в сеть Internet, рабочие станции должны иметь его IP-адрес.

 

Для того чтобы пакеты от рабочих станций безошибочно поступали на Linux-сервер, и станции, и сервер должны принадлежать к одной сети с определенными адресом и маской. Маска подсети определяет количество битов, используемых в IP-адресе для задания адреса сети. Эта информация используется рабочими станциями при принятии решения о том, куда направлять пакеты — на маршрутизатор или напрямую на удаленный хост.

 

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

 
Таблица 19.10. Разделение на подсети в сети с адресом 192.168.0.0
Маска Количество рабочих станций
255.255.240.0 4094
255.255.248.0 2046
255.255.252.0 1022
255.255.254.0 510
255.255.255.0 254
255.255.255.128 126
255.255.255.192 62
255.255.255.224 30
255.255.255.240 14
255.255.255.248 6
255.255.255.252 2
 

Чаще всего (и легче всего) использовать маску подсети 255.255.255.0. Итак, первые три октета в IP-адресе описывают сеть. Все рабочие станции в сети должны иметь одинаковые первые три октета в IP-адресе. То есть в качестве адреса сети вы можете использовать 192.168.1.0, а адреса с 1 по 254 назначить рабочим станциям (помните, что адрес 255 в данном случае не может назначаться какой-либо рабочей станции, так как он используется в этой сети для широковещательных запросов, т.е. для обращения ко всем хостам сети одновременно).

 

В лекции 15, "Конфигурирование клиентов ЛВС", подробно рассмотрена настройка сетевых адаптеров и IP-адресов на рабочих станциях под управлением ОС Windows 98 и XP. На рис.19.4 приведено окно Свойства TCP/IP (TCP/IP Properties) для рабочей станции под управлением ОС Windows XP.

 

 

Окно Свойства TCP/IP в ОС Windows XP

Рис. 19.4.  Окно Свойства TCP/IP в ОС Windows XP

 

 

На вкладке IP-адрес (IP Address) задаются IP-адрес рабочей станции и маска подсети. На вкладке Шлюз (Gateway) задается IP-адрес шлюза, используемого по умолчанию. В качестве адреса шлюза нужно задать IP-адрес локального Linux-сервера, если он выполняет функции маршрутизатора.

 

На рабочих станциях под управлением ОС Windows NT 4.0 настройка этих параметров происходит аналогично. На рис.19.5 приведено окно Свойства TCP/IP (TCP/IP Properties) в ОС Windows NT 4.0.

 

 

Окно Свойства TCP/IP в ОС Windows NT 4.0

Рис. 19.5.  Окно Свойства TCP/IP в ОС Windows NT 4.0

 

 

Здесь все три параметра вводятся на вкладке IP-адрес (IP Address). В этом случае в качестве шлюза, используемого по умолчанию, следует также указать IP-адрес Linux-сервера.

 

После задания всех этих параметров рабочая станция сможет через сервер на базе ОС Linux контактировать с удаленными хостами в сети Internet.

 

Резюме

Хотя IP-маршрутизация и не входит в функции системы электронной почты, довольно часто она является необходимым условием при подключении локальных сетей к Internet. Если для вашей сети выделены реальные IP-адреса, то сервер на базе ОС Linux может быть настроен для пересылки пакетов на узел провайдера без каких-либо дополнительных ухищрений в том виде, в котором они поступают от рабочих станций. При использовании в локальной сети общедоступных адресов сервер под управлением ОС Linux должен выполнять преобразование адресов. Процесс преобразования адресов (или, как его еще называют, маскарадинг) позволяет вместо IP-адреса рабочей станции из локальной сети подставлять IP-адрес Linux-сервера и передавать пакет в сеть Internet уже с реальным адресом. Тогда хосты в сети Internet смогут переслать на адрес сервера под управлением ОС Linux. Далее адрес пакета подвергается обратному преобразованию, и пакет направляется на соответствующую рабочую станцию в локальной сети. И в том, и в другом случае сервер под управлением ОС Linux может выполнять функции брандмауэра по защите сети от атак хакеров. Для реализации функций брандмауэра и преобразования адресов применяются утилиты ipfwadm и ipchains. Обе утилиты с помощью наборов правил воздействуют непосредственно на ядро ОС Linux и указывают ему, как обслуживать тот или иной пакет. После настройки Linux-сервера для пересылки пакетов из локальной сети в Internet нужно соответствующим образом сконфигурировать рабочие станции. На них в качестве шлюза, используемого по умолчанию, следует указать IP-адрес сервера под управлением ОС Linux. Во всех операционных системах производства компании Microsoft есть возможность настройки маски подсети и шлюза для работы по протоколу TCP/IP. Рабочие станции, для которых в качестве шлюза указан IP-адрес почтового сервера на базе ОС Linux, могут работать в сети Internet.

 

С этого момента вы должны чувствовать себя уверенней в вопросах администрирования почтового сервера под управлением ОС Linux. Но помните: работа администратора почтовой системы никогда не заканчивается. В настоящее время намечается использование нескольких новых технологий, расширяющих возможности электронной почты. Одна из них, набирающая обороты, — технология протокола доступа к каталогам облегченного типа Lightweight Directory Access Protocol (LDAP). Сегодня многие компании экспериментируют с этой технологией. Начаты работы по ее реализации на платформе Linux. Эта технология, наряду с другими, гарантирует администратору почтовой системы постоянную рабочую нагрузку.

 
Автор: Р. Блам  источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz