Solusi 1:
Sebagai aturan umum, gunakan REJECT jika Anda ingin pihak lain mengetahui bahwa port tidak dapat dijangkau' gunakan DROP untuk koneksi ke host yang tidak ingin dilihat orang lain.
Biasanya, semua aturan untuk koneksi di dalam LAN Anda harus menggunakan REJECT. Untuk Internet, Kecuali ident pada server tertentu, koneksi dari Internet biasanya DIHENTIKAN.
Menggunakan DROP membuat koneksi tampak ke alamat IP yang kosong. Pemindai dapat memilih untuk tidak melanjutkan pemindaian alamat yang tampaknya kosong. Mengingat bahwa NAT dapat digunakan untuk mengalihkan koneksi di firewall, keberadaan layanan yang terkenal tidak serta merta menunjukkan adanya server di suatu alamat.
Identitas harus diteruskan atau ditolak di alamat mana pun yang menyediakan layanan SMTP. Namun, penggunaan pencarian Ident oleh layanan SMTP tidak lagi digunakan. Ada protokol obrolan yang juga mengandalkan layanan identitas yang berfungsi.
EDIT:Saat menggunakan aturan DROP:- Paket UDP akan dihapus dan perilakunya akan sama dengan menghubungkan ke port yang tidak di-firewall tanpa layanan. - Paket TCP akan mengembalikan ACK/RST yang merupakan respons yang sama dengan port terbuka tanpa layanan di atasnya akan merespons dengan. Beberapa router akan merespons dengan dan ACK/RST atas nama server yang sedang down.
Saat menggunakan aturan REJECT, paket ICMP dikirim yang menunjukkan bahwa port tidak tersedia.
Solusi 2:
Perbedaannya adalah target REJECT mengirimkan tanggapan penolakan ke sumber, sedangkan target DROP tidak mengirimkan apa pun.
Ini bisa bermanfaat mis. untuk layanan identitas. Jika Anda menggunakan REJECT maka klien tidak perlu menunggu waktu tunggu.
Lebih lanjut tentang ini:http://www.linuxtopia.org/Linux_Firewall_iptables/x4550.html
Solusi 3:
Biasanya, Anda ingin mengabaikan probe dari penyerang ke port tertentu, yang saya maksud Anda tidak ingin mengirim kembali 'koneksi ditolak'. 'Koneksi ditolak' berarti:'ada server di sini', dan mungkin memberikan lebih banyak informasi, sedangkan menjatuhkan paket tidak memberikan petunjuk tentang versi perangkat lunak, kemungkinan kerentanan atau bahkan fakta bahwa server mendengarkan IP Anda.
Di atas adalah salah satu alasan utama untuk menggunakan DROP daripada REJECT.
Solusi 4:
Saya melihat banyak jawaban yang bertentangan di sini dan mengingat ini adalah artikel pertama di Google dengan kata kunci yang tepat; berikut penjelasan yang benar.
Itu mudah:
DROP tidak melakukan apa pun dengan paket tersebut. Itu tidak diteruskan ke host, tidak dijawab. Halaman manual dari IPtables mengatakan itu menjatuhkan paket ke lantai, yaitu tidak melakukan apa pun dengan paket tersebut.
REJECT berbeda dengan DROP yang mengirimkan paket kembali, tetapi jawabannya adalah seolah-olah server terletak di IP, tetapi tidak memiliki port dalam status mendengarkan. IPtables akan mengirimkan RST/ACK jika TCP atau dengan UDP port tujuan ICMP tidak dapat dijangkau.
Solusi 5:
Jika Anda mencoba menyembunyikan keberadaan mesin Anda seluruhnya, -j DROP
tepat. Misalnya, Anda dapat menggunakan ini untuk menerapkan daftar hitam.
Jika Anda mencoba menyembunyikan fakta bahwa port terbuka, Anda harus meniru perilaku yang akan terjadi jika port tidak terbuka:
- TCP:
-p tcp -j REJECT --reject-with tcp-reset
- UDP:
-p udp -j REJECT --reject-with icmp-port-unreachable
Jika pemindai port melihat bahwa beberapa port melepaskan paket sementara sebagian besar menolaknya, ia dapat berasumsi bahwa paket yang dijatuhkan berada di port yang terbuka tetapi tersembunyi.