Solusi 1:
Pertama beri -p
opsi seperti -p tcp
atau -p udp
.
Contoh:
iptables -A INPUT -p tcp --dport 22 -m status --status BARU -j DROP
iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -j TERIMA
Anda juga dapat mencoba -p all
tetapi saya belum pernah melakukannya dan tidak menemukan terlalu banyak dukungan untuk itu dalam contoh.
Solusi 2:
Protokol (-p) diperlukan jika Anda menggunakan --dport. Contoh:
-p tcp
Solusi 3:
@dmourati dan @diegows sudah menjawab pertanyaan pertama Anda, jadi saya akan menangani pertanyaan kedua Anda. Dan pertanyaan bonus. Dan saya juga akan memberikan tip bonus;)
iptables -P
hanya menerima rantai BUILT-IN. Di filter
tabel, yaitu INPUT
, OUTPUT
, dan FORWARD
rantai.
Penerusan port tidak ditangani oleh INPUT
rantai, jadi Anda tidak perlu membuka port di INPUT
rantai. ya ditangani oleh FORWARD
rantai, meskipun. Hati-hati dengan itu.
Kiat bonus: Saat mempelajari dan/atau memecahkan masalah iptables
, keluaran dari iptables-save
adalah kepala &bahu lebih baik daripada keluaran iptables -L -v --line-numbers
. Cobalah, Anda akan terkejut :)
Solusi 4:
Solusi lain yang mungkin adalah Anda lupa menjalankan sebagai root. Saya baru saja menemukan ini saat menggunakan tutorial debian
$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -I PREROUTING --src 0/0 --dst 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8080
# OK
Solusi 5:
Jika iptables
laporkan bahwa ia menggunakan nftables
, seseorang perlu menggunakan iptables-legacy
sebagai gantinya.
Misalnya:
Gunakan iptables-legacy -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
Alih-alih iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
Itu pertanyaan lama, tapi itu yang pertama di hasil penelusuran.