Mengapa aturan iptables saya tidak berfungsi?

9

Saya memiliki dua antarmuka pada VPS saya: eth0dan eth0:0. Saya ingin memblokir paket yang masuk pada port 80 eth0:0menggunakan iptables. Saya mencoba ini, tetapi tidak berhasil:

iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP

Jika saya mengubah eth0:0ke eth0bekerja dengan benar. Apa masalahnya?

sinoohe
sumber
4
Saya memecahkan pertanyaan saya dengan cara ini: antarmuka saya adalah virtual sehingga iptables tidak dapat mengaksesnya, jadi saya memblokir antarmuka dengan IP antarmuka saya bukan dengan nama antarmuka perintah saya adalah: iptables-A INPUT -p tcp --p tcp --dport 80 -d {ETH0: 0's IP} -j REJECT
sinoohe

Jawaban:

6

Cerpen: cara Anda melakukannya itu benar (sesuai komentar Anda untuk pertanyaan).

Ceritanya panjang: di Linux, 'perangkat' jaringan yang disebut foo:baradalah 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 addrperintah).

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 melakukannya ifconfigsangat singkat. Itu HWaddrjuga harus identik dengan antarmuka 'induk'. Mereka juga tidak akan terdaftar /proc/net/dev. Jika Anda mengatakan ip addr, eth0:0akan ditampilkan sebagai alamat antarmuka kedua eth0. (cari garis indentasi yang dimulai dengan inet)

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.

Alexios
sumber