![리눅스에서 모든 ping 응답을 기록하는 방법](https://linux55.com/image/14002/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C%20%EB%AA%A8%EB%93%A0%20ping%20%EC%9D%91%EB%8B%B5%EC%9D%84%20%EA%B8%B0%EB%A1%9D%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
/var/log/audit/audit.log
Linux(특히 RHEL/CentOS 7)에서는 모든 응답을 기록하는 등의 방법이 있습니까 ping
?
네트워크상의 누군가 내 Linux 컴퓨터에 ping을 실행하는 경우 이를 기록하고 나중에 이러한 일이 발생한 시기와 어떤 IP 주소에서 ping을 받았는지 알 수 있는 방법이 있습니까?
답변1
먼저 시스템에 tcpdump가 설치되어 있는지 확인하십시오. 그런 다음 스크립트 파일을 만들고 스크립트 파일에 다음 명령을 추가합니다.
sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo >> ping.log
그런 다음 이 스크립트 파일을 cronjob에 추가하세요.
답변2
그것이 나에게 충분히 효과가 있었던 일을 하기로 결정한 것입니다.
인용하다man tcpdump
tcpdump -U -i eth0 icmp and icmp[icmptype]=icmp-echo -C 10 -w /root/ping_`date '+%Y%m%d_%H%M'`.log &
-w
이는 로그 파일이 시작된 날짜+시간이 로그 파일 이름에 추가되어 바이너리 로그 파일에 저장됩니다 .
-C
로그 파일을 #MB로 제한
이는 -U
파일을 새로 고치게 하고, 새로 고치지 않으면 내용을 볼 수 없기 때문에 중요합니다./루트/ping.logCtrl-C tcpdump를 누를 때까지.
핑 로그는 바이너리 형식으로 읽어야 하며 다음 tcpdump
을 통해 쉽게 수행할 수 있습니다.
tcpdump -r <log file> -tttt
tcpdump -r <log file> -tttt -n
ts
파이프를 통해 moreutils에서 작업을 가져올 수 없습니다 . tcpdump를 통한 표준 출력 리디렉션도 >>
작동하지 않습니다. 이것은 RHEL 7.9에 있습니다.
이 백그라운드 tcpdump 프로세스를 중지하기 위해 ps -ef | grep tcpdump | grep root
PID를 식별한 다음 kill -9 <PID>
해당 프로세스에 대해 실행합니다.