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


38

내가 사용하는 방화벽 아주 간단한이 있어야합니다 서버 스캔하고있어 의 iptables을 기본적 모두에 의해 외에 삭제 RELATEDESTABLISHED패킷. 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에서 시도 하고 80443을 열었지만 25 / smtp도 필터링했습니다. 그러나 당신은 나에게 내 집 컴퓨터가 아니라 내가 소유 한 다른 서버에서 동일한 서버를 nmap하려고한다고 생각했습니다 .3 개의 필터링 된 포트를 얻지 못했지만 53 / domain / closed , 443 / https / closed953 / 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"는 기본적으로 iptablesREJECT (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.