TCP WRAPPERS

плащ для админа

Спецвыпуск Xakep, номер #024, стр. 024-060-2


А теперь о настройке. Все правила доступа читаются из двух файлов - /etc/hosts.deny и /etc/hosts.allow. Прочитав хотя бы половину Спеца, ты уже должен понять, что значит deny и allow. Правильно, в /etc/hosts.deny запишем хосты, которым не доверяем, а в /etc/hosts.allow запишем доверенные хосты. В только что установленной системе эти файлы пусты, так что приступим к конфигуру. Виетс Венема создал специальный язык (hosts_options) для этого дела, и первое, что надо добавить в /etc/hosts.deny, - запись "ALL: ALL". А теперь разберем ее: слева список демонов, потом идет символ «:» (разделяющий символ) и далее список хостов. В данном примере мы всем хостам запретили юзать все сервисы =) (ALL - это символ-заместитель). Это правило называется - «то, что не разрешено, запрещено». Вот теперь можем приступить к редактированию /etc/hosts.allow, т.е. разрешать.

Запиши туда строчку - "ALL: 127.0.0.1"ь, что позволит тебе подсоединятся ко всем сервисам (можно перечислять хосты дальше через пробел).

В языке hosts_options имеется еще один очень полезный оператор, а зовут его EXCEPT. Зачем он нужен? Ну, к примеру, если в /etc/hosts.deny записать - "ALL EXCEPT in.telnetd: ALL", то ко всем сервисам, кроме telnet, будет запрещено подсоединяться. Возможно, ты уже подумал, что ничего сложного в языке нет, но ты глубоко ошибаешься, посмотри на этот пример:

/etc/hosts.deny:

ALL: ALL: spawn ((/path/to/save_finger -l @%h; \

echo Alien's IP %a; echo Alien's domain %n; \

/bin/mail -s " %c wanted to connect %s at 'date'" root)&

ALL: ALL - это мы уже разобрали, потом идет еще один знак «:» (разделитель) и команды, которые выполняются при коннекте, spawn - команда, которая запускает shell. Для того, чтобы выяснить, кто работает на удаленной машине, я использую safe_finger (поставляется вместе с обертками), в документации написано, что он безопаснее стандартного. Затем я вывожу на консоль IP и доменное имя того хрюнделя, который хочет приконнектиться. А также стучу кому надо, т.е. отправляю письмо руту с темой (ключ -s) "%c хочет присоединиться к %s в такое-то число". Тут %a - IP клинета, %n - доменное имя клиента, %c - информация о клиенте, %s - информация о сервере. Т.е. получается, что я отправляю письмо с темой - "Какой-то ежик (идет инфа о нем) хочет приконнектиться к моей тачке (идет инфа о тачке, с которой отправляется письмо) в такое-то время" (заменяется на дату). Если ты тоже хочешь мутить подобные конструкции - милости просим в man pages: hosts_options(5) и hosts_access(5) (5 - это номер секции, File Formats).

Назад на стр. 024-060-1  Содержание  Вперед на стр. 024-060-3