вторник, 24 июля 2012 г.

CentOS - Bind - Доступ запрещён на запись логов и прочего в директории / Permission denied on writing log files, or any other named directories (.log failed: permission denied, general: dumping master file: s/tmp-######: open: permission denied)

SELinux -> BIND

    При настройке Bind на CentOS убил много времени на ошибки такого формата:

name2 named[1694]: isc_stdio_open '/var/log/named.log' failed: permission denied
name2 named[1694]: isc_stdio_open '/var/log/named-transfer.log' failed: permission denied
name2 named[1694]: isc_stdio_open '/var/log/named-security.log' failed: permission denied
-это банально named не мог записать логи в указанные директории, даже права на директории давались 777 (named:named) и ничего...

general: dumping master file: s/tmp-######: open: permission denied
- эта ошибка возникала тоже по причине прав доступа. Опять же, давались максимальные права и всё ни в какую! (тут ошибка при трансфере зоны - трансфер проходил, при этом named должен создавать временный файл, а уж после его переименовать в файл зоны.)


    Решение:

    Нужно отключить SELinux, либо настроить так, чтобы ваш Bind комфортно себя чувствовал.
Не имея навыков как его корректно настраивать, я его пока отключу:

#vi /etc/sysconfig/selinux
selinux=disabled
#setenforce 0
    Лирика:
    В поисках решения, часто натыкался на страницы, где говорили, что AppArmor всему виной. Я добросовестно проверял rpm -q apparmor, ничего подобного не находил и шёл дальше на поиски. Лишь уже под конец дня, на исходе сил, с мыслью "Не может же быть так всё плохо!" и подсознательное понимание, что всё же какая-то система безопасности в духе AppArmor рубит всё, я вбил следующий, спасающий запрос в Google


Для информации:
Security Enhanced Linux - SELinux разработан в агенстве национальной безопасности (NSA) в 2000 году. Проект распространяется по лицензии GPL. Основной целью проекта является достижение такого уровня защищенности компьютерной системы, чтобы можно было спокойно использовать ее в военных и правительственных организациях. SeLinux являет собой дополнительное расширение к ядру, целью которого является увеличение его защищенности и возможность строго и гибко регулировать права доступа к системе для конкретных пользователей.


Для понимания работы SELinux:
http://centos.name//Selinux


А бывает ещё такая проблема при Bind-Chroot - не пишутся логи.
http://www.php2s.com/linux/how-to-configure-bind-logging-with-bind-chroot-on-centos-6-2.html

Источник решения проблемы: www.kaltura.org

2 комментария:

  1. А надо было только задать соответствующий контекст для файлов зон:

    # pwd
    /var/named/chroot/etc
    # chcon system_u:object_r:named_zone_t:s0 named/master/*.ru

    После чего Bind вполне запускается при:
    # getenforce
    Enforcing

    ЗЫ: Привет от родственников ☺

    ЗЗЫ: С записью журналов проблем быть не должно.
    Надо лишь читать конфиги. Комментарий в /etc/sysconfig/named как раз описывает проблему.

    ОтветитьУдалить