Использование TCP Wrappers
Как было сказано ранее, инструмент TCP Wrappers играет роль посредника между inetd
и целевым сервером. Средства TCP Wrappers применяются для повышения безопасности системы; они позволяют задавать правила установления соединений, защищая тем самым сервер от нежелательного взаимодействия. Предположим, что вы хотите, чтобы доступ к серверу Telnet имели только пользователи, работающие в вашей локальной сети. Программу, обеспечивающую работу сервера Telnet, можно настроить так, чтобы она отвергала попытки обращения с узлов, для обслуживания которых сервер не предназначен. Однако не все серверы предоставляют такие возможности. Передача TCP Wrappers полномочий по управлению соединением повышает гибкость системы, не требуя при этом внесения изменений в программы.
Для управления работой TCP Wrappers используются два файла: /etc/hosts.allow
и /etc/hosts.deny
. Эти файлы имеют одинаковый формат, но выполняют противоположные действия. В файле hosts.allow
описываются узлы сети, которым разрешено обращаться к данному компьютеру; для всех остальных узлов доступ запрещен. Файл hosts.deny
, напротив, содержит описания узлов, доступ с которых запрещен; все остальные узлы могут устанавливать соединение с данным компьютером. Если в системе присутствуют оба файла, приоритет имеет файл hosts.allow
. Благодаря этому вы имеете возможность задать ограничения в файле hosts .deny
, а затем разрешить доступ для отдельных компьютеров. Если сведения о сервере не включены ни в один из файлов (сервер может быть описан либо непосредственно, либо с помощью групповой операции), TCP Wrappers разрешает доступ к нему для всех узлов сети.
На заметку
TCP Wrappers можно сравнить с локальным брандмауэром, работа которого будет рассматриваться в главе 25. При этом TCP Wrappers реализует дополнительную защиту, которая может оказаться полезной, если брандмауэр настроен неправильно, кроме того, этот инструмент предоставляет новые возможности, например, фильтрацию на основе имени группы NIS.
Подобно другим конфигурационным файлам, символ #
в начале строки означает, что в данной строке содержатся комментарии. Запись в файле hosts.allow
или hosts.deny
имеет следующий формат:
список_демонов : список_клиентов
В списке демонов указывается один или несколько серверов, к которым применяется данное правило. Если в списке указано несколько серверов, их имена разделяются запятыми или пробелами. Имена серверов должны совпадать с именами, содержащимися в файле /etc/services
. Кроме имен серверов в этом поле можно также указывать ключевое слово ALL
, определяющее групповую операцию. Оно означает, что правило применяется ко всем серверам, управляемым TCP Wrappers.
Внимание!
Не забывайте, что не все серверы запускаются с помощью TCP Wrappers. Поэтому групповая операция ALL
может не включать все серверы, выполняющиеся в системе. Аналогично, указав сервер в списке демонов, вы не защитите его, если для управления им не применяются inetd
и TCP Wrappers, либо если он не использует TCP Wrappers непосредственно.
Список клиентов определяет компьютеры, которым разрешен или запрещен доступ к серверу. Подобно списку доменов, в списке серверов может быть указан один узел либо несколько узлов. Идентификаторы узлов разделяются запятыми или пробелами. Описания узлов сети могут быть представлены в перечисленных ниже форматах.
• IP-адрес. В списке клиентов можно указать конкретный IP-адрес, например 10.102.201.23. Такое описание определяет только этот адрес.
• Диапазон IP-адресов. Задать диапазон IP-адресов можно несколькими способами. Проще всего сделать это, указав в составе адреса меньше четырех десятичных чисел; в этом случае адрес должен заканчиваться точкой. Например, значение 10.102.201. соответствует сети 10.102.201.0/24. Кроме того, можно использовать запись типа IP-адрес/маска. В файлах hosts.allow
и hosts.deny
также поддерживаются адреса IPv6. Они задаются в виде [ n : n : n : n : n : n : n : n ]/ длина
, где n — значения компонентов адреса, а длина — это число битов, используемых для представления диапазона.
• Имя узла. Узел можно описывать с помощью его доменного имени, например badcracker.threeroomco.com
. Этим способом определяется только один узел. В этом случае при получении запроса система выполняет преобразование имен, а, следовательно, если сервер DNS работает некорректно, при идентификации компьютера могут быть допущены ошибки.
Читать дальше