Saya memiliki dua antarmuka pada VPS saya: eth0
dan eth0:0
. Saya ingin memblokir paket yang masuk pada port 80 eth0:0
menggunakan iptables. Saya mencoba ini, tetapi tidak berhasil:
iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP
Jika saya mengubah eth0:0
ke eth0
bekerja dengan benar. Apa masalahnya?
Jawaban:
Cerpen: cara Anda melakukannya itu benar (sesuai komentar Anda untuk pertanyaan).
Ceritanya panjang: di Linux, 'perangkat' jaringan yang disebut
foo:bar
adalah alias 'foo' yang digunakan ketika kita perlu menetapkan beberapa pengaturan jaringan ke antarmuka 'foo', misalnya untuk membuatnya merespons pada beberapa subnet pada kabel yang sama.Ini adalah cara kotor untuk melakukan ini, dan tidak konsisten untuk boot. Untuk IPv6, semua alamat yang ditetapkan untuk antarmuka eth0 terdaftar bersama di bawah entri eth0. Ada metode yang lebih modern untuk melakukan ini (melalui
ip addr
perintah).Anda dapat melihat alias antarmuka karena mereka memiliki titik dua
:
dalam namanya, bagian di sebelah kiri titik dua adalah nama antarmuka yang masih ada, dan antarmuka antarmuka ketika Anda melakukannyaifconfig
sangat singkat. ItuHWaddr
juga harus identik dengan antarmuka 'induk'. Mereka juga tidak akan terdaftar/proc/net/dev
. Jika Anda mengatakanip addr
,eth0:0
akan ditampilkan sebagai alamat antarmuka keduaeth0
. (cari garis indentasi yang dimulai denganinet
)Alias dan orang tua mereka berbagi banyak pengaturan dan bidang, karena mereka berbagi lapisan fisik. Kernel tidak memperlakukan mereka sebagai antarmuka yang sepenuhnya terpisah. Untuk satu, lalu lintas muncul pada antarmuka induk , bukan alias. Anda mungkin telah memperhatikan alias bahkan tidak memiliki penghitung paket / byte!
Jika Anda perlu mengendus traffic, firewall, dll pada antarmuka alias, Anda harus menggunakan induknya. Karena satu-satunya perbedaan yang dimiliki alias dari induknya adalah pengaturan IPv4-nya, satu-satunya cara untuk mencocokkan lalu lintas pada alias adalah dengan menggunakan pengaturan IP tersebut. Dengan
iptables
, Anda cocok dengan alamat IPv4 alias seperti yang Anda lakukan di komentar untuk jawaban Anda.sumber