2008-09-24 7 views
1

컴퓨터에서 활성 TCP/UDP 연결을 얻는 방법에 관한 기사를 찾았습니다. 특정 포트를 실행하거나 기계를 조작하지 않고 듣고 있는지 -원격으로 IP 포트 상태 확인하기

http://www.codeproject.com/KB/IP/iphlpapi.aspx

내 문제는 그러나 내가 원격으로 활성 연결을 확인할 수 있어야한다.

이것이 가능합니까?

네이티브 방식으로 보이지 않습니다. 그렇지 않으면 보안 문제가 발생할 수 있습니다. 대안은 로컬 시스템에서 필요한 호출을 할 수있는 원격 서비스를 쿼리하는 것입니다.

의견이 있으십니까?

답변

3

원격 컴퓨터가 포트를 인식하지 않고 열려있는 포트를 알 수있는 방법이 없습니다. 그러나 포트를 알고있는 포트에서 프로그램을 실행하지 않고 (즉, 프로그램을 방해하지 않고) 정보를 확인할 수 있습니다.

를 사용하여 SYN 스캐닝 :

연결을 설정하려면, TCP는 세 방향 핸드 셰이크를 사용합니다. 이것은 프로그램이 알지 못하는 상태에서 포트가 열려 있는지 여부를 알아 내기 위해 악용 될 수 있습니다. 다음과 같이

핸드 쉐이크 작동 :

  1. 클라이언트가 서버에 SYN을 전송하여 적극적인 개방 수행합니다.
  2. 서버가 SYN-ACK로 응답합니다.
  3. 일반적으로 클라이언트는 ACK를 서버로 다시 보냅니다. 그러나이 단계는 건너 뜁니다.

SYN 스캔은 TCP 스캔의 가장 인기있는 형태입니다. 운영 체제의 네트워크 기능을 사용하는 대신 포트 스캐너는 원시 IP 패킷을 생성하고 응답을 모니터링합니다. 이 스캔 유형은 이므로 실제로는 전체 TCP 연결을 열지 않으므로 "반 개방 스캔"이라고도하는 입니다. 포트 스캐너는 SYN 패킷을 생성합니다. 대상 포트가 이면 열려있는 SYN-ACK 패킷으로 응답합니다. 스캐너 호스트는 RST 패킷으로 응답하고 핸드 셰이크가 완료되기 전에 연결을 닫습니다.

원시 네트워킹의 사용은 전송 된 패킷의 스캐너 전체 제어 및 응답에 대한 제한 시간을 제공하고, 응답의 자세한보고를 수 있도록 여러 장점이 있습니다. 대상 호스트에서 어떤 스캔이 덜 간섭적인지에 대한 논쟁이 있습니다. SYN 검사는 개별 서비스가 실제로는 실제로는 이라는 연결을 수신하는 반면 서비스는 검사로 연결될 수있는 장점이 있습니다. 그러나 핸드 셰이크 중 RST는 일부 네트워크 스택에서 문제를 일으킬 수 있습니다. 특히 프린터 같은 단순한 장치가 문제가 될 수 있습니다.어느 쪽이든 결론적 인 논증이 없습니다. 아래에 언급 된 바와 같이

Source Wikipedia

, 나는 nmap가 SYN 스캐닝을 할 수 있다고 생각합니다. TCP 포트 스캔

사용하여 소켓 : 열려있는 포트를 결정하기

한 가지 방법은 해당 포트에 소켓을 열 수 있습니다. 또는 언급 한 것과 같은 정보를 찾는 다른 포트로 이동하십시오.

명령 프롬프트 또는 터미널에서 예를 들면 :

telnet google.com 80 

UDP 포트 스캔 : UDP 패킷이 열려 있지 않은 포트에 전송되는 경우

, 시스템이 응답합니다 ICMP 포트 연결할 수없는 메시지입니다. 이 방법을 사용하여 포트가 열려 있는지 또는 닫혀 있는지 확인할 수 있습니다. 그러나 수신 프로그램에서 알 수 있습니다.

+0

소켓에 직접 연결하는 문제는 포트에서 실행중인 기존 프로그램을 방해한다는 것입니다. 포트 상태를 확인하려고합니다. 그러면 프로그램이 올바르게 실행되고 있는지 알려줍니다. –

+0

nmap은 3 방향 핸드 셰이크를 완료하지 않고 포트에서 수신하는 프로그램이 있는지를 알 수 있습니다. 그래서, 그것은 결코 연결을 알아 차리지 못하기 때문에 그 포트에서 실행되는 프로그램을 방해하지 않을 것입니다. – Ferruccio

+0

Ferruccio 덕분에 답을 업데이트했습니다. –

1

neouser99 (그 외)은 NMAP을 제안했다. NMAP는 원격 시스템에서 열려있는 포트를 탐지하는 것으로 아주 유용합니다.

질문의 소리에서 실제로 열려있는 포트가 모두 원격 컴퓨터에 연결된 인지 확인하려고합니다. 연결된 포트를 포함하여 일반적인 모니터링 솔루션을 수행 한 경우 원격 시스템에 snmp 서버를 설치할 수 있습니다. :: tcpConnectionTable 및 UDP-MIB :: udpEndpointTable 인 포트 상태를 확인할 수있는 두 개의 MIBs이 있습니다.

net-snmp에 제공된 데몬 (서버)이 이러한 MIB를 지원할 가능성이 큽니다.