เหตุใดบางพอร์ตที่รายงานโดย nmap จึงถูกกรองและไม่ใช่พอร์ตอื่น


38

ฉันกำลังสแกนเซิร์ฟเวอร์ซึ่งควรมีไฟร์วอลล์ที่ค่อนข้างง่ายโดยใช้iptables : โดยปกติทุกอย่างจะ DROPped นอกเหนือจากRELATEDและESTABLISHEDแพ็กเก็ต NEWแพ็กเก็ตประเภทเดียวที่ใช้ได้คือแพ็กเก็ต TCP บนพอร์ต 22 และ 80 เท่านั้น (ไม่ใช่ HTTPS บนเซิร์ฟเวอร์นั้น)

ผลลัพธ์ของnmapบนพอร์ต 2048 แรกให้ 22 และ 80 เป็นเปิดตามที่ฉันคาดไว้ อย่างไรก็ตามบางพอร์ตจะปรากฏเป็น "กรอง"

คำถามของฉันคือ: เหตุใดพอร์ต 21, 25 และ 1863 จึงปรากฏเป็น "ตัวกรอง" และพอร์ตอื่น ๆ 2043 ไม่ปรากฏเป็นตัวกรอง

ฉันคาดว่าจะเห็นเพียง 22 และ 80 ว่า "เปิด"

หากเป็นเรื่องปกติที่จะเห็น 21,25 และ 1863 ว่าเป็น "ตัวกรอง" แล้วเหตุใดพอร์ตอื่น ๆ จึงไม่ปรากฏเป็น "ตัวกรอง" ด้วย!

นี่คือผลลัพธ์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 แต่พอร์ตนั้นถูก DROPped โดยไฟร์วอลล์)


คุณได้ผลลัพธ์เดียวกันเมื่อสแกนโฮสต์อื่นหรือไม่
Creek

@Creek: อ่าเพิ่งลองslashdot.orgและเปิด80และ443แต่กรอง25 / smtpด้วย แต่คุณให้ความคิดกับฉันในการพยายาม nmap เซิร์ฟเวอร์เดียวกันไม่ใช่จากเครื่องที่บ้านของฉัน แต่จากเซิร์ฟเวอร์อื่นฉันเป็นเจ้าของ: ฉันไม่ได้รับ 3 พอร์ตที่กรองแล้ว แต่ฉันได้53 / โดเมน / ปิด , 443 / https / ปิดและ953 / rndc / ปิด (ทั้งเซิร์ฟเวอร์เฉพาะของฉันโฮสต์ที่ OVH / ฝรั่งเศส)
Cedric Martin

1
ถ้าคุณอยากจะเห็นสิ่งที่nmapจะทำคุณควรจะสแกนโดยใช้ privs รากโดยใช้การสแกน SYN ( -sS) --packet-traceและ นอกจากนี้ยังใช้เวลาสองสามนาทีและอ่านหน้าคนที่คุณต้องการจะประหลาดใจในสิ่งที่อัญมณีที่มีอยู่ใน
ห้วย

ฉันจะเปิดพอร์ตเหล่านั้นชั่วคราวและดูว่าแพ็คเก็ตผ่านไปยังพวกเขาหรือไม่
Mark Hurd

คำตอบ:


25

คำสั่ง 'กรองพอร์ต' จาก nmap แตกต่างกันไปตามวิธีการสแกนของคุณ

การสแกนมาตรฐาน (การสแกน TCP หากผู้ใช้ที่ไม่มีสิทธิพิเศษหรือ Half-Open scan -sS ถ้า superuser) อาศัยโปรโตคอล TCP (ชื่อ 3-hanshake)

  • ไคลเอนต์ (คุณ) ออกคำสั่ง SYN หากเซิร์ฟเวอร์ตอบกลับ SYN / ACK: หมายความว่าพอร์ตเปิดอยู่ !

  • คุณออก SYN หากเซิร์ฟเวอร์ตอบกลับ RST: หมายความว่าพอร์ตปิด !

  • คุณออก SYN ถ้าเซิร์ฟเวอร์ไม่ตอบหรือตอบกลับด้วยข้อผิดพลาด ICMP: ก็หมายความว่าพอร์ตที่ถูกกรอง ดูเหมือนว่าไฟร์วอลล์ IDS / statefull บล็อกคำขอของคุณ)

หากต้องการทราบว่าสถานะที่แท้จริงของพอร์ตคืออะไรคุณสามารถ:

  • ใช้ตัวเลือก-sVหรือ-A (การตรวจสอบเวอร์ชั่นจะช่วยให้คุณกำหนดสถานะของพอร์ตนี้ได้
  • ใช้--tcp-flag SYN, FINเพื่อลองข้าม fw
  • ใช้ประเภทการสแกนอื่น ๆ ( http://nmap.org/book/man-port-scanning-techniques.html )

หนังสือ " Nmap Network Discovery " ที่ยอดเยี่ยมเขียนโดย Fyodor ผู้สร้างมันอธิบายได้ดีมาก ฉันพูด

ตัวกรอง: Nmap ไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือไม่เนื่องจากการกรองแพ็คเก็ตจะป้องกันไม่ให้โพรบถึงพอร์ต การกรองอาจมาจากอุปกรณ์ไฟร์วอลล์เฉพาะกฎเราเตอร์หรือซอฟต์แวร์ไฟร์วอลล์ที่ใช้โฮสต์ พอร์ตเหล่านี้ทำให้ผู้โจมตีหงุดหงิดเพราะพวกเขาให้ข้อมูลน้อยมาก บางครั้งพวกเขาตอบกลับด้วยข้อความแสดงข้อผิดพลาด ICMP เช่นรหัส 3 ประเภท 13 (ไม่สามารถเข้าถึงปลายทาง: ห้ามใช้การสื่อสาร) แต่ตัวกรองที่โพรบแบบไม่โพรบโดยไม่ตอบสนองนั้นเป็นเรื่องธรรมดามาก สิ่งนี้บังคับให้ Nmap ลองใหม่หลายครั้งในกรณีที่โพรบถูกทิ้งเนื่องจากความแออัดของเครือข่ายมากกว่าการกรอง การกรองประเภทนี้จะสแกนช้าลงอย่างมาก

open | filtered: Nmap วางพอร์ตในสถานะนี้เมื่อไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือถูกกรอง สิ่งนี้เกิดขึ้นสำหรับประเภทการสแกนที่พอร์ตเปิดไม่ตอบสนอง การขาดการตอบสนองอาจหมายความว่าตัวกรองแพ็กเก็ตหลุดโพรบหรือการตอบสนองใด ๆ ที่เกิดขึ้น ดังนั้น Nmap จึงไม่ทราบว่าพอร์ตนั้นเปิดอยู่หรือถูกกรอง สแกน UDP, IP protocol, FIN, NULL และ Xmas จัดประเภทพอร์ตด้วยวิธีนี้

ปิด | กรอง: สถานะนี้จะใช้เมื่อ Nmap ไม่สามารถระบุได้ว่าพอร์ตถูกปิดหรือถูกกรอง มันใช้สำหรับการสแกน IP Idle ที่กล่าวถึงในหัวข้อ 5.10, "TCP Idle Scan (-sl)


ดังนั้นฉันจะยกเลิกการกรองพอร์ต 22 ได้อย่างไร สมมติว่าฉันใช้ Google Domains ...
IgorGanapolsky เมื่อ

"กรอง" หรือไม่ คุณไม่ได้ขัดขวางทราฟฟิกที่ไปที่ 22 บนไฟร์วอลล์ของคุณดังนั้นมันจะไม่ถูกกรอง ... จากนั้นคุณจะได้รับ "open" หรือ "close" เป็นการตอบกลับไปยังโพรบ nmap
Florian Bidabe

คุณกำลังสแกนอะไร
Florian Bidabe

ฉันใช้คำสั่งนี้: sudo nmap -oG - -T4 -A -p22 -v pi.eazyigz.com | grep ssh
IgorGanapolsky

1
"-T4" ไม่จำเป็นระบุไว้แล้วใน "-A" ... เกี่ยวกับโพรบ sudo nmap บอกเป็นนัยว่ามีการใช้การสแกน Syn (-sS) "-A" เป็นเวอร์ชันที่สั้นกว่าของ "-T4" + "- sV" + "- O" หาก service detection (-sV) ล้มเหลวในการตรวจสอบเซิร์ฟเวอร์ SSH แสดงว่าพอร์ตนั้นน่าจะปิด (ไม่มีการฟัง ssh) มิฉะนั้นจะต้องมีบางสิ่งระหว่างไคลเอนต์ของคุณกับเซิร์ฟเวอร์ที่ติดตั้งโพรบและปล่อยแพ็กเก็ต (ไฟร์วอลล์โฮสต์ IDS หรือเครื่องใช้เครือข่ายที่กำหนดค่าผิดพลาด)
Florian Bidabe

10

เหตุใดพอร์ต 21, 25 และ 1863 จึงปรากฏเป็น "ตัวกรอง" และพอร์ตอื่น ๆ 2043 ไม่ปรากฏเป็นตัวกรอง

เพราะใน ISP ของคุณเราเตอร์ผู้ดูแลระบบเครือข่ายของคุณอะไรก็ตามที่อยู่ระหว่างพวกเขาหรือตัวคุณเองกำลังกรองพวกเขา พอร์ตเหล่านี้มีประวัติที่ไม่ดีพอสมควรปี 1863 เป็นพอร์ตที่ใช้โดยโปรโตคอลการส่งข้อความโต้ตอบแบบทันทีของ Microsoft (aka MSN และเพื่อน ๆ ) ซึ่งฉันเชื่อว่าคุณอาจ (หรืออาจจะไม่) ได้ตั้งกฎเฉพาะ SMTP หนึ่งดูเหมือนว่า ISP ของคุณเป็นผู้ร้ายและ FTP ทำให้ฉันงุนงงอย่างสิ้นเชิงเพราะฉันไม่รู้ว่าจะเกิดอะไรขึ้นกับพวกเขา


1
ขอบคุณสำหรับคำอธิบาย! ดังนั้น "กรอง" โดยทั่วไปหมายถึงมีเทียบเท่าของiptables 's ปฏิเสธที่ใดที่หนึ่ง (ISP เราเตอร์ ฯลฯ )? ISP และเราเตอร์หรืออะไรก็ตามที่ปฏิเสธการ DROPping เพราะสะอาดกว่า เกี่ยวกับพอร์ต 25: ตัวกรองถูกกรองให้ฉันพูดslashdot.orgด้วย (เมื่อฉัน nmap จากการเชื่อมต่อที่บ้านของฉัน แต่ไม่ใช่เมื่อฉัน nmap จากเซิร์ฟเวอร์เฉพาะของฉัน)
Cedric Martin

6
@CedricMartin คุณได้รับมันอย่างแน่นอน "ตัวกรอง" หมายถึงแพ็คเก็ตที่ถูกทิ้ง (ไม่ตอบกลับใด ๆ ) ในขณะที่ "ปิด" หมายถึงแพ็คเก็ตถูกปฏิเสธ (ICMP "พอร์ตตอบกลับไม่สามารถเข้าถึง" การตอบกลับถูกส่ง)
Mark

@ Mark: แล้วถ้าฉันย้อนกลับไปที่คำถามเดิมของฉัน: บนเซิร์ฟเวอร์ของฉันโดยใช้iptablesฉันจะวางทุกอย่างนอกเหนือจากพอร์ต 22 และ 80 ทำไมพอร์ต 3 พอร์ตปรากฏเป็น "filtered" เพียงวิธีเดียวเท่านั้น?
Cedric Martin

@CedricMartin แก้ไขคำถามของคุณและเพิ่มกฎ iptables ของคุณ
Braiam

1

โดยค่าเริ่มต้น Nmap จะสแกนเฉพาะ 1,000 พอร์ตที่พบบ่อยที่สุดสำหรับแต่ละโปรโตคอล (tcp, udp) หากพอร์ตของคุณอยู่นอกนั้นจะไม่สแกนและด้วยเหตุนี้จะไม่รายงาน อย่างไรก็ตามคุณสามารถระบุพอร์ตที่คุณต้องการสแกนด้วยตัวเลือก -p

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.