Bagaimana cara memverifikasi bahwa port UDP terbuka? [Tutup]

13

Di sini saya punya dilema. Saya memiliki perangkat yang berkomunikasi dengan perangkat jarak jauh lain tetapi ada firewall di antara mereka. Ini koneksi UDP, jadi utilitas TCP tidak berfungsi untuk menguji apakah port tertentu terbuka. Saya tahu bahwa kami dapat memperolehnya dari firewall tetapi saya tidak memiliki akses, jadi saya harus membuktikan bahwa portnya tidak terbuka.

Sistem sumber adalah sistem Windows 7 dan sistem tujuan adalah alat yang menjalankan Linux.

JoeliNNaBit
sumber
1
Tanpa akses ke firewall, Anda benar-benar tidak tahu (kecuali, tentu saja, sistem Anda berfungsi).
Ron Trunk
Pertanyaan yang melibatkan jaringan di mana Anda tidak memiliki kontrol secara eksplisit di luar topik di sini.
Ron Maupin
2
Saya akan memilih untuk membiarkannya terbuka. Saya pikir ini termasuk dalam area abu-abu, dan ini adalah teori / pemecahan masalah yang berguna.
Ron Trunk
1
... apakah Anda memiliki kendali atas firewall dan jaringan? Jika tidak, maka ini di luar topik di sini.
Craig Constantine
Ini dengan lingkungan lab sekarang, kami mencoba untuk mensimulasikan situasi produksi masa depan. Saya ingin mendapatkan cara untuk memecahkan masalah sesi UDP tanpa harus mengurai log di sisi server. Tapi terima kasih saya percaya itu tidak mungkin dengan sifat dari jenis komunikasi.
JoeliNNaBit

Jawaban:

10

UDP jelas merupakan protokol kirim-dan-lupakan. Misalnya, selama pemindaian NMap UDP, satu-satunya cara untuk secara definitif membuktikan bahwa port UDP terbuka adalah jika Anda menerima respons dari port tersebut. Ingatlah bahwa banyak layanan mungkin tidak membalas data yang sewenang-wenang dan memerlukan protokol atau permintaan khusus aplikasi untuk menjamin tanggapan. Namun kode ICMP tertentu dapat menjamin bahwa port ditutup. RFC 792 dan RFC 1122 memberi kami beberapa informasi yang baik tentang apa yang diharapkan ketika port ditutup.

Sebagai contoh, ICMP tipe 3 kode 3 "Destination Port Unreachable", untuk semua maksud dan tujuan, hampir dijamin sebagai port tertutup.

Daftar kode lengkap dapat ditemukan di sini:

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

Barang
sumber
1
Terima kasih atas jawabannya. Saya akan menyelidiki lebih lanjut tentang permintaan ICMP tipe 3.
JoeliNNaBit
7

Ini adalah resep cepat:

1) Mulai sniffer paket:

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) Kirim paket UDP:

$ echo reply-me | nc -u 1.0.0.2 1000

3) Jika Anda menerima 'port ICMP tidak dapat dijangkau', port UDP itu ditutup:

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) Kalau tidak, biasanya port terbuka atau ada sesuatu yang memblokir ICMP.

Everton
sumber
1
Karena sistem sumbernya adalah Windows 7, perintah Linux tidak akan berfungsi.
Ron Maupin
1
Ya itu benar tetapi saya akan mencoba ke mesin virtual dan memeriksa apakah itu berfungsi.
JoeliNNaBit
4

"nc -uvz ip port"entah bagaimana tidak akurat, Anda mungkin harus menggunakan "nmap -sU -p port ip", jika hasilnya menunjukkan "terbuka" maka port udp mungkin terbuka, jika itu menunjukkan "open | filtered" maka mungkin itu ditutup atau disaring.

Jailman Tough
sumber