프로세스가 생성하는 모든 나가는 연결을 파일로 기록하는 방법이 있습니까? 나는 알고 netstat
있지만 그 기간 동안 정보를 실행하고 기록하는 것이 아니라 특정 시점의 스냅 샷에 가깝습니다.
IP 또는 호스트 이름, 포트 및 연결하는 프로세스 만 필요합니다.
프로세스가 생성하는 모든 나가는 연결을 파일로 기록하는 방법이 있습니까? 나는 알고 netstat
있지만 그 기간 동안 정보를 실행하고 기록하는 것이 아니라 특정 시점의 스냅 샷에 가깝습니다.
IP 또는 호스트 이름, 포트 및 연결하는 프로세스 만 필요합니다.
답변:
Linux에서는 네트워크 연결을 설정하려는 모든 시도를 기록 하도록 감사 서브 시스템 을 설정할 수 있습니다 . 감사 서브 시스템에 대한 정보는 auditctl
매뉴얼 페이지 또는 이 학습서 또는 이 사이트의 다른 예제를 읽으십시오 . auditd
필요한 경우 배포 패키지를 설치 한 다음
auditctl -A exit,always -S connect
로그는 /var/log/audit/audit.log
내가 아는 모든 배포판에 있습니다. 당신은 또한 수 를 검색 하여 ausearch
.
auditctl -d exit,always -S connect
less /var/log/audit/audit.log
커스텀 커널을 설치할 수 있다면 SystemTap을 살펴 봐야한다 . 네트워크 활동을 추적하는 방법 에는 많은 예가 있습니다.
Linux에서는이 ip_conntrack
를 수행 하는 데 사용할 수 있습니다 . 방화벽 / NAT 박스에 의해 관리 될 이상한 행동 프로토콜 (FTP와 같은)의 연결을 모니터링하기 위해 일반적으로 사용되는 연결 추적 모듈입니다.
modprobe ip_conntrack
cat /proc/net/ip_conntrack
의사 파일을 grep하여 확립 된 연결을 확인하고 소스 IP가 상자에서 언제 시작되는지 확인하십시오.
watch -n 2 netstat
그 동안 과 같은 일을 할 수는 있지만 적절한 해결책은 아닙니다.