Perché la mia regola iptables non funziona?


9

Ho due interfacce sul mio VPS: eth0e eth0:0. Voglio bloccare i pacchetti in arrivo sulla porta 80 eth0:0usando iptables. Ho provato questo, ma non funziona:

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

Se cambio eth0:0a eth0funziona correttamente. Qual è il problema?


4
Ho risolto la mia domanda in questo modo: la mia interfaccia era virtuale in modo che iptables non potesse accedervi, quindi ho bloccato l'interfaccia dall'IP della mia interfaccia non dal nome dell'interfaccia il mio comando è: iptables -A INPUT -p tcp --dport 80 -d {ETH0: 0's IP} -j REJECT
sinoohe

Risposte:


6

Il racconto: il modo in cui lo hai fatto è corretto (come da tuo commento alla domanda).

La lunga storia: su Linux, un "dispositivo" di rete chiamato foo:barè un alias di "pippo" utilizzato quando è necessario assegnare più impostazioni di rete all'interfaccia "pippo", ad esempio per far sì che risponda su più sottoreti sullo stesso filo.

Questo è un modo kludgy per farlo, e incoerente per l'avvio. Per IPv6, tutti gli indirizzi assegnati all'interfaccia eth0 sono elencati insieme nella voce eth0. C'è un metodo più moderno per farlo (tramite il ip addrcomando).

Puoi individuare le interfacce alias perché hanno i due punti :nei loro nomi, la parte alla sinistra dei due punti è un nome di interfaccia esistente e la stanza dell'interfaccia quando lo fai ifconfigè molto breve. L' HWaddrdovrebbe anche essere identica a quella dell'interfaccia 'genitore'. Inoltre non saranno elencati in /proc/net/dev. Se dovessi dire ip addr, eth0:0mostrerebbe come il secondo indirizzo dell'interfaccia eth0. (cerca la riga rientrata che inizia con inet)

Gli alias e i loro genitori condividono molte impostazioni e campi, poiché condividono il livello fisico. Il kernel non li tratta come interfacce completamente separate. Per uno, il traffico appare sull'interfaccia padre , non sull'alias. Potresti aver notato che l'alias non ha nemmeno contatori di pacchetti / byte!

Se devi annusare traffico, firewall, ecc. Su un'interfaccia alias, devi invece usare il suo genitore. Poiché l'unica differenza che un alias ha rispetto al suo genitore sono le sue impostazioni IPv4, l'unico modo per abbinare il traffico su un alias è usare quelle impostazioni IP. Con iptables, abbini l'indirizzo IPv4 dell'alias proprio come hai fatto nel commento alla tua risposta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.