Mengapa beberapa port dilaporkan oleh nmap difilter dan bukan yang lain?

38

Saya memindai server yang harus memiliki sederhana cukup firewall menggunakan iptables : secara default segala dijatuhkan selain RELATEDdan ESTABLISHEDpaket. Satu-satunya jenis NEWpaket yang diperbolehkan adalah paket TCP pada port 22 dan 80 dan hanya itu (tidak ada HTTPS di server itu).

Hasil nmap pada 2048 port pertama memberi 22 dan 80 sebagai terbuka, seperti yang saya harapkan. Namun beberapa port muncul sebagai "difilter".

Pertanyaan saya adalah: mengapa port 21, 25 dan 1863 muncul sebagai "difilter" dan 2043 port lainnya tidak muncul sebagai yang difilter?

Saya berharap melihat hanya 22 dan 80 sebagai "terbuka".

Jika normal untuk melihat 21,25 dan 1863 sebagai "difilter", maka mengapa tidak semua port lain muncul sebagai "difilter" juga !?

Inilah output 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

Saya benar-benar tidak mengerti mengapa saya memiliki 2043 port yang ditutup:

Not shown: 2043 closed ports

dan bukan 2046 port yang ditutup.

Ini adalah lsof yang diluncurkan di server:

# 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)

(perhatikan bahwa Java / Tomcat mendengarkan pada port 8009 tetapi port tersebut DIHENTIKAN oleh firewall)

Cedric Martin
sumber
Apakah Anda mendapatkan hasil yang sama saat memindai host lain?
Creek
@Creek: ah, baru saja mencoba slashdot.org dan membuka 80 dan 443 tetapi 25 / smtp juga difilter. Tapi kemudian Anda memberi saya ide untuk mencoba nmap server yang sama bukan dari mesin rumah saya tetapi dari server lain yang saya miliki: Saya tidak mendapatkan 3 port yang difilter tetapi kemudian saya mendapatkan 53 / domain / ditutup , 443 / https / ditutup dan 953 / rndc / ditutup . (kedua server khusus saya di-host di OVH / Prancis).
Cedric Martin
1
Jika Anda benar-benar ingin melihat apa nmapyang dilakukan, Anda harus memindai menggunakan privs root, menggunakan pemindaian SYN ( -sS) dan --packet-trace. Juga luangkan waktu beberapa menit dan baca halaman manual, Anda akan terkejut permata apa yang ada di sana
Creek
Saya juga untuk sementara membuka port-port itu dan melihat apakah paket bisa menerimanya.
Mark Hurd

Jawaban:

25

Pernyataan 'port yang difilter' dari nmap berbeda menurut metode pemindaian Anda.

Pemindaian standar (Pemindaian TCP jika pengguna tidak berkepentingan, atau Pemindaian Setengah Terbuka -sS jika superuser) mengandalkan protokol TCP. (bernama hanshake 3 arah)

  • Klien (Anda) mengeluarkan SYN, jika server membalas SYN / ACK: itu berarti port terbuka !

  • Anda mengeluarkan SYN, jika server membalas RST: itu berarti portnya dekat !

  • Anda mengeluarkan SYN, jika server tidak membalas, atau membalas dengan kesalahan ICMP: itu berarti bahwa port tersebut difilter . Kemungkinan firewall IDS / statefull memblokir permintaan Anda)

Untuk mengetahui status port sebenarnya, Anda dapat:

Buku " Nmap Network Discovery " yang sangat bagus, yang ditulis oleh penciptanya Fyodor menjelaskan hal ini dengan sangat baik. Saya mengutip

difilter: Nmap tidak dapat menentukan apakah port terbuka karena packet filtering mencegah probe-nya mencapai port. Pemfilteran bisa dari perangkat firewall khusus, aturan router, atau perangkat lunak firewall berbasis host. Port-port ini membuat penyerang frustrasi karena mereka memberikan informasi yang sangat sedikit. Kadang-kadang mereka merespons dengan pesan kesalahan ICMP seperti tipe 3 kode 13 (tujuan tidak terjangkau: komunikasi secara administratif dilarang), tetapi filter yang hanya membuang probe tanpa merespons jauh lebih umum. Ini memaksa Nmap untuk mencoba beberapa kali untuk berjaga-jaga seandainya probe dijatuhkan karena kemacetan jaringan daripada penyaringan. Pemfilteran seperti ini memperlambat pemindaian secara dramatis.

