nmap에 의해보고 된 일부 포트가 다른 포트가 아닌 왜 필터링됩니까?


38

내가 사용하는 방화벽 아주 간단한이 있어야합니다 서버 스캔하고있어 의 iptables을 기본적 모두에 의해 외에 삭제 RELATED및 ESTABLISHED패킷. NEW허용 되는 유일한 패킷 유형은 포트 22 및 80의 TCP 패킷이며 그게 전부입니다 (해당 서버에는 HTTPS가 없음).

첫 2048 포트 의 nmap 결과 는 22와 80을 열어 놓았습니다. 그러나 일부 포트는 "필터링 된"것으로 나타납니다.

제 질문은 왜 포트 21, 25 및 1863이 "필터링 된"것으로 나타나고 2043 다른 포트가 필터링 된 것으로 나타나지 않습니까?

22와 80 만 "열기"로 예상했습니다.

21,25 및 1863을 "filtered"로 보는 것이 정상이라면 왜 다른 모든 포트가 "filtered"로 나타나지 않습니까?

다음은 nmap 출력입니다.

# nmap -PN 94.xx.yy.zz -p1-2048

Starting Nmap 6.00 ( http://nmap.org ) at 2014-06-12 ...
Nmap scan report for ksXXXXXX.kimsufi.com (94.xx.yy.zz)
Host is up (0.0023s latency).
Not shown: 2043 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
1863/tcp filtered msnp

나는 왜 2043의 닫힌 포트를 가지고 있는지 알지 못한다.

Not shown: 2043 closed ports

2046 개의 닫힌 포트가 아닙니다.

서버에서 시작된 lsof 는 다음과 같습니다 .

# lsof -i -n
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
named    3789 bind   20u  IPv4     7802       TCP 127.0.0.1:domain (LISTEN)
named    3789 bind   21u  IPv4     7803       TCP 127.0.0.1:953 (LISTEN)
named    3789 bind  512u  IPv4     7801       UDP 127.0.0.1:domain 
sshd     3804 root    3u  IPv4     7830       TCP *:ssh (LISTEN)
sshd     5408 root    3r  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
sshd     5411    b    3u  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
java    16589    t   42u  IPv4 88842753       TCP *:http-alt (LISTEN)
java    16589    t   50u  IPv4 88842759       TCP *:8009 (LISTEN)
java    16589    t   51u  IPv4 88842762       TCP 127.0.0.1:8005 (LISTEN)

(Java / Tomcat은 포트 8009에서 수신 대기하지만 해당 포트는 방화벽에 의해 삭제됩니다)


다른 호스트를 스캔 할 때 동일한 결과를 얻습니까?
— Creek

@ Creek : 아, 방금 slashdot.org에서 시도 하고 80 및 443을 열었지만 25 / smtp도 필터링했습니다. 그러나 당신은 나에게 내 집 컴퓨터가 아니라 내가 소유 한 다른 서버에서 동일한 서버를 nmap하려고한다고 생각했습니다 .3 개의 필터링 된 포트를 얻지 못했지만 53 / domain / closed , 443 / https / closed 및 953 / rndc / closed . (전용 서버는 OVH / France에서 호스팅됩니다).
— Cedric Martin

1
실제로 nmap수행중인 작업 을 보려면 루트 개인을 사용하여 SYN 스캔 ( -sS) 및을 사용하여 스캔해야합니다 --packet-trace. 또한 몇 분이 걸리고 매뉴얼 페이지를 읽으십시오. 보석이 무엇인지 놀라실 것입니다
— Creek

또한 해당 포트를 일시적으로 열고 패킷이 해당 포트를 통과하는지 확인합니다.
— Mark Hurd

답변:


25

nmap의 '필터링 된 포트'문은 스캔 방법에 따라 다릅니다.

표준 스캔 (권한이없는 사용자의 경우 TCP 스캔 또는 수퍼 유저의 경우 Half-Open scan-sS)은 TCP 프로토콜을 사용합니다. (3 웨이 한 쉐이크)

  • 서버가 SYN / ACK에 응답하면 클라이언트 (귀하)가 SYN을 발행합니다. 포트가 열려 있음을 의미합니다 !

  • 서버가 RST를 응답하면 SYN을 발행합니다. 포트가 가깝다 는 것을 의미합니다 !

  • 서버가 응답하지 않거나 ICMP 오류로 응답하면 SYN을 발행합니다 . 포트가 필터링 되었음을 의미합니다 . IDS / statefull 방화벽이 요청을 차단했을 가능성이 있습니다)

포트의 실제 상태를 파악하려면 다음을 수행하십시오.

  • -sV 또는 -A 옵션을 사용하십시오 (버전 감지,이 포트의 상태를 판별하는 데 도움이됩니다).
  • fw를 무시 하려면 --tcp-flags SYN, FIN 을 사용하십시오.
  • 다른 스캔 유형을 사용하십시오 ( http://nmap.org/book/man-port-scanning-techniques.html )

제작자 Fyodor가 저술 한 " Nmap Network Discovery "라는 훌륭한 책은 이것을 잘 설명합니다. 나는 인용한다

filters : 패킷 필터링으로 프로브가 포트에 도달하지 못하므로 Nmap에서 포트가 열려 있는지 확인할 수 없습니다. 필터링은 전용 방화벽 장치, 라우터 규칙 또는 호스트 기반 방화벽 소프트웨어에서 수행 할 수 있습니다. 이 포트는 정보를 거의 제공하지 않기 때문에 공격자를 좌절시킵니다. 때로는 유형 3 코드 13 (대상에 도달 할 수 없음 : 통신 관리가 금지됨)과 같은 ICMP 오류 메시지로 응답하지만 응답없이 프로브를 삭제하는 필터가 훨씬 일반적입니다. 이렇게하면 필터링 대신 네트워크 정체로 인해 프로브가 삭제 된 경우를 대비하여 Nmap이 여러 번 재 시도합니다. 이러한 종류의 필터링은 스캔 속도를 크게 저하시킵니다.

open | filtered : Nmap은 포트가 열려 있는지 또는 필터링되어 있는지 확인할 수없는 경우 포트를이 상태로 둡니다. 이것은 열린 포트가 응답을 제공하지 않는 스캔 유형에 대해 발생합니다. 응답이 없다는 것은 패킷 필터가 프로브 나 해당 응답을 떨어 뜨 렸음을 의미 할 수도 있습니다. 따라서 Nmap은 포트가 열려 있는지 또는 필터링되고 있는지 확실하지 않습니다. UDP, IP 프로토콜, FIN, NULL 및 Xmas 스캔은 이러한 방식으로 포트를 분류합니다.

closed | 필터링 됨 :이 상태는 Nmap이 포트가 닫혀 있는지 또는 필터링되어 있는지 확인할 수 없을 때 사용됩니다. 5.10 절. "TCP 유휴 스캔 (-sl)에 설명 된 IP ID 유휴 스캔에만 사용됩니다.


포트 22를 어떻게 필터링 해제합니까? 내가 ... 구글 도메인을 사용하고 가정
— IgorGanapolsky

"필터 해제"? 방화벽에서 22로가는 트래픽이 따라서가 필터링되지 않습니다 인터셉트 그럼 당신 ... 당신은 다음 nmap은 프로브에 대한 응답으로 "열기"또는 "가까운"얻을 것하지 않습니다
— 플로리안 Bidabe

무엇을 스캔하고 있습니까?
— Florian Bidabe

내가이 명령을 사용하고 있습니다 : sudo는 nmap을 -OG - -T4 -A -p22 -v pi.eazyigz.com을 | 그렙 SSH
— IgorGanapolsky

1
"-T4"는 불필요하며 이미 "-A"에 지정되어 있습니다 ... sudo nmap은 Syn 스캔이 사용됨을 나타냅니다 (-sS). "-A"는 "-T4"+ "-sV"+ "-O"의 짧은 버전입니다. 서비스 감지 (-sV)가 SSH 서버를 탐색하지 못하면 포트가 닫혀있을 가능성이 있습니다 (ssh 수신 안 함). 그렇지 않으면 클라이언트와 서버 사이에 프로브를 삽입하고 패킷 (호스트 방화벽, IDS, 또는 잘못 네트워크 기기)
— 플로리안 Bidabe

10

포트 21, 25 및 1863이 "필터링 된"것으로 나타나고 2043 다른 포트가 필터링 된 것으로 나타나지 않는 이유는 무엇입니까?

ISP, 라우터, 네트워크 관리자, 그들 사이 또는 자신이 필터링하고 있기 때문에. 이 포트는 꽤 나쁜 기록을 가지고 있습니다. 1863은 Microsoft 인스턴트 메시징 프로토콜 (MSN 및 친구라고도 함)에서 사용하는 포트로, 특정 규칙을 설정했을 수도 있고 그렇지 않을 수도 있습니다. SMTP는 ISP가 범인 인 것처럼 보이며 FTP는 나에게 어떤 일이 일어날 지 전혀 모릅니다.


1
설명 주셔서 감사합니다! "filtered"는 기본적으로 iptables 의 REJECT (ISP, 라우터 등) 어딘가에 해당한다는 것을 의미 합니까? 그리고 ISP / 라우터 또는 더 깨끗하기 때문에 DROPping 대신 거부하고 있습니까? 포트 25에 관해서는 : 그것은 slashdot.org 로 나를 위해 필터링됩니다 (홈 연결에서 nmap 할 때, 전용 서버에서 nmap 할 때는 아닙니다).
— Cedric Martin

6
@CedricMartin, 당신은 정확히 거꾸로 가지고 있습니다. "Filtered"는 패킷이 삭제되었음을 의미하며 (응답 없음) "closed"는 패킷이 거부되었음을 의미합니다 (ICMP "포트에 연결할 수 없음"응답이 전송 됨).
— Mark

@ Mark : 그렇다면 내가 원래의 질문을 거꾸로하면 : iptables 사용하는 서버에서 포트 22와 80 이외의 모든 것을 삭제합니다 . 3 포트 만 어떻게 "필터링 된"으로 나타 납 니까 ?
— Cedric Martin

@CedricMartin 질문을 편집하고 iptables 규칙을 추가하십시오.
— Braiam

1

기본적으로 Nmap은 각 프로토콜 (tcp, udp)에 대해 가장 일반적인 1,000 개의 포트만 검색합니다. 포트가 외부에 있으면 스캔하지 않으므로보고하지 않습니다. 그러나 -p 옵션을 사용하여 스캔하려는 포트를 지정할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.