리눅스에서 모든 ping 응답을 기록하는 방법

리눅스에서 모든 ping 응답을 기록하는 방법

/var/log/audit/audit.logLinux(특히 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 rootPID를 식별한 다음 kill -9 <PID>해당 프로세스에 대해 실행합니다.

관련 정보