Estoy ejecutando OS X Mavericks y uso el firewall de "filtro de paquetes". Sin embargo, parece que "pflogd" no está disponible.
Descubrí que puedes crear una interfaz llamada pflog0 y luego usar tcpdump para ver los paquetes que pf ha descartado. Sin embargo, me gustaría tener un archivo de registro.
Mi solución fue hacer un plist de lanzamiento y crear esta interfaz al arrancar, iniciar tcpdump (como root) y registrar todo en /var/pf.log; Funciona perfectamente.
Sin embargo, estoy un poco preocupado por tener tcpdump ejecutándose todo el día en modo raíz en segundo plano, ¿debería hacerlo?
Gracias
Respuesta1
No conozco OS X Mavericks pero lo probé en OS X Mountain (no en el arranque):
Editar archivo/etc/sudoers
Agregue lo siguiente para evitar solicitar la contraseña:
youruser ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump
Inicie tcpdump en segundo plano e inicie sesión para capturar el archivo (el punto principal aquí es &
que hace que el comando se ejecute en segundo plano):
sudo tcpdump -i pflog0 -s 0 -B 524288 -w ~/Desktop/myfile.pcap &
Para detener tcpdump, elimínelo recuperando su ID de proceso:
ps -ef
sudo kill pid
Para abrir el archivo de captura:
tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/myfile.pcap
Respuesta2
Descubrí que tcpdump no requiere sudo cuando escucha en una interfaz (sin opciones especiales), pensé que sí...
De todos modos, puedo crear la interfaz con un script en /Library/LaunchDaemons e iniciar tcpdump con otro script en ~/Library/LaunchAgents y habilitar el registro. Todo funciona bien :)