패킷 필터 로깅

패킷 필터 로깅

저는 OS X Mavericks를 실행 중이고 "패킷 필터" 방화벽을 사용하고 있습니다. 그러나 "pflogd"는 사용할 수 없는 것 같습니다.

나는 pflog0이라는 인터페이스를 생성한 다음 tcpdump를 사용하여 pf가 삭제한 패킷을 볼 수 있다는 것을 발견했습니다. 그러나 로그 파일을 갖고 싶습니다.

내 해결책은 launchd plist를 만들고 부팅 시 이 인터페이스를 만들고, tcpdump를 (루트로) 실행하고 모든 것을 /var/pf.log에 기록하는 것이었습니다. 그것은 완벽하게 작동합니다.

그러나 백그라운드에서 루트 모드로 하루 종일 tcpdump를 실행하는 것이 조금 걱정됩니다. 해야 할까요?

감사합니다

답변1

저는 OS X Mavericks를 모르지만 OS X Mountain에서 테스트했습니다(부팅 시 아님).

파일 편집/etc/sudoers

비밀번호를 묻지 않으려면 다음을 추가하세요.

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

백그라운드에서 tcpdump를 시작하고 파일을 캡처하기 위해 기록합니다(여기서 중요한 점은 &명령이 백그라운드에서 실행되도록 하는 것입니다).

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

tcpdump를 중지하려면 프로세스 ID를 검색하여 종료하세요.

ps -ef
sudo kill pid

캡처 파일을 열려면:

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

답변2

인터페이스에서 수신 대기할 때 tcpdump에 sudo가 필요하지 않다는 것을 알았습니다(특별 옵션 없음). 그럴 줄 알았는데...

어쨌든 /Library/LaunchDaemons의 스크립트로 인터페이스를 생성하고 ~/Library/LaunchAgents의 다른 스크립트로 tcpdump를 실행하고 로깅을 활성화할 수 있습니다. 모두 잘 작동합니다 :)

관련 정보