iptables, urutan aturan - apakah saya memahaminya dengan benar?

17

Saya ingin mengkonfigurasi VPS saya dengan cara HANYA menerima koneksi dari luar pada port 22 (di mana sshd mendengarkan) dan permintaan ICMP. Segala sesuatu yang lain dari luar harus ditolak. Di dalam server, semuanya harus diizinkan. Apakah aturan berikut membuat perilaku yang diinginkan?

iptables -A INPUT --jump ACCEPT --protocol all   --source 127.0.0.1
iptables -A INPUT --jump ACCEPT --protocol tcp   --dport 22
iptabels -A INPUT --jump ACCEPT --protocol icmp
iptables -A INPUT --jump ACCEPT --match state    --state ESTABLISHED,RELATED
iptables -A INPUT --jump REJECT --protocol all

Saya tidak sepenuhnya yakin apakah aturan ACCEPT akan "menang" atas keseluruhan TOLAK terakhir

Xpector
sumber
1
Anda seharusnya tidak menggunakan --source 127.0.0.1untuk menentukan apakah suatu paket aman untuk diterima. Lihat serverfault.com/a/825231/4131
Bruno Bronosky

Jawaban:

20

Anda benar.

Aturan akan diproses sesuai urutan file. Jika ada kecocokan untuk suatu aturan, tidak ada aturan lain yang akan diproses untuk paket IP dalam kasus Anda.

http://en.wikipedia.org/wiki/Iptables

Setiap aturan dalam rantai berisi spesifikasi paket yang cocok. Ini juga dapat berisi target (digunakan untuk ekstensi) atau vonis (salah satu keputusan bawaan). Saat sebuah paket melintasi rantai, setiap aturan pada gilirannya diperiksa. Jika aturan tidak cocok dengan paket, paket diteruskan ke aturan berikutnya. Jika aturan cocok dengan paket, aturan mengambil tindakan yang ditunjukkan oleh target / vonis, yang dapat menyebabkan paket diizinkan untuk melanjutkan sepanjang rantai atau mungkin tidak

NGRode
sumber