특정 포트를 통해 전송 중인 시스템 찾기

특정 포트를 통해 전송 중인 시스템 찾기

nc -lu <port no.>특정 포트에서 데이터가 수신되고 있는지 확인하기 위해 명령을 사용하고 있습니다 . 전송이 진행 중이면 데이터를 받습니다(그러나 어디서부터 시작해야 할지 모르겠습니다!). 송신기의 IP 주소를 제공할 수 있는 방법이 있나요?
wireshark하지만 nmap가능하다면 더 짧은 경로를 원합니다.
고쳐 쓰다:nc -luv그게 내가 원하는 것 같지만 한 번에 하나의 IP만 표시됩니다. 해당 포트를 통해 전송하는 여러 시스템이 있는지 궁금합니다.

답변1

애플리케이션이 특정 프로토콜을 사용하는 경우 ngrep(패킷 검사용) 또는 tcpdump(포트/호스트 추적용)를 사용할 수 있습니다. 이는 라우터, 프록시 또는 DNS(애플리케이션을 호스트 이름에 매핑할 수 있는 경우)에서 사용량을 추적하는 데 특히 유용합니다.

SSH의 예:

ngrep SSH-2.0 

또는 DNS를 통해 사이트에 액세스합니다(DNS는 캐시될 수 있지만 장기적으로는 누가 사용하고 있는지 확인할 수 있습니다).

ngrep bad.site.org port 53

또는 IP를 통해 연결:

tcpdump host bad.site.org 

마지막으로 -A 옵션과 함께 nmap을 사용하여 포트를 특정 프로토콜에 매핑할 수 있습니다.

nmap -A 192.168.0.0/16 -p 8000-9000  2>/dev/null | grep "Interesting ports on\|open"

nmap이 이를 식별하면 IP, 열린 포트 및 프로토콜/서비스가 표시됩니다.

답변2

특정 네트워크 포트를 사용하는 응용프로그램 nmap은 친구입니다 .

그렇지 않은 경우 일종의 모니터링 또는 배포 소프트웨어가 필요하거나 각 서버에서 스크립트를 실행하여 설치된 항목과 실행 중인 항목을 찾아야 합니다. 예:

ssh servername 'ps -ef|grep appname|grep -v grep'

응용 프로그램이 실제로 실행 중인지 보여줍니다.

답변3

지금까지 게시된 답변이 마음에 듭니다. 다음은 몇 가지 다른 옵션입니다.

nc에 옵션을 추가하면 -v수신된 UDP 패킷의 첫 번째 소스 주소만 표시됩니다.

또한 netstat -nuUDP 세션에 대한 일부 연결 상태 정보가 있는 것 같습니다.

답변4

비슷한 목적으로 사용하는 또 다른 아이디어가 있습니다.

iptables에 규칙을 추가합니다.

-A INPUT -p tcp --dport <PORT_TO_MONITOR> -m state --state NEW -j LOG --log-prefix "new_connection " --log-level 7

그러면 해당 포트에 대한 새로운 연결마다 시스템 로그에 한 줄이 추가됩니다.

내 생각에는 별도의 로그 파일로 리디렉션할 수도 있습니다.

관련 정보