Paketfilter-Protokollierung

Paketfilter-Protokollierung

Ich verwende OS X Mavericks und verwende die Firewall „Paketfilter“. Allerdings scheint „pflogd“ nicht verfügbar zu sein.

Ich habe herausgefunden, dass man eine Schnittstelle namens pflog0 erstellen und dann tcpdump verwenden kann, um die von pf gelöschten Pakete anzuzeigen. Ich hätte jedoch gerne eine Protokolldatei.

Meine Lösung bestand darin, eine Launchd-Plist zu erstellen und diese Schnittstelle beim Booten zu erstellen, tcpdump (als Root) zu starten und alles in /var/pf.log zu protokollieren. Es funktioniert perfekt.

Allerdings mache ich mir ein paar Sorgen darüber, dass tcpdump den ganzen Tag im Root-Modus im Hintergrund läuft. Sollte ich das tun?

Danke

Antwort1

Ich kenne OS X Mavericks nicht, aber ich habe es auf OS X Mountain getestet (nicht beim Booten):

Datei bearbeiten/etc/sudoers

Fügen Sie Folgendes hinzu, um die Kennwortabfrage zu verhindern:

youruser ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump

Starten Sie tcpdump im Hintergrund und protokollieren Sie in einer Capture-Datei (der wichtigste Punkt hierbei ist, &dass der Befehl im Hintergrund ausgeführt wird):

sudo tcpdump -i pflog0 -s 0 -B 524288 -w ~/Desktop/myfile.pcap &

Um tcpdump zu stoppen, beenden Sie es, indem Sie seine Prozess-ID abrufen:

ps -ef
sudo kill pid

So öffnen Sie die Erfassungsdatei:

tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/myfile.pcap

Antwort2

Ich habe festgestellt, dass tcpdump beim Abhören einer Schnittstelle kein sudo erfordert (keine speziellen Optionen), ich dachte, es täte das ...

Wie auch immer, ich kann die Schnittstelle einfach mit einem Skript in /Library/LaunchDaemons erstellen und tcpdump mit einem anderen Skript in ~/Library/LaunchAgents starten und die Protokollierung aktivieren. Alles funktioniert gut :)

verwandte Informationen