В Debian 7, который пользователь bind9 использует для запуска демона?

conntrackd пакет идет с демоном, который регистрирует все соединения, прослеженные брандмауэром наряду с продолжительностью и объемом трафика, которым обмениваются оба пути. С другой стороны, Вы могли добавить, что брандмауэр постановляет, что регистрируют все новое установление соединений и разрушение или идут для более включенных решений, уже любят предложенный, или полноценные решения IDS (взгляд, например, securityonion).

Для входа запросов DNS и их ответов можно или установить собственный локальный сервер DNS и настроить его, чтобы зарегистрировать каждый запрос или установить снифферов то сканирование трафик DNS. Брат IDS сделал бы это в дополнение к отслеживанию каждого соединения, Запроса HTTP, сессий SMTP...

1
12.02.2014, 09:25
2 ответа

Прежде названный чтениями это - конфигурационный файл, это отбрасывает все кроме необходимых возможностей. Возможность, которая позволяет корню обходить все проверки разрешения файла, является CAP_FOWNER - видят возможности (7), если Вам любопытно. При проверке связывать исходного кода в bin/named/unix/os.c Вы найдете функции linux_initialprivs () linux_minprivs () и другие ответственный за это поведение.

Так, да, Ваш беспорядок понятен. uid 0 будет обычно иметь CAP_FOWNER, и таким образом процесс, действующий в качестве uid 0, смог бы работать беспрепятственный большей частью доступа к файлу и проверок разрешения. В этом случае свяжите, безвозвратно отбрасывает все полномочия, не явно необходимые для операции. По-моему, это - очень разумное и благоразумное действие для демона, чтобы сделать.

Для предотвращения проблемы рассмотрите изменение полномочий на том конфигурационном файле только к 0400, который позволяет uid=0 читать файл, не полагаясь на CAP_FOWNER.

4
27.01.2020, 23:15

Конечно, это будет сбои, так как Вы запретили полномочия чтения/записи/выполнения на /etc/bind/named.conf. Попытайтесь использовать chmod ugo+r /etc/bind/named.conf && chown root /etc/bind/named.conf и попробуйте еще раз.

Объяснение, почему

Давайте посмотрим как именованные чтения файл.

sudo strace -f /usr/sbin/named -fg -d 10 2> named

Это покажет все файлы перекличек, которые назвали/связали, делает. Теперь обработка:

grep conf named                                  
read(5, "#\n# OpenSSL example configuratio"..., 4096) = 4096
write(2, "08-Feb-2014 14:01:42.372 built w"..., 39108-Feb-2014 14:01:42.372 built with '--prefix=/usr' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--sysconfdir=/etc/bind' '--localstatedir=/var' '--enable-threads' '--enable-largefile' '--with-libtool' '--enable-shared' '--enable-static' '--with-openssl=/usr' '--with-gssapi=/usr' '--with-gnu-ld' '--with-geoip=/usr' '--enable-ipv6' 'CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2'
[pid 25348] write(2, "08-Feb-2014 14:01:42.395 loading"..., 7508-Feb-2014 14:01:42.395 loading configuration from '/etc/bind/named.conf'
[pid 25348] open("/etc/bind/named.conf", O_RDONLY|O_LARGEFILE) = -1 EACCES (Permission denied)
[pid 25348] write(2, "08-Feb-2014 14:01:42.396 open: /"..., 7108-Feb-2014 14:01:42.396 open: /etc/bind/named.conf: permission denied
[pid 25348] write(2, "08-Feb-2014 14:01:42.399 load_co"..., 6308-Feb-2014 14:01:42.399 load_configuration: permission denied
[pid 25348] write(2, "08-Feb-2014 14:01:42.400 loading"..., 6608-Feb-2014 14:01:42.400 loading configuration: permission denied

Названные попытки сделать прослушивание как только для чтения и сбои с -1 EACCES так как файл не имеет полномочий чтения. Это документируется в открытую () страницы руководства:

EACCES

Поисковое разрешение отклонено на компоненте префикса пути, или файл существует, и полномочия, указанные oflag, отклонены, или файл не существует и пишет, что разрешение отклонено для родительского каталога файла, который будет создан, или O_TRUNC указан, и разрешение записи отклонено.

Сводка: тот апач или любые другие работы процесса не подразумевают, что связывают/называют, будет.

BTW, выполнение связывает, поскольку корень является излишеством и не необходим.

2
27.01.2020, 23:15
  • 1
    я сделал chmod -R 000 /etc/apache2 и apache2 не жалуется. –  Howard 08.02.2014, 18:55
  • 2
    загрузки, отклоненного", никогда не происходит с пользователем root, когда это пытается считать файл. Linux не мешает корню читать любой файл в файловой системе, какое разрешение файл имеет. Свяжите демона, или сценарий демона, вероятно, переключил пользователя так или иначе, и это - то, из чего я хотел бы получить ответ. –  Howard 08.02.2014, 19:05
  • 3
    Без дополнительных мер безопасности корень может считать любой файл. –  Ricky Beam 09.02.2014, 00:00
  • 4
    Нет это не делает. ПО УМОЛЧАНИЮ корень может открыть любой файл. ---------- 1 root root 0 Feb 8 19:29 foo -> open("foo", O_RDONLY) = 3 –  Ricky Beam 09.02.2014, 02:31
  • 5
    @Braiam, (я отправил ответ, но я думал, что добавлю этот лакомый кусочек здесь) любой процесс с возможностями (7) CAP_FOWNER может обойти большинство всех тестов разрешения файловой системы. Базовая часть логики, кажется, находится в ядре в функции inode_owner_or_capable () в fs/inode.c источника ядра. Обычно, uid 0 процессов имеют CAP_FOWNER, но bind9 конкретно отбрасывает то полномочие при запуске, прежде чем это прочитает файл конфигурации. –  etherfish 12.02.2014, 21:43

Теги

Похожие вопросы