syslog-ng auf /dev/tty9 loggen: permission denied und "apparmor"
Hi, ich möchte das Verhalten von "syslog" mit *.* /dev/tty9 mit syslog-ng (ist bei SuSE 10.2 default). Ich habe an /etc/syslog-ng/syslog-ng.conf angehängt: destination consoleall { file("/dev/tty9"); }; log { source(src); destination(consoleall); }; bekomme aber [...] syslog-ng[1234]: Cannot open file /dev/tty9 for writing (Permission denied) im syslog. /dev/tty10 geht. Permissions sind: # ls -l /dev/tty9 /dev/tty10 crw--w---- 1 root tty 4, 10 Dec 27 22:45 /dev/tty10 crw--w---- 1 root tty 4, 9 Dec 27 2006 /dev/tty9 gleich, ich hab: /var/log/audit/audit.log:type=APPARMOR msg=audit(1167250613.744:6): REJECTING w access to /dev/tty9 (syslog-ng(5279) profile /sbin/syslog-ng active /sbin/syslog-ng) Warum loggt das nicht über syslog? Wäre das nicht besser, wenigstens für Fehler? Ist doch so eine fiese Falle! In der manpage wird suggeriert, das das ginge. Wie man das einstellt, hab ich auf die Schnelle nicht gefunden. Da gibts Windows-INI-Style config files (aber mit "#" statt ";" als Kommentar) und XML config files; man reports.conf geht nicht (das scheint das File zu sein, jedenfalls enthält es /var/log/ Referenzen, es ist aber auch im XML nicht dokumentiert). Jemand ein Beispiel zur Hand? Jedenfalls dachte ich, ich müsste noch tty10 Einstellungen in tty9 Einstellungen kopieren, in dem ich was in /etc/apparmor anpasse, aber ich finde da nichts von syslog-ng oder tty10: thinkpadw:/etc/apparmor # find . -type f | xargs grep tty10 thinkpadw:/etc/apparmor # find . -type f | xargs grep syslog-ng thinkpadw:/etc/apparmor # Was mache ich falsch? Ach, und BTW: thinkpadw:/etc/apparmor # man -k apparmor apparmor: nothing appropriate. "man apparmor" geht. Was mach ich hier falsch? Wie kriege ich nun alle System Log Meldungen nach /dev/tty9 (also auf Alt-F9)? oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 27. Dezember 2006 23:08 schrieb Steffen Dettmer:
(...). Warum loggt das nicht über syslog? Wäre das nicht besser, wenigstens für Fehler? Ist doch so eine fiese Falle!
Es benutzt halt auditd. Wofür das da ist bzw. was man damit macht, kannst du in "man auditd" oder /usr/share/doc/packages/audit/README nachlesen.
In der manpage wird suggeriert, das das ginge. Wie man das einstellt, hab ich auf die Schnelle nicht gefunden.
Zumindest wird es unter SL 10.1 /nicht/ suggeriert: | If the userland auditd is not running, the kernel will send audit events | to klogd; klogd will send the messages to syslog, which will log the | messages with the KERN facility. Thus, REJECTING and PERMITTING messages | may go to either /var/log/audit/audit.log or /var/log/messages, depending | upon local configuration.
(...). Jedenfalls dachte ich, ich müsste noch tty10 Einstellungen in tty9 Einstellungen kopieren, in dem ich was in /etc/apparmor anpasse, aber ich finde da nichts von syslog-ng oder tty10:
thinkpadw:/etc/apparmor # find . -type f | xargs grep tty10 thinkpadw:/etc/apparmor # find . -type f | xargs grep syslog-ng thinkpadw:/etc/apparmor #
Was mache ich falsch?
Du suchst wohl im falschen Verzeichnis. Probier mal grep -r tty /etc/apparmor.d/ Aber auch ohne grep sollte recht klar sein, daß die entsprechenden Einstellungen in /etc/apparmor.d/sbin.syslogd liegen, weil das sagt dir dein Ausschnitt aus dem audit.log netterweise auch. Allerdings sehe ich in dem syslog-Profil von SL 10.1 nur eine Beschränkung auf tty*. Daher sollte tty9 auch funktionieren. Was steht denn bei dir in dem Profil zu tty?
Ach, und BTW: thinkpadw:/etc/apparmor # man -k apparmor apparmor: nothing appropriate. "man apparmor" geht. Was mach ich hier falsch? (...).
Wahrscheinlich nix, unter SL 10.1 kommt da einiges. Gruß Jan -- When in doubt, don't bother. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hi, danke für Deine Mail, das wars. :) * Jan Ritzerfeld wrote on Thu, Dec 28, 2006 at 11:36 +0100:
In der manpage wird suggeriert, das das ginge.
Zumindest wird es unter SL 10.1 /nicht/ suggeriert: Thus, REJECTING and PERMITTING messages | may go to either /var/log/audit/audit.log or /var/log/messages, depending | upon local configuration.
Doch, da steht doch: können nach /var/log/messages kommen, je nach lokaler Konfiguration? Macht das nicht mehr Sinn, die Fehler an einer Stelle zu haben, anstatt hunderte Files durchsuchen zu müssen?
thinkpadw:/etc/apparmor # find . -type f | xargs grep tty10 Was mache ich falsch?
Du suchst wohl im falschen Verzeichnis. Probier mal grep -r tty /etc/apparmor.d/
Ach so, na super loooool Dachte, das läge in /etc/apparmor/profiles/extras (so liegen ja viele solcher Files). Meiner Meinung nach ein Bug, dass /etc/apparmor ein Verzeichnis gibt, wenn ein /etc/apparmor.d existiert. Soweit ich das kannte, machte man die .d Verzeichnisse, wenn es schon/optional/alternativ den gleichen Namen als reguläres File gibt. Hier beides als Verzeichnisse zu machen, ist eine neue schlechte Idee, oder? Wie ist hier die Regel? Warum liegt z.B. portmap in /etc/apparmor/profiles/?
Aber auch ohne grep sollte recht klar sein, daß die entsprechenden Einstellungen in /etc/apparmor.d/sbin.syslogd liegen, weil das sagt dir dein Ausschnitt aus dem audit.log netterweise auch.
(Nein, es behauptet das Profil wäre "/sbin/syslog-ng", was natürlich nicht der Profildateiname ist ;))
Allerdings sehe ich in dem syslog-Profil von SL 10.1 nur eine Beschränkung auf tty*. Daher sollte tty9 auch funktionieren. Was steht denn bei dir in dem Profil zu tty?
Bei mir stand "/dev/tty10 w" drin. Hab tty9 hinzugefügt, rcapparmor reload und geht. Jetzt mal hoffen, dass die Files nicht automatisch überschrieben werden... Danke! oki, Steffen -- Dieses Schreiben wurde maschinell erstellt, es trägt daher weder Unterschrift noch Siegel. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 28. Dezember 2006 15:12 schrieb Steffen Dettmer:
danke für Deine Mail, das wars. :)
* Jan Ritzerfeld wrote on Thu, Dec 28, 2006 at 11:36 +0100:
In der manpage wird suggeriert, das das ginge.
Zumindest wird es unter SL 10.1 /nicht/ suggeriert: Thus, REJECTING and PERMITTING messages
| may go to either /var/log/audit/audit.log or /var/log/messages, | depending upon local configuration.
Doch, da steht doch: können nach /var/log/messages kommen, je nach lokaler Konfiguration?
Es steht aber auch da, wann das passiert: "If the userland auditd is not running, the kernel will send audit events to klogd; klogd will send the messages to syslog, (...).".
Macht das nicht mehr Sinn, die Fehler an einer Stelle zu haben, anstatt hunderte Files durchsuchen zu müssen?
Kannst ja den auditd deaktivieren, dann landet es da wo du es erwartest. Und so wie ich das sehe, ist auditd keine SUSE-Erfindung. Dazu gibt es dann auch Tools zum Reports erstellen oder durchsuchen der audit-Logs, sieht "man auditd".
thinkpadw:/etc/apparmor # find . -type f | xargs grep tty10 Was mache ich falsch?
Du suchst wohl im falschen Verzeichnis. Probier mal grep -r tty /etc/apparmor.d/
Ach so, na super loooool
Dachte, das läge in /etc/apparmor/profiles/extras (so liegen ja viele solcher Files).
man apparmor: | Profiles are traditionally stored in files in /etc/apparmor.d/ under | filenames with the convention of replacing the / in pathnames with . | (except for the root /) so profiles are easier to manage (e.g. | the /usr/sbin/nscd profile would be named usr.sbin.nscd).
Meiner Meinung nach ein Bug, dass /etc/apparmor ein Verzeichnis gibt, wenn ein /etc/apparmor.d existiert. Soweit ich das kannte, machte man die .d Verzeichnisse, wenn es schon/optional/alternativ den gleichen Namen als reguläres File gibt. Hier beides als Verzeichnisse zu machen, ist eine neue schlechte Idee, oder?
Gute Frage. Mir fällt aber so direkt auch keine bessere Möglichkeit ein.
Wie ist hier die Regel? Warum liegt z.B. portmap in /etc/apparmor/profiles/?
Bei der SL 10.1 sieht das wohl noch ein bißchen anders aus, ich habe da noch eine weiteres Unterverzeichnis mit einer recht aufschlußreichen README-Datei: /etc/apparmor/profiles/extras/README | The profiles in this directory are not turned on by default because they | are not as mature as the profiles in /etc/apparmor.d/.
Aber auch ohne grep sollte recht klar sein, daß die entsprechenden Einstellungen in /etc/apparmor.d/sbin.syslogd liegen, weil das sagt dir dein Ausschnitt aus dem audit.log netterweise auch.
(Nein, es behauptet das Profil wäre "/sbin/syslog-ng", was natürlich nicht der Profildateiname ist ;))
Stimmt! Sehr interessant ...
Allerdings sehe ich in dem syslog-Profil von SL 10.1 nur eine Beschränkung auf tty*. Daher sollte tty9 auch funktionieren. Was steht denn bei dir in dem Profil zu tty?
Bei mir stand "/dev/tty10 w" drin. Hab tty9 hinzugefügt, rcapparmor reload und geht.
Sehr schön.
Jetzt mal hoffen, dass die Files nicht automatisch überschrieben werden...
Bestimmt! :-P
Danke!
np BTW, Christian hatte Ende August hier mal folgendes geschrieben: Lesetipp: http://en.opensuse.org/Apparmor (oder http://de.opensuse.org/Apparmor) sowie das AppArmor-Handbuch (PDF) unter http://download.opensuse.org/distribution/SL-10.1/inst-source/docu/de/ Für die 10.2 finde ich das AppArmor-Handbuch nicht auf die schnelle. Gruß Jan -- Rust Never Sleeps. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Jan Ritzerfeld
-
Steffen Dettmer