open | filtered: Nmap menempatkan port dalam keadaan ini ketika tidak dapat menentukan apakah port terbuka atau difilter. Ini terjadi untuk jenis pemindaian di mana port terbuka tidak memberikan respons. Kurangnya respons juga bisa berarti bahwa filter paket menjatuhkan probe atau respons apa pun yang ditimbulkannya. Jadi Nmap tidak tahu pasti apakah port terbuka atau sedang difilter. Pemindaian UDP, protokol IP, FIN, NULL, dan Xmas mengklasifikasikan port dengan cara ini.

closed | filtered: Keadaan ini digunakan ketika Nmap tidak dapat menentukan apakah port ditutup atau difilter. Ini hanya digunakan untuk pemindaian Idle IP ID yang dibahas dalam Bagian 5.10, "TCP Idle Scan (-sl)

Florian Bidabe
sumber
Jadi bagaimana cara saya melakukan unilter port 22? Misalkan saya menggunakan Google Domains ...
IgorGanapolsky
"Unfilter"? Yah Anda tidak mencegat lalu lintas yang menuju 22 pada firewall Anda karena itu tidak akan disaring ... Anda kemudian akan mendapatkan "buka" atau "tutup" sebagai balasan ke probe nmap
Florian Bidabe
Apa yang Anda pindai?
Florian Bidabe
Saya menggunakan perintah ini: sudo nmap -oG - -T4 -A -p22 -v pi.eazyigz.com | grep ssh
IgorGanapolsky
1
"-T4" tidak perlu, sudah ditentukan dalam "-A" ... mengenai probe, sudo nmap menyiratkan bahwa pemindaian Syn digunakan (-sS). "-A" adalah versi lebih pendek dari "-T4" + "- sV" + "- O". Jika deteksi layanan (-sV) gagal menyelidiki server SSH, maka port tersebut kemungkinan ditutup (tidak ada ssh mendengarkan) jika tidak, HARUS ada sesuatu antara klien Anda dan server yang mengintip probe dan menjatuhkan paket (firewall host, IDS, atau peralatan jaringan yang tidak terkonfigurasi)
Florian Bidabe
10

mengapa port 21, 25 dan 1863 muncul sebagai "difilter" dan 2043 port lainnya tidak muncul sebagai yang difilter?

Karena di ISP, router, administrator jaringan Anda, apa pun di antara mereka, atau diri Anda memfilternya. Port-port ini memiliki sejarah yang sangat buruk, tahun 1863 adalah port yang digunakan oleh protokol pesan instan Microsoft (alias MSN dan teman-teman) yang saya yakin Anda mungkin (atau mungkin tidak) telah menetapkan aturan tertentu. Yang SMTP sepertinya ISP Anda adalah pelakunya dan FTP membuat saya benar-benar terperangah, karena saya tidak tahu apa yang bisa terjadi pada mereka.

Braiam
sumber
1
Terima kasih untuk penjelasannya! Jadi "disaring" pada dasarnya berarti ada setara dengan iptables s' REJECT suatu tempat (ISP, router, dll)? Dan ISP / router atau apa pun yang MENOLAK bukannya MENYUSUN karena lebih bersih? Mengenai port 25: itu difilter bagi saya untuk, katakanlah, slashdot.org juga (ketika saya nmap itu dari koneksi rumah saya, tetapi tidak ketika saya nmap itu dari server khusus saya).
Cedric Martin
6
@CedricMartin, Anda mendapatkannya tepat ke belakang. "Difilter" berarti paket dijatuhkan (tidak ada balasan apa pun), sedangkan "tertutup" berarti paket ditolak (balasan "port unreachable" ICMP dikirim).
Tandai
@ Mark: maka jika saya mendapatkannya mundur pertanyaan asli saya berdiri: di server saya, menggunakan iptables , saya menjatuhkan semuanya selain port 22 dan 80. Bagaimana bisa hanya 3 port muncul sebagai "disaring" !?
Cedric Martin
@CedricMartin edit pertanyaan Anda dan tambahkan aturan iptables Anda.
Braiam
1

Secara default, Nmap hanya memindai 1.000 port yang paling umum untuk setiap protokol (tcp, udp). Jika port Anda di luar itu maka tidak akan memindai dan karenanya tidak akan melaporkannya. Namun, Anda dapat menentukan port yang ingin Anda pindai dengan opsi -p.

Chakraborty Angsuman
sumber