Estou executando o OS X Mavericks e uso o firewall "filtro de pacotes". No entanto, parece que “pflogd” não está disponível.
Descobri que você pode criar uma interface chamada pflog0 e então usar o tcpdump para ver os pacotes que o pf descartou. No entanto, gostaria de ter um arquivo de log.
Minha solução foi fazer um launchd plist e criar essa interface na inicialização, iniciar o tcpdump (como root) e registrar tudo em /var/pf.log; funciona perfeitamente.
No entanto, estou um pouco preocupado em ter o tcpdump rodando o dia todo no modo root em segundo plano, devo?
Obrigado
Responder1
Não conheço o OS X Mavericks, mas testei-o no OS X Mountain (não na inicialização):
Editar arquivo/etc/sudoers
Adicione o seguinte para evitar a solicitação de senha:
youruser ALL=(ALL) NOPASSWD: /usr/sbin/tcpdump
Inicie o tcpdump em segundo plano e registre o arquivo de captura (o ponto principal aqui é o &
que faz o comando ser executado em segundo plano):
sudo tcpdump -i pflog0 -s 0 -B 524288 -w ~/Desktop/myfile.pcap &
Para parar o tcpdump, mate-o recuperando seu ID de processo:
ps -ef
sudo kill pid
Para abrir o arquivo de captura:
tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/myfile.pcap
Responder2
Descobri que o tcpdump não requer sudo ao ouvir em uma interface (sem opções especiais), pensei que sim ...
De qualquer forma, posso simplesmente criar a interface com um script em /Library/LaunchDaemons e iniciar o tcpdump com outro script em ~/Library/LaunchAgents e ativar o log. Tudo funciona bem :)