Файлы /etc/hosts.allow и /etc/hosts.deny#
hosts.allow и hosts.deny - это конфигурационные файлы, используемые для управления доступом к хосту; содержат строки с парами демон-клиент.
Программное обеспечение управления доступом обращается к файлам по следующему сценарию:
Если пара демон-клиент совпадет с записью в
/etc/hosts.allow- доступ будет предоставлен.Если пара соответствует записи в
/etc/hosts.deny- доступ будет запрещен.Если нет совпадений - доступ будет предоставлен.
Если файл контроля доступа не существует, то при обработке приравнивается к пустому; таким образом можно отключить контроль доступа.
Правила управления доступом:
каждый файл управления доступом состоит из нуля или более строк текста;
строки обрабатываются в порядке появления;
поиск завершается при нахождении совпадения;
символ новой строки игнорируется, если перед ним стоит обратная косая черта; можно разбивать длинные строки для облегчения редактирования;
пустые строки или строки, начинающиеся с
#(комментарии), игнорируются;остальные строки записываются в формате:
daemon_list : client_list < : shell_command >Где:
daemon_list- один/несколько имен процессов-демонов или подстановочных знаков;client_list- один/несколько имен хостов, адресов хостов, подстановочных знаков, сопоставляемых с именем или адресом хоста клиента;shell_command- команда (необязательно);
элементы списка должны быть разделены пробелами и/или запятыми;
за исключением запросов в сетевой группе NIS (YP), проверки контроля доступа не зависят от регистра.
Используемые подстановочные знаки:
ALL- все совпадает;LOCAL- любой хост без точки в имени соответствует;UNKNOWN- любой пользователь с неизвестным именем и любой хост с неизвестным адресом соответствуют;KNOWN- любой пользователь с неизвестным именем и любой хост с неизвестным адресом соответствуют;PARANOID- любой хост, имя которого не совпадает с его адресом, соответствует.
Важно
Используйте шаблоны UNKNOWN, KNOWN с осторожностью, поскольку имена хостов могут быть недоступны из-за временных проблем с сервером имен, а сетевой адрес может быть недоступен, если программное обеспечение по каким-то причинам не определяет, к какому типу сети оно подключено.
Примеры записей#
Доступ запрещен по умолчанию, разрешен только явно авторизованным хостам; политика запрета реализована посредством записи в файле
/etc/hosts.deny:ALL: ALLЯвно авторизованные хосты перечислены в файле
/etc/hosts.allow:ALL: LOCAL @some_netgroup ALL: .foobar.edu EXCEPT terminalserver.foobar.eduГде:
первое правило (первая строка) разрешает доступ с хостов в локальном домене (нет точки в имени хоста) и от членов группы сети
some_netgroup;второе правило разрешает доступ со всех хостов в домене
foobar.edu, за исключением (EXCEPT)terminalserver.foobar.edu.
Доступ разрешен по умолчанию, запрещен только явно указанным хостам - в этом случае файл
/etc/hosts.allowможно опустить, перечислив явно неавторизованные хосты в файле/etc/hosts.deny:ALL: some.host.name, .some.domain ALL EXCEPT in.fingerd: other.host.name, .other.domainГде:
первое правило запрещает указанным хостам и доменам использовать все сервисы;
второе правило разрешает запросы
fingerот указанных хостов и доменов.