Syslog Server unter 10.4 Tiger / syslogd

Dieses Thema im Forum "MacUser Tipps und Tricks" wurde erstellt von raubsauger, 13.08.2005.

  1. raubsauger

    raubsauger Thread Starter MacUser Mitglied

    Beiträge:
    115
    Zustimmungen:
    0
    MacUser seit:
    09.04.2004
    Hallo Community,

    hab mich letzte Nacht an mein Powerbook gesetzt um syslogs von meinen Routern, Firewalls und managed Switches auf einem Mac zu sammeln und zu sichten. Läuft nun bestens, deshalb mein HowTo für Euch:

    HOWTO

    Syslog Server (syslogd) unter OSX 10.4 Tiger
    13.08.2005 |


    1. Aktivieren des Empfangs externer syslogs von Routern, Switches oder anderen Macs

    Im Terminal die Starteinstellung für syslogd sichern und dann erweitern (/System/Library/LaunchDaemons/com.apple.syslogd.plist)

    Zuerst ein Backup:

    sudo cp /System/Library/LaunchDaemons/com.apple.syslogd.plist com.apple.syslogd.plist.bak

    Mit pico die com.apple.syslogd.plist Datei öffnen:

    sudo pico /System/Library/LaunchDaemons/com.apple.syslogd.plist

    Suchen nach:

    <string>/usr/sbin/syslogd</string>

    direkt darunter einfügen:

    <string>-u</string>

    dann speichern (ctrl-o) und pico beenden (ctrl-x)

    Dies sagt dem Prozess am UDP Port 514 Daten anzunehmen. Also falls aktiviert die OSX Firewall für diesen Port öffnen.

    Nun den Mac neu starten, oder den Prozess beenden und mit den erweiterten Starteinstellungen neu starten:

    sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sudo launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

    2. Funktion nach cron-Neustart wiederherstellen

    Stop und Start noch in eine cron-datei eintragen, die vom Script /etc/periodic/daily/500.daily automatisch aufgerufen wird

    sudo pico /etc/daily.local

    Hier eintragen:

    launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
    sleep 1
    launchctl load /System/Library/LaunchDaemons/com.apple.syslogd.plist

    speichern (ctrl-o) und pico beenden (ctrl-x)

    3. Logdateien anlegen und zuordnen

    Jedes externe Gerät sollte in eine eigene Log-Datei schreiben, diese legen wir an mit:

    sudo touch /var/log/meingerät.log (z.b. firewall_home.log)

    Jetzt die Preference-Datei des syslogd sichern, und bekannt geben was in den Logfile eingefügt werden soll:

    sudo cp /etc/syslog.conf syslog.conf.bak
    sudo pico /etc/syslog.conf

    Am Ende der conf einfügen:

    local1.* /var/log/meingerät.log (z.b. firewall_home.log)

    speichern (ctrl-o) und pico beenden (ctrl-x)

    Möglich ist local1 bis local7, nach dem Punkt steht der Filter, * für alles, mit z.b. err / emerg / notice / info / crit /alert können die Logs vor dem Speichern gefiltert werden. Zwei tabs und dann der Pfad zur Logdatei.

    Am externen Gerät die Rechner-IP Nummer als Ziel für das Log eingeben, von local1 bis local7 passend zum Eintrag in der syslog.conf einstellen und speichern, ggf. neustarten.

    4. Logrotation einrichten

    Im Script /etc/periodic/weekly/500.weekly werden die neu angelegten Logfiles zur Rotation mit eingetragen. Auch dieses Script killt den syslogd, den wir mit unseren Starteinstellungen anschließend wieder starten. Das Terminalfenster breit aufziehen und:

    sudo pico /etc/periodic/weekly/500.weekly

    Suchen nach

    cd /var/log
    for i in ftp.log lookupd.log lpr.log mail.log netinfo.log hwmond.log ipfw.log ppp.log usw

    hier die eigenen Logfiles anfügen, speichern und pico beenden.

    Dieses Script ruft am Ende /etc/weekly.local auf, mit dem wir den syslogd wieder starten:

    sudo cp /etc/daily.local /etc/weekly.local

    5. Logfiles sichten

    Logifiles dann per Terminal (tail -f /var/log/meingerät.log) aufrufen
    oder im Finder mit dem Tool Konsole ansehen.


    thx to all freaks on many websites who helped me to learn unix / shell, syslogging and more.


    Hoffe jemand kann das brauchen!

    ..verd.., das weekly script hat nach dem Logrotate den syslogd neugestartet, ohne die -u Option. Hab das gefixxt und das Howto ergänzt.
     
    Zuletzt bearbeitet: 13.08.2005
  2. theHobbit

    theHobbit MacUser Mitglied

    Beiträge:
    725
    Zustimmungen:
    6
    MacUser seit:
    07.08.2005
    Hallo raubsauger,

    kann das sehr wohl brauchen :) danke für's HOWTO!

    Möchte den Log von meinem Router mal genauer überwachen (Siemens SE515 dsl), aber da habe ich leider nicht die Möglichkeit die Einstellung "localx" zu machen, da kann ich nur die IP und den Port des Servers angeben.

    Sonst habe ich alles exact so eingetragen wie in Deinem HOWTO, aber in der Log-Datei erscheint nichts. Kann ich den syslogd irgendwie dazu überreden die Log-Daten anzunehmen, obwohl ich im Router nicht die Einstellung localx habe?
     
    Zuletzt bearbeitet: 14.01.2006
  3. raubsauger

    raubsauger Thread Starter MacUser Mitglied

    Beiträge:
    115
    Zustimmungen:
    0
    MacUser seit:
    09.04.2004
    Nachdem meine Router und Switches das können hab ich mich damit nicht befassen müssen. Denke Du musst rausfinden welche Voreinstellung der Router hat. Evtl. kann man ja auch am syslog-server über local* alles was reinkommt sammeln?
     
  4. theHobbit

    theHobbit MacUser Mitglied

    Beiträge:
    725
    Zustimmungen:
    6
    MacUser seit:
    07.08.2005
    Danke erstmal für die schnelle Antwort!

    Hab jetzt gesehen, dass das komplette Router-Log mit in /var/log/system.log geschrieben wird. Werde mich noch was damit befassen.
     
  5. raubsauger

    raubsauger Thread Starter MacUser Mitglied

    Beiträge:
    115
    Zustimmungen:
    0
    MacUser seit:
    09.04.2004
    Sie mal in der /etc/syslog.conf nach ob da ein local* Eintrag drin ist. Wenn nicht verwendet der Router die gleiche localX.* wie das syslog. Genial von den Programmierern dieses Teils. Kann keiner so brauchen...
     
  6. theHobbit

    theHobbit MacUser Mitglied

    Beiträge:
    725
    Zustimmungen:
    6
    MacUser seit:
    07.08.2005
    Es sieht so aus dass Du recht hast ...
    es ist nur ein local0.* Eintrag drin, d.h. der Router mischt sein Log mit in mein System wenn ich die Überwachung starte...

    von mir ist nur die letzte Zeile der /etc/syslog.conf, sonst hab ich darin nichts geändert.
    Code:
    # The authpriv log file should be restricted access; these
    # messages shouldn't go to terminals or publically-readable
    # files.
    authpriv.*;remoteauth.crit                    /var/log/secure.log                                     
    lpr.info                                      /var/log/lpr.log
    mail.*                                        /var/log/mail.log
    ftp.*                                         /var/log/ftp.log
    netinfo.err                                   /var/log/netinfo.log
    install.*                                     /var/log/install.log
    install.*                                     @127.0.0.1:32376
    local0.*                                      /var/log/ipfw.log
    
    *.emerg                                       *
    
    local1.*                                      /var/log/my_router.log                                                               
    
     
  7. raubsauger

    raubsauger Thread Starter MacUser Mitglied

    Beiträge:
    115
    Zustimmungen:
    0
    MacUser seit:
    09.04.2004
    Da kannst Du wohl nur noch suchen ob sich der Siemens per Telnet einstellen lässt. Falls er eine editierbare autoexec.net oder sowas hat.

    Kauf beim nächsten Mal einen Zyxel.
     
  8. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Hallo raubsauger - schöne kleine Anleitung; übersichtlich und informativ.
    Gratuliere.

    Ich hätte noch zwei Anmerkungen zu machen.
    1. Anstatt die launchctl unload - load Kommandos durch ein "sleep 1" zu trennen, würde ich vorschagen die beiden durch && zu verknüpfen.
    Code:
    launchctl unload ... && launchctl load ...
    So wird das load Kommando sofort ausgeführt nachdem das unload erfolgreich abgeschlossen ist.
    Bei den aktuellen 10.4. Versionen ist das "reloaden" glaube ich gar nicht mehr notwendig.

    2. Man sollte vielleicht noch erwähnen, dass die Option -u beim syslogd für `unsecure' steht. Nicht ganz zu Unrecht, da sie in bestimmten Situationen für einen DoS Angriff missbraucht werden kann.
     
  9. raubsauger

    raubsauger Thread Starter MacUser Mitglied

    Beiträge:
    115
    Zustimmungen:
    0
    MacUser seit:
    09.04.2004
    Naja, nahezu jeder offener Eingang kann für einen Angriffsversuch verwendet werden, und was sollten wir sonst tun, um die Logs zu sammeln? Fühl mich da zumindest mit dem Mac sicherer als einen fertigen Syslogserver unter Windoof einzurichten.

    Hatte in einer Anleitung gelesen das das sleep commando sinnvoll ist um nicht neu zu starten bevor wirklich alles gestoppt wurde...
     
  10. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    Ja, aber nicht immer ganz so einfach wie dieser.
    Ich wollte Dich auch nicht kritisieren, sondern das einfach nochmal ins Bewustsein bringen.
     
Die Seite wird geladen...

Diese Seite empfehlen