Saya memiliki aturan ini di iptables saya:
iptables -A INPUT -p tcp -m tcp --dport 9191 -j DROP
Apakah saya benar-benar membutuhkan "-m tcp"? Saya sudah menggunakan "-p tcp", jadi haruskah saya menggunakan "-m tcp" agar lebih aman?
Dengan -p tcp
opsi, modul tcp sudah dimuat dan karenanya agak berlebihan dan tidak harus menggunakan -m tcp
opsi dan saya tidak melihat alasan mengapa menggunakan opsi ini akan membuat aturan lebih aman.
Silakan lihat halaman manual iptables untuk pemahaman dan perbandingan yang lebih baik:
-p, --protocol [!] protokol
Protokol aturan atau paket yang akan diperiksa. Protokol yang ditentukan dapat berupa salah satu dari tcp, udp, icmp, atau semua, atau dapat berupa nilai numerik, mewakili salah satu dari protokol ini atau yang berbeda. Nama protokol dari / etc / protocols juga diperbolehkan. SEBUAH "!" Argumen sebelum protokol membalikkan tes. Angka nol sama dengan semua. Protokol semua akan cocok dengan semua protokol dan diambil sebagai default ketika opsi ini dihilangkan.
...
Cocokkan Ekstensi
iptables dapat menggunakan modul pencocokan paket yang diperluas. Ini dimuat dalam dua cara: secara implisit, ketika -p atau --protocol ditentukan, atau dengan opsi -m atau --match, diikuti oleh nama modul yang cocok; setelah ini, berbagai opsi baris perintah tambahan tersedia, tergantung pada modul tertentu. Anda dapat menentukan beberapa modul kecocokan yang diperluas dalam satu baris, dan Anda dapat menggunakan opsi -h atau --help setelah modul ditentukan untuk menerima bantuan khusus untuk modul itu.
Dan untuk daftar opsi yang tersedia dengan -p tcp
lihat di sini:
http://ipset.netfilter.org/iptables-extensions.man.html#lbCF
Seperti yang dinyatakan di atas, dengan penggunaan -m
opsi dimungkinkan untuk menambahkan modul ekstensi dan lebih banyak opsi yang cocok kemudian tersedia. Misalnya modul cpu :
cpu
[!] - nomor cpu
Cocokkan cpu yang menangani paket ini. cpus diberi nomor dari 0 hingga NR_CPUS-1 Dapat digunakan dalam kombinasi dengan RPS (Remote Packet Steering) atau NIC multiqueue untuk menyebarkan lalu lintas jaringan pada antrian yang berbeda.
Contoh:
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 0 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -p tcp --dport 80 -m cpu --cpu 1 -j REDIRECT --to-port 8081
Tersedia sejak Linux 2.6.36.
Daftar lengkap iptables-extensions.
Pertanyaan tambahan dari OP: Saya tidak mengerti apa yang cocok dengan -m. String apa? -m tcp cocok dengan apa? Mencoba menemukan kata "tcp" di mana?
Jawab: -m
untuk pencocokan nama modul dan bukan string. Dengan menggunakan modul tertentu Anda mendapatkan opsi tertentu yang cocok. Lihat contoh modul cpu di atas. Dengan -m tcp
modul tcp dimuat. Modul tcp memungkinkan opsi tertentu: --dport, --sport, --tcp-flags, --syn, --tcp-option
untuk digunakan dalam aturan iptables. Tetapi menggunakan -p tcp
modul tcp yang sudah diaktifkan, itu sebabnya kita masih bisa menggunakan opsi itu bahkan tanpa menggunakan -m tcp
. Semoga ini menghilangkan semua kebingungan Anda.
-m
opsi sebenarnya digunakan untuk memuatextension modules
yang menyediakan opsi tambahan. Lihat jawaban saya yang diperbarui dan tautannya misalnya.-m tcp
opsi.--dport
adalah bagian dari modul tcp dan hanya akan berfungsi dengan baik-p tcp
. Silakan merujuk jawaban saya lagi.