Ich habe zwei Schnittstellen auf meinem VPS: eth0
und eth0:0
. Ich möchte eingehende Pakete an Port 80 bei eth0:0
Verwendung von iptables blockieren . Ich habe es versucht, aber es funktioniert nicht:
iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP
Wenn ich dazu wechsle eth0:0
, eth0
funktioniert es richtig. Worin besteht das Problem?
Antworten:
Die Kurzgeschichte: Die Art und Weise, wie Sie das getan haben, ist richtig (gemäß Ihrem Kommentar zur Frage).
Die lange Geschichte: Unter Linux ist ein Netzwerk-Gerät namens
foo:bar
"foo" ein Alias von "foo", der verwendet wird, wenn der "foo" -Schnittstelle mehrere Netzwerkeinstellungen zugewiesen werden müssen, z. B. um sie auf mehrere Subnetze auf derselben Leitung reagieren zu lassen.Dies ist eine klobige Art und Weise und inkonsistent zu booten. Bei IPv6 werden alle der Schnittstelle eth0 zugewiesenen Adressen zusammen unter dem Eintrag eth0 aufgelistet. Es gibt eine modernere Methode, um dies zu tun (über den
ip addr
Befehl).Sie können Alias-Schnittstellen erkennen, da sie einen Doppelpunkt
:
in ihren Namen haben, der Teil links vom Doppelpunkt ein vorhandener Schnittstellenname ist und die Zeilengruppe der Schnittstelle, wenn Sie dies tun,ifconfig
sehr kurz ist. DasHWaddr
sollte auch mit dem der 'übergeordneten' Schnittstelle identisch sein. Sie werden auch nicht in aufgeführt/proc/net/dev
. Wenn Sie sagen würdenip addr
,eth0:0
würde als zweite Adresse der Schnittstelle anzeigeneth0
. (Achten Sie auf die eingerückte Linie, die mit beginnt.inet
)Aliase und ihre Eltern teilen viele Einstellungen und Felder, da sie die physische Schicht teilen. Der Kernel behandelt sie nicht als völlig separate Schnittstellen. Zum einen wird der Datenverkehr auf der übergeordneten Schnittstelle angezeigt , nicht auf dem Alias. Möglicherweise haben Sie bemerkt, dass der Alias nicht einmal Paket- / Bytezähler enthält!
Wenn Sie Datenverkehr, Firewall usw. auf einer Alias-Schnittstelle abhören müssen, müssen Sie stattdessen deren übergeordnetes Element verwenden. Da der einzige Unterschied zwischen einem Alias und seinem übergeordneten Element die IPv4-Einstellungen sind, besteht die einzige Möglichkeit, den Datenverkehr auf einem Alias abzugleichen, darin, diese IP-Einstellungen zu verwenden. Mit
iptables
stimmen Sie die IPv4-Adresse des Alias genau wie im Kommentar mit Ihrer Antwort ab.quelle