Apa perbedaan antara rantai OUTPUT dan FORWARD di iptables?

22

CentOS 6.0

Saya sedang mempelajari iptables dan saya bingung tentang perbedaan antara rantai FORWARD dan OUTPUT. Dalam dokumentasi pelatihan saya, ini menyatakan:

Jika Anda menambahkan (-A) atau menghapus dari (-D) rantai, Anda ingin menerapkannya pada data jaringan yang bepergian dalam salah satu dari tiga arah:

  • INPUT - Semua paket yang masuk diperiksa terhadap aturan dalam rantai ini.
  • OUTPUT - Semua paket keluar diperiksa terhadap aturan dalam rantai ini.
  • FORWARD - Semua paket yang dikirim ke komputer lain diperiksa sesuai aturan di rantai ini.

Ini membingungkan saya karena, dalam pikiran saya, paket yang berangkat ke host AKAN keluar. Jadi apakah ada skenario di mana suatu paket akan pergi ke komputer lain tetapi TIDAK menjadi "keluar"? Bagaimana iptables akan membedakan keduanya?

Mike B
sumber

Jawaban:

26

OUTPUT adalah untuk paket yang dipancarkan oleh tuan rumah. Tujuan mereka biasanya adalah host lain, tetapi bisa menjadi host yang sama melalui antarmuka loopback, jadi tidak semua paket yang melalui OUTPUT sebenarnya keluar.

FORWARD adalah paket yang tidak dipancarkan oleh host atau diarahkan ke host. Mereka adalah paket-paket yang host hanya routing.

Ketika Anda mulai menggali paket mangling dan NAT, cerita lengkapnya agak lebih kompleks .

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Menarik ... jadi untuk tujuan pemahaman saya, apakah adil untuk mengatakan bahwa OUTPUT adalah untuk paket yang "berasal" dari sistem ... dan FORWARD adalah untuk paket yang tidak berasal dari sistem atau ditakdirkan untuk dan bukannya akan "melalui" sistem?
Mike B
1
Tidak cukup, paket yang "diteruskan" juga "keluaran" oleh antarmuka jaringan .. seperti halnya paket "input" sebelum "diteruskan". Paket masuk, ditujukan untuk sistem asing, paket masuk ke rantai "maju" , iptables memutuskan OK untuk meneruskan, paket memasuki "rantai keluaran", cek iptables, lihat "ok" untuk output, paket pergi .. simples!
Grizly
2
@ Grizly Tidak, dari memori (saya akui saya belum menguji secara spesifik saat menulis jawaban ini) dan menurut diagram yang saya tautkan, sebuah paket selalu melewati persis salah satu dari tiga filterrantai ( INPUTatau OUTPUTatau FORWARD). (Dengan asumsi rantai lain tidak jatuh sebelumnya.) Rantai mangledan natberbeda, mungkin Anda berpikir tentang manglerantai?
Gilles 'SANGAT berhenti menjadi jahat'
0

Untuk pemahaman saya:

INPUT: dst IP ada di host, bahkan ia memiliki banyak port dengan beberapa subnet

OUTPUT: src IP berasal dari host, baik port

FORWARD: Baik IP dst pada host maupun IP src dari host

masukkan deskripsi gambar di sini

Misalnya ke router A

INPUT adalah:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

OUTPUT adalah:

192.168.10.199 -> xxxx

192.168.2.1 -> xxxx

FORWARD adalah:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

flz
sumber