Использование сети при работе UNIX-системы (8 глава дипломной работы), страница 5

По тому факту, установлено соединение или нет, а также по выведенным на экран ответам сервера обычно можно сделать определенные выводы о доступности и работоспособности указанного сервиса. Для ряда протоколов прикладного уровня, где взаимодействие клиента и сервера производится на основе обмена символическими командами в виде ключевых слов, имеется возможность произвести ручной ввод этих команд и непосредственно проанализировать ответы сервера. Приведем пример тестового соединения с сервером электронной почты по протоколу РОР3. Курсивом выделены символы, вводимые пользователем.

$ telnet mail.server.ru 110

Trying mail.server.ru...

Connected to mail.server.ru.

Escape character is '^]'.

+OK POP3 mail.server.ru v7.59 server ready

user john

+OK User name accepted, password please

pass MyPass

+OK Mailbox open, 2 messages

list

+OK Mailbox scan listing follows

1 404

2 1245

.

quit

+OK                   

В примере пользователь выполняет ручное соединение со своим почтовым сервером, вводит имя и пароль, и проверяет наличие новой почты. Из ответа сервера видно, что в ящике имеется 2 новых сообщения объемом 404 и 1245 байт.

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

Кроме указанных утилит, для отладки работы сетевой подсистемы могут использоваться и другие штатные средства UNIX. Прежде всего, речь идет об анализе журналов событий (log-файлов). Большинство сервисов, включая сетевые компоненты системы, в процессе своего функционирования заносят записи о наиболее значимых событиях в текстовые файлы, называемые журналами, или log-файлами. Наиболее часто файлы журналов системы и приложений располагаются в каталогах /var/log или /var/adm. Для ряда сервисов администратор может управлять тем, насколько подробно работа приложения фиксируется в журналах. Подробные сведения об используемых log-файлах обычно содержатся в документации на конкретный программный продукт.

8.6 Дополнительные возможности UNIX в сетях TCP/IP.

Кроме традиционных сетевых функций, таких, как маршрутизация IP- пакетов или поддержка сетевых сервисов прикладного уровня, многие UNIX-систем обладает рядом дополнительных возможностей, касающихся сетей TCP/IP. Рассмотрим некоторые из этих функций на примере их реализации с ОС Linux.

Фильтрация пакетов.

Функция фильтрации IP-пакетов по тем или иным признакам, встроенная в сетевую подсистему многих современных ОС, позволяет организовать на базе данной ОС программный брандмауэр (firewall).

            В Linux функция фильтрации пакетов реализована на уровне ядра. Чтобы активизировать данную функцию, при компиляции ядра необходимо включить поддержку «IP firewalling» в разделе «Сетевые опции».

            Для управления функцией фильтрации пакетов в современных версиях Linux используется утилита ipchains. Использование более старой утилиты ipfwadm допустимо, но не рекомендуется.

            В терминах утилиты ipchains функция фильтрации пакетов действует на уровне так называемых цепей. В системе присутствует по меньшей мере три цепи:

-  input – относится к входящим пакетам;

-  output – к исходящим пакетам;

-  forward – к ретранслируемым пакетам.

Кроме того, могут быть определены дополнительные цепи, вложенные по отношению к стандартным.

            Для каждой из цепей определяется политика действий по отношению ко всем соответствующим данной цепи пакетам. Основными типами политики являются:

-  ACCEPT – пропустить пакеты без ограничений;

-  DENY – отбросить пакеты без каких-либо дополнительных действий;

-  REJECT – отбросить пакеты, направив источнику ICMP-сообщение об ошибке.

Для цепи forward может также использоваться политика MASQ, включающая режим маскарадинга (см. ниже). По умолчанию на каждой из цепей задана политика ACCEPT, т.е. фильтрация пакетов не задействована.

            После того, как для всех цепей определена политика действий по отношению к пакетам, для любой цепи может быть определен ряд исключений. Исключения определяют некоторые множества признаков и политику, которая применяется к пакету, обладающему этими признаками, вместо общей политики для данной цепи. Так, стандартным решением на шлюзе между Internet и локальной сетью является определение политики DENY для ретранслируемых пакетов (цепь forward) и описание в виде исключений политики ACCEPT для пакетов, переданных или предназначенных некоторым компьютерам локальной сети. При этом связь с Internet будет реализована только для этих компьютеров; остальные будут гарантированно защищены от доступа из открытой сети.

            Описание политики для цепи производится командой ipchains с ключом «-P»:

            ipchains –P forward REJECT

     ipchains –P input ACCEPT

Исключения задаются командой ipchains с ключом «-A» («add» - добавить), где  указывается цепь, к которой относится исключение, признаки пакетов, подпадающих под исключение, и применяемая к этим пакетам политика. Основными призаками-ключами являются:

            -s – адрес источника (отправителя) пакета;

            -d – адрес получателя (места назначения) пакета;

-p – протокол – TCP, UDP, ICMP;

для TCP и UDP в качестве ключа может быть также указан порт.

Примеры команд:

1. Отбрасывать все входящие пакеты от хостов из сети 194.84.102.Х:

ipchains -A input -s 194.84.102.0/24 -j DENY

2. Разрешить ретранслировать TCP-соединения на 80-й порт (HTTP, или WWW) всех хостов из сети 10.Х.Х.Х:

ipchains -A output -p tcp -d 10.0.0.0/8 80 –j ACCEPT

По умолчанию исключения просматриваются и применяются в порядке их определения командой ipchains. Просмотреть установленное состояние для всех цепей позволяет команда

            ipchains -L

Удаление исключений производится командой

            ipchains –D <цепь> <номер_исключения>

т.е., например,

     ipchains –D forward 1

Маскарадинг.

            IP-маскарадинг (IP masquerading) может рассматриваться как функция брандмауэра и в то же время как частный случай трансляции адресов. Функция маскарадинга используется на брандмауэрах для обеспечения прозрачного доступа к ресурсам открытой сети в случаях, когда хостам локальной сети не выделены уникальные IP-адреса.