Политика OpenBSD 3.2 в отношении named
Документация manpage systrace(l) содержит полное описание синтаксиса, используемого для описания политик, но проще рассмотреть несколько примеров работающих политик и лишь затем вникнуть в подробности синтаксиса. Поскольку вопросы безопасности named недавно были предметом рассмотрения, давайте познакомимся с политикой, которую OpenBSD 3.2 использует в отношении named.
Перед рассмотрением политики познакомимся с общими требованиями доступа к системе, предъявляемыми демоном сервера имен (named). Переносы зон и крупные запросы осуществляются через 53-й порт TCP, в то время как основные службы поиска доступны через 53-й порт UDP. OpenBSD по умолчанию изолирует демон named в /var/named, протоколируя все события в /var/log/messages. Файл политики, usr_sbin_named, содержит лишь несколько элементов, позволяющих обращаться за пределы 53-го порта и выполнять запись в системный протокол. Вот начало этого файла:
# Policy for named that uses remed user and chroots to /Var/named
# This policy works for the default configuration of named. Policy: /usr/sbin/named. Emulation: native
Выражение Policy указывает полный путь к программе, для которой предназначена эта политика. Невозможно обмануть systrace, указав то же имя программы где-либо в другом месте системы. Элемент Emulation указывает, к какому ABI относится эта политика. Не забывайте, что BSD-системы «открывают» ABI для различных операционных систем. Теоретически, systrace может управлять доступом к системным вызовам для любого ABI, хотя в данный момент поддерживаются только «родные» и двоичные файлы Linux.
Остальные строки определяют разнообразие системных вызовов, которые можно или нельзя использовать программе.