Jawaban lain digunakan iptables -I
dalam contoh mereka, yang seringkali bukan yang seharusnya Anda gunakan.
iptables akan menjalankan aturan pertama yang cocok, sehingga urutan aturan sangat penting. -I
adalah perintah "masukkan", dan harus digunakan dengan parameter indeks untuk menentukan di mana dalam daftar aturan yang diberikan berada. -A
adalah perintah "append", yang akan menambahkan aturan ke akhir daftar.
Dalam beberapa distrobutions (mungkin semua) menggunakan -I
tanpa parameter indeks akan menambahkan aturan ke indeks satu, menjadikannya aturan pertama yang diperiksa. Dalam skenario ini jika perintah terakhir yang Anda jalankan adalah iptables -I INPUT -s tcp 0.0.0.0/0 -j DROP
iptables akan menjatuhkan semua lalu lintas, terlepas dari apakah Anda memiliki ACCEPT
aturan atau tidak nanti dalam rantai.
Berikut contoh pengaturan aturan yang hanya mengizinkan SSH dari satu IP:
Mulai tanpa aturan:
#> iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Tambahkan aturan "izinkan SSH baru dari 1.2.3.4":
#>iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
Blokir SSH dari semua IP lain:
#>iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 22 -j DROP
Sekarang rantai INPUT Anda akan terlihat seperti:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Kemudian, jika Anda perlu memasukkan daftar putih IP kedua Anda dapat menggunakan -I
parameter untuk menempatkannya sebelum aturan daftar hitam.
#>iptables -I INPUT 2 -p tcp -s 4.3.2.1 --dport 22 -j ACCEPT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 1.2.3.4 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 4.3.2.1 0.0.0.0/0 tcp dpt:22
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Perhatikan bahwa menggunakan -I INPUT 2
menambahkan aturan baru sebagai aturan nomor 2 dan menabrak aturan DROP ke nomor 3.
iptables
mendukung inversi dengan operator letusan jika Anda ingin melakukan yang ditargetkanDROP
. Contoh:iptables -I INPUT -p tcp ! -s <permittedIP> -j DROP