발생하는 발신 연결 로깅 실행하고 기록하는

프로세스가 생성하는 모든 나가는 연결을 파일로 기록하는 방법이 있습니까? 나는 알고 netstat있지만 그 기간 동안 정보를 실행하고 기록하는 것이 아니라 특정 시점의 스냅 샷에 가깝습니다.

IP 또는 호스트 이름, 포트 및 연결하는 프로세스 만 필요합니다.



답변

Linux에서는 네트워크 연결을 설정하려는 모든 시도를 기록 하도록 감사 서브 시스템 을 설정할 수 있습니다 . 감사 서브 시스템에 대한 정보는 auditctl매뉴얼 페이지 또는 이 학습서 또는 이 사이트의 다른 예제를 읽으십시오 . auditd필요한 경우 배포 패키지를 설치 한 다음

auditctl -A exit,always -S connect

로그는 /var/log/audit/audit.log내가 아는 모든 배포판에 있습니다. 당신은 또한 수 를 검색 하여 ausearch.


답변

커스텀 커널을 설치할 수 있다면 SystemTap을 살펴 봐야한다 . 네트워크 활동을 추적하는 방법 에는 많은 예가 있습니다.


답변

Linux에서는이 ip_conntrack를 수행 하는 데 사용할 수 있습니다 . 방화벽 / NAT 박스에 의해 관리 될 이상한 행동 프로토콜 (FTP와 같은)의 연결을 모니터링하기 위해 일반적으로 사용되는 연결 추적 모듈입니다.

modprobe ip_conntrack
cat /proc/net/ip_conntrack

의사 파일을 grep하여 확립 된 연결을 확인하고 소스 IP가 상자에서 언제 시작되는지 확인하십시오.


답변

tcpdump아웃 바운드 인터페이스 를 사용 하여 아웃 바운드 SYN요청을 살펴볼 것 입니다.

정말 모험적이라고 생각 되면 프로그램 실행을 추적하는 동안 다음과 같은 유틸리티를 만들 strace거나 truss모든 connect시스템 호출을 보고 할 수 있지만 약간 더 위험하며 멀티 스레드 프로세스를 처리 할 때 단점이 있습니다.


답변