วิธีการตรวจสอบว่าพอร์ต UDP เปิดอยู่? [ปิด]


13

ฉันมีภาวะที่กลืนไม่เข้าคายไม่ออก ฉันมีอุปกรณ์ที่สื่อสารกับอุปกรณ์ระยะไกลอื่น แต่มีไฟร์วอลล์ระหว่างพวกเขา เป็นการเชื่อมต่อ UDP ดังนั้นยูทิลิตี้ TCP จะไม่ทำงานเพื่อทดสอบว่าพอร์ตเฉพาะนั้นเปิดอยู่หรือไม่ ฉันรู้ว่าเราสามารถหาได้จากไฟร์วอลล์ แต่ฉันไม่สามารถเข้าถึงได้ดังนั้นฉันต้องพิสูจน์ว่าพอร์ตไม่เปิด

ระบบต้นทางเป็นระบบ Windows 7 และระบบปลายทางเป็นอุปกรณ์ที่ใช้ Linux


1
หากไม่สามารถเข้าถึงไฟร์วอลล์คุณจะไม่สามารถบอกได้ (เว้นแต่แน่นอนว่าระบบของคุณกำลังทำงานอยู่)
Ron Trunk

คำถามที่เกี่ยวข้องกับเครือข่ายที่คุณไม่สามารถควบคุมได้อย่างชัดเจนนอกหัวข้อที่นี่
Ron Maupin

2
ฉันจะลงคะแนนให้เปิดทิ้งไว้ ฉันคิดว่าสิ่งนี้ตกอยู่ในพื้นที่สีเทาและเป็นคำถามเชิงทฤษฎี / การแก้ไขปัญหาที่มีประโยชน์
Ron Trunk

1
... คุณมีการควบคุมไฟร์วอลล์และเครือข่ายหรือไม่ ถ้าไม่เช่นนั้นนี่เป็นหัวข้อที่ปิดที่นี่
Craig Constantine

นี่คือสภาพแวดล้อมของแล็บในขณะนี้เรากำลังพยายามจำลองสถานการณ์การผลิตในอนาคต ฉันต้องการรับวิธีแก้ไขปัญหาเซสชัน UDP โดยไม่ต้องแยกวิเคราะห์บันทึกในฝั่งเซิร์ฟเวอร์ แต่ขอบคุณฉันเชื่อว่าเป็นไปไม่ได้โดยธรรมชาติของการสื่อสารประเภท
JoeliNNaBit

คำตอบ:


10

เห็นได้ชัดว่า UDP เป็นโปรโตคอลส่งและลืม ตัวอย่างเช่นระหว่างการสแกน NMap UDP วิธีเดียวที่จะพิสูจน์อย่างชัดเจนว่าพอร์ต UDP เปิดอยู่คือหากคุณได้รับการตอบกลับจากพอร์ตนั้น โปรดทราบว่าบริการจำนวนมากอาจไม่ตอบกลับข้อมูลโดยพลการและต้องการโปรโตคอลหรือคำขอเฉพาะแอปพลิเคชันเพื่อรับประกันการตอบกลับ รหัส ICMP บางอย่างสามารถรับประกันได้ว่าพอร์ตจะปิดอย่างไรก็ตาม RFC 792และRFC 1122ให้ข้อมูลที่ดีแก่เราเกี่ยวกับสิ่งที่คาดหวังเมื่อพอร์ตถูกปิด

ตัวอย่างเช่น ICMP ประเภท 3 รหัส 3 "ปลายทางพอร์ตที่เข้าไม่ถึง" คือสำหรับเกือบทุก intents และวัตถุประสงค์เกือบรับประกันว่าจะเป็นพอร์ตปิด

รายการรหัสทั้งหมดสามารถพบได้ที่นี่:

http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml


1
ขอบคุณสำหรับคำตอบ. ฉันจะตรวจสอบเพิ่มเติมเกี่ยวกับคำขอ ICMP ประเภท 3
JoeliNNaBit

7

นี่เป็นสูตรด่วน:

1) เริ่มแพ็คเก็ตดมกลิ่น:

sudo tcpdump -n -i eth2 icmp &
[1] 1409
$ tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 262144 bytes

2) ส่งแพ็กเก็ต UDP:

$ echo reply-me | nc -u 1.0.0.2 1000

3) หากคุณได้รับ 'ICMP พอร์ตที่เข้าไม่ถึง' พอร์ต UDP นั้นจะถูกปิด:

20:54:15.475211 IP 1.0.0.2 > 1.0.0.1: ICMP 1.0.0.2 udp port 1000 unreachable, length 45

4) มิฉะนั้นโดยปกติแล้วพอร์ตจะเปิดอยู่หรือมีบางอย่างกำลังปิดกั้น ICMP


1
เนื่องจากระบบต้นทางคือ Windows 7 คำสั่ง Linux จะไม่ทำงาน
Ron Maupin

1
ใช่จริง แต่ฉันจะลองไปที่เครื่องเสมือนและตรวจสอบว่ามันทำงาน
JoeliNNaBit

4

"nc -uvz ip port"ไม่ถูกต้องคุณควรใช้"nmap -sU -p port ip"หากผลลัพธ์แสดงว่า "เปิด" จากนั้นพอร์ต udp น่าจะเปิดอยู่ถ้ามันแสดงว่า "เปิด | กรอง" อาจเป็นเพราะปิดหรือกรอง

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