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 :)