Làm thế nào để xác minh rằng một cổng UDP đang mở? [đóng cửa]


13

Tôi có một vấn đề nan giải. Tôi có một thiết bị giao tiếp với một thiết bị từ xa khác nhưng có một tường lửa giữa chúng. Đó là kết nối UDP, vì vậy các tiện ích TCP không hoạt động để kiểm tra xem cổng cụ thể có mở không. Tôi biết rằng chúng tôi có thể lấy nó từ tường lửa nhưng tôi không có quyền truy cập nên tôi phải chứng minh rằng cổng không mở.

Hệ thống nguồn là hệ thống Windows 7 và hệ thống đích là thiết bị chạy Linux.


1
Không có quyền truy cập vào tường lửa, bạn thực sự không thể biết (tất nhiên, trừ khi, hệ thống của bạn đang hoạt động).
Ron Trunk

Các câu hỏi liên quan đến các mạng mà bạn không có quyền kiểm soát rõ ràng không có chủ đề ở đây.
Ron Maupin

2
Tôi sẽ bỏ phiếu để nó mở. Tôi nghĩ rằng điều này rơi vào khu vực màu xám, và đó là một câu hỏi lý thuyết / xử lý sự cố hữu ích.
Ron Trunk

1
... Bạn có quyền kiểm soát tường lửa và mạng không? Nếu không, thì đây là chủ đề ở đây.
Craig Constantine

Đây là một môi trường phòng thí nghiệm, chúng tôi đang cố gắng mô phỏng một tình huống sản xuất trong tương lai. Tôi muốn có một cách để khắc phục sự cố các phiên UDP mà không phải phân tích các bản ghi ở phía máy chủ. Nhưng cảm ơn tôi tin rằng điều đó là không thể bởi bản chất của kiểu giao tiếp.
JoeliNNaBit

Câu trả lời:


10

UDP rõ ràng là một giao thức gửi và quên. Ví dụ, trong quá trình quét UDP NMap, cách duy nhất để chứng minh dứt khoát rằng một cổng UDP đang mở là nếu bạn nhận được phản hồi từ cổng đó. Hãy nhớ rằng nhiều dịch vụ có thể không trả lời dữ liệu tùy ý và yêu cầu giao thức hoặc yêu cầu dành riêng cho ứng dụng để đảm bảo phản hồi. Tuy nhiên, một số mã ICMP có thể đảm bảo rằng cổng được đóng lại. RFC 792RFC 1122 cung cấp cho chúng tôi một số thông tin tốt về những gì mong đợi khi một cổng được đóng lại.

Ví dụ, mã ICMP loại 3 mã 3 "Cổng đích không thể truy cập", đối với tất cả các ý định và mục đích, gần như được đảm bảo là một cổng đóng.

Một danh sách đầy đủ các mã có thể được tìm thấy ở đây:

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


1
Cảm ơn câu trả lời. Tôi sẽ điều tra thêm về các yêu cầu loại 3 của ICMP.
JoeliNNaBit

7

Đây là một công thức nhanh chóng:

1) Bắt đầu một gói sniffer:

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) Gửi gói UDP:

$ echo reply-me | nc -u 1.0.0.2 1000

3) Nếu bạn nhận được 'cổng ICMP không thể truy cập', cổng UDP đó sẽ bị đóng:

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) Mặt khác, thông thường cổng đang mở hoặc thứ gì đó đang chặn ICMP.


1
Vì hệ thống nguồn là Windows 7, các lệnh Linux sẽ không hoạt động.
Ron Maupin

1
Đúng vậy nhưng tôi sẽ thử một máy ảo và kiểm tra xem nó có hoạt động không.
JoeliNNaBit

4

"nc -uvz ip port"không chính xác bằng cách nào đó, có lẽ bạn nên sử dụng "nmap -sU -p port ip", nếu kết quả hiển thị "mở" thì cổng udp có thể đang mở, nếu nó hiển thị "mở | đã lọc" thì có lẽ nó đã bị đóng hoặc được lọc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.