Информация, которой руководствуется tcpd при управлении доступом, хра- нится в файлах /etc/hosts.allow и /etc/hosts.deny. Назначение файлов однозначно определяется их именами, hosts.allow содержит список узлов, которым разрешен доступ к службам сети, тогда как hosts.deny - список узлов, которым запрещен доступ.

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

Если файлы существуют, tcpd сначала обращается к файлу hosts.allow, а затем к файлу hosts.deny. Поиск прекращается, как только найдена запись, соответствующая узлу и службе, о которых идет речь. Таким образом, доступ, разрешенный файлом hosts.allow, не может быть заблокирован записью из hosts.deny.

Формат записей одинаков для обоих файлов:

список_служб: список_узлов [: команда_интерпретатора]

Здесь список_служб - список сетевых служб, элементы которого разделены запятыми, а точнее говоря - разрешенных (hosts.allow) или заблокированных (hosts.deny) служб. Каждая служба определяется именем процесса из седьмого поля записи файла /etc/inetd.conf. Это просто имя, следующее непосредственно за путем к tcpd в файле inetd.conf. (Описание поля аргументов файла /etc/inetd.conf дано в главе 5.)

Воспользуемся снова службой finger для примера. Мы изменили ее запись в inetd.conf на такую:

finger stream tcp nowait nobody /usr/etc/tcpd in.fingerd

Исходя из этого, в качестве имени службы в файлах hosts.allow и hosts.deny мы используем in. fingerd.

список_узлов, элементы которого разделены запятыми, - это список имен узлов, доменных имен, IP-адресов или номеров сетей. Системам, перечисленным в этом списке, разрешается (hosts.allow) или запрещается (hosts.deny) доступ к службам, указанным в списке_служб. Имя узла или IP-адрес обозначает отдельный узел. Например, rodent - имя узла, а 172.16.12.2 - IP-адрес. Оба адреса относятся к совершенно определенному узлу. Доменное имя обозначает все узлы домена; так, .wrotethebook.com соответствует crab.wrotethebook.com, rodent.wrotethebook.com, horseshoe.wrotethebook.com и любы м другим узлам домена. В списке управления доступом tcpd доменные имена всегда начинаются с точки (.). Номер сети обозначает все IP-адреса из адресного пространства этой сети. Например, 172.16. соответствует 172.16.12.1, 172.16.12.2, 172.16.5.1, а также любым другим адресам, которые начинаются с 172.16. Адреса сетей в списке управления доступом tcpd всегда заканчиваются точкой (.).

Ниже приводится полноценная запись hosts.allow, разрешающая всем узлам домена wrotethebook.com доступ к службам FTP и Telnet:

ftpd,telnetd : .wrotethebook.com

В записях hosts.allow и hosts.deny допустимы специальные ключевые слова AL L и LOCAL. Ключевое слово ALL может использоваться в списке служб для указания всех служб сети, а также в списке узлов для указания всех имен узлов и адресов. Второе ключевое слово, LOCAL, может использоваться только в списке узлов. Оно соответствует всем локальным именам узлов, tcpd считает имя узла «локальным», если оно не содержит точек. Таким образом, имя узла rodent соответствуе т указанию LOCAL, а им я rodent.wrotethebook.com - нет . Следующая запись относится ко всем службам и всем локальным узлам:

AL L : LOCA L - Чтобы лучше понять принципы применения tcpd, рассмотрим более слож- ный пример. Прежде всего, предположим, что необходимо разрешить всем узлам локального домена (wrotethebook. сот) доступ ко всем службам системы, но запретить доступ к каким-либо службам всем прочим узлам. Создайте в файле /etc/hosts.allow запись, разрешающую всем узлам локального домена доступ к любым службам:

AL L : LOCAL , .wrotethebook.com - Ключевое слово ALL в списке служб говорит о том, что правило относится ко всем сетевым службам. Двоеточие (:) отделяет список узлов от списка служб. Ключевое слово LOCAL показывает, что допустимы все локальные имена без доменного расширения, а строка .wrotethebook.com - что все имена узлов, дополненные доменным именем wrotethebook.com, также допустимы. Разрешив доступ только тем системам, которые необходимо обслуживать, следует явно запретить доступ всем остальным системам - в файле hosts.deny. Чтобы запретить обращения со стороны прочих узлов, внесите такую запись в файл /etc/hosts.deny:

AL L : AL L - Все системы, не соответствующие записи из /etc/hosts.allow, обрабатываются по правилам из /etc/hosts.deny. В данном случае запись запрещает доступ всем, независимо от службы, о которой идет речь. Помните, даже в присутствии ключевого слова ALL в списке служб правило действует только на службы, работающие под управлением inetd, и только в том случае, если записи этих служб в файле inetd.conf соответствующим образом изменены. Автоматическая защита для всех прочих служб не предоставляется. Синтаксис стандартного файла управления доступом для wrapper может быть чуть более сложным, чем в приведенных примерах. Файл hosts.allow может содержать такие записи:

imapd, ipopd3 : 172.16.12.
ALL EXCEP T imapd, ipopd3 : AL 

L Первая запись разрешает доступ к службам IMAP и POP всем узлам, IP-адреса которых начинаются с 172.16.12. Вторая строка разрешает всем узлам доступ ко всем службам, кроме IMAP и POP. Данные записи ограничивают доступ к почтовой службе одной подсетью, в то же время предоставляя все прочие службы любым узлам. Ключевое слово EXCEPT позволяет исключать элементы из всеохватывающих списков служб. Оно может присутствовать и в списке узлов правила доступа. Рассмотрим такой пример:

ALL : .wrotethebook.com EXCEP T public.wrotethebook.com

В файле hosts.allow такая запись разрешает всем системам домена wrotethe- book.com доступ ко всем службам. Исключением является узел public.wrotet- hebook.com. Смысл таков, что по какой-то причине узел public.wrotethebo- ok.com не является доверенным - возможно, с ним разрешено работать поль- зователям из других доменов. И последняя вариация синтаксиса- символ сужающий определение служб или узлов. Два примера:

Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра..2 : 172.16.12.0/255.255.255.0 
in.rshd : Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

В списке служб символ @ указывает, что сервер имеет несколько IP-адресов и что правило справедливо лишь для одного из этих адресов. Примерами систем с многими адресами являются многосетевые узлы и маршрутизаторы. Если сервер является маршрутизатором, связывающим локальную сеть с внешними сетями, имеет смысл предоставлять доступ к службам только через интерфейс с локальной сетью, но не через интерфейс с внешним миром. Символ ® позволяет решить именно такую задачу. Если первая строка из примера расположена в файле hosts.allow, она разрешает доступ к демону Telnet через сетевой интерфейс 172.16.12.2 для всех клиентов, адреса которых начинаются с 172.16.12. Назначение @ в списке узлов совсем иное. В списке узлов символ @ указывает, что клиент должен предоставить имя пользователя для прохождения проверки по списку управления доступом. Это означает, что клиент должен работать с демоном identd. Список узлов позволяет проверять конкретное имя пользователя, но чаще всего используется одно из трех ключевых слов:

KNOWN

Результат проверки принимает значение KNOWN, если удаленная система возвращает имя пользователя в ответ на запрос.

UNKNOWN

Результат проверки принимает значение UNKNOWN, если удаленная система не способна ответить на запрос вследствие отсутствия демона identd.

ALL

Данный вариант требует от удаленного узла предоставления имени пользователя. Является эквивалентом KNOWN, но используется реже.

И последнее поле записей - необязательная команда интерпретатора. В случае обнаружения соответствия правилу, с которым связана команда интерпретатора, tcpd регистрирует попытку доступа, разрешает или запрещает доступ к службе, а затем передает команду для выполнения интерпретатору команд.

Обмениваться, хранить, передавать Ваши файлы стало просто как никогда.
yandex-disk

Читать подробнее: для чего Yandex-Диск проекту Mini-Server. Практика установки, настройки и использования сетевого хранилища на Ubuntu server LTS 12.04 в статье Резервное копирование сервера Ubuntu на Яндекс Диск.

>> Ubuntu 12.04 + Nginx Скачать сервер
>> Fedora 15 Скачать сервер
>> Простой Debian 6.0.6 Скачать сервер
>> CentOS 6.0 и
+ (5.6) другой
Скачать сервер
>> OpenSUSE 11.4
MAX
Скачать сервер

Вход на сайт

ВНИМАНИЕ!

Регистрация на сайте только по согласованию с администратором ресурса. Обращаться через форму обратной связи.