Wie wird die Protokollierungsklausel für ein chroot-BIND festgelegt?

Wie wird die Protokollierungsklausel für ein chroot-BIND festgelegt?

Diese Frage ähnelt ein wenigDieses hieraber die Antwort, die am meisten zu helfen schien, ist Ubuntu-spezifisch und läuft auf OSX 10.6.8.

Mit dieser Protokollierungsklausel:

logging {
         category default {
                 _default_log;
         };

         channel _default_log  {
                 file "/var/chroot/named/var/log/query.log";
                 severity info;
                 print-time yes;
         };
 };

Ich erhalte diesen Fehler im Systemprotokoll:

isc_log_open '/var/chroot/named/var/log/query.log' fehlgeschlagen: Datei nicht gefunden

Dieser Artikel über die Protokollierungsklausel von bind9 in der Conf-Dateisagt:

Datei „Pfadname“ ist eine in Anführungszeichen gesetzte Zeichenfolge, die den absoluten Pfad zur Protokollierungsdatei definiert, z. B. „/var/log/named/namedlog.log“.

Aber die Conf befindet sich innerhalb des Jails unter /var/chroot/named/etc/named.confund ich möchte, dass das Protokoll entweder in geschrieben wird /var/chroot/named/var/log/query.log, das sich innerhalb des Jails befindet, oder /Library/Logs/named.login das außerhalb des Jails (und dorthin zeigte das Protokoll vor dem Chroot). Was auch immer ich zum Laufen bekomme, ist in Ordnung.

Jede Hilfe wird sehr geschätzt!

Antwort1

Da Ihr Bind in einem Jail-Chroot ausgeführt wird, sollte Ihr Pfad relativ dazu sein.

Für Ihr chroot-Bind /beginnt das Verzeichnis bei /var/chroot/named, daher sollten Sie den Dateinamen in ändern /var/log/query.logund sicherstellen, dass Bind die Schreibberechtigung für hat /var/log.

Sie können Ihre Protokolle auch in beide Dateien schreiben lassen. Wenn die obige Änderung funktioniert, können Sie die beiden Dateien ( /var/chroot/named/var/log/query.logund /Library/Logs/named.log) außerhalb des Chroots mit dem folgenden Befehl zu einer einzigen verknüpfen:

$ ln /var/chroot/named/var/log/query.log /Library/Logs/named.log

Dadurch erhalten Sie an beiden Standorten den gleichen Inhalt. Beachten Sie jedoch, dass das Entfernen einer Datei nicht die andere entfernt, das Leeren jedoch beide. Wenn Sie also logrotateoder ein ähnliches Programm verwenden, müssen Sie beide Dateien rotieren und sicherstellen, dass der Link jedes Mal neu erstellt wird.

Antwort2

Ändern Sie den Dateinamen in der Direktive in /var/log/query.log… Sie befinden sich in einem chroot-Bereich, dessen Stammverzeichnis /var/chroot/named ist.

verwandte Informationen