Devo anche impostare altre regole di iptables per ipv6 se ho appena usato iptables?


21

Supponiamo di avere una configurazione del firewall sul mio server Linux con iptables in modo che accetti solo il traffico della porta 22 e della porta 80 e blocchi l'accesso a tutte le altre porte.

Queste regole funzionano solo se il computer client utilizza un indirizzo IPv4? Quindi, se viene utilizzato un indirizzo ipv6, il client può accedere alle porte che non voglio che siano? (ovvero porte diverse dalla porta 22 e dalla porta 80)


Non hai contrassegnato nessuna delle risposte come utili. Dovresti farlo. ;-)
Anders,

Risposte:


21

iptablesfunziona per IPv4, ma non per IPv6. ip6tablesè il firewall IPv6 equivalente ed è installato con iptables.

Alla fine, tuttavia, iptablesè per le connessioni IPv4, ip6tablesè per le connessioni IPv6. Se vuoi che le tue iptablesregole si applichino anche a IPv6, devi aggiungerle anche a ip6tables.


Se provi a replicare il tuo iptablesset di regole ip6tables, non tutte le regole che iptablespossono fare verranno trasferite ordinatamente ip6tables, ma la maggior parte di esse lo farà.

Fare riferimento alla manpage perip6tables se si desidera assicurarsi che i comandi utilizzati nella propria iptablesporta vengano ordinatamente trasferiti.


Se lo desideri, possiamo aiutarti a creare ip6tablesset di regole equivalenti per abbinare le tue iptablesregole, se fornisci l'elenco delle regole del firewall (rimuovendo qualsiasi informazione che possa identificare il sistema di coruse). Altrimenti, possiamo solo rispondere alla tua domanda generale.


10
Questo tipo di ridicolo non è allora? Per chiarire, quindi in questo momento tutte le mie porte sul server sono spalancate a chiunque si connetta con un indirizzo IPv6?
user230779

3
@ user230779 Sono d'accordo che è "ridicolo" ma questo è il motivo ufwper cui esistono altri gestori di firewall, che aggiungono le regole stesse ad entrambi, di conseguenza. Il problema qui a portata di mano, tuttavia, non è "Qualcuno con IPv6 può vedere il mio sito?" il problema maggiore è se il tuo sistema ha indirizzi IPv6. La maggior parte delle connessioni ha IPv4 e IPv6 da computer client come il mio. Ma se il server remoto non ha IPv6 di fronte al pubblico, allora IPv4 è connesso. A quanto ho capito, però, se si dispone di IPv6, è necessario aggiungere anche le regole ip6tables.
Thomas Ward

1
@ user230779 Potrei creare uno script che esegua lo stesso comando per iptablesAND ip6tables, e le regole generali come -p tcp --dportfunzioneranno ancora, ma regole più complesse potrebbero non ... (come -j REJECT --reject-with [something])
Thomas Ward

Thomas, puoi collegarmi a un esempio sicuro di ip6tables per un server web apache?
user230779

1
@Braiam non ha mai detto nulla delle bandiere. Alcuni comandi non funzioneranno ( -j REJECT --reject-with icmp-host-prohibitedad esempio perché il pacchetto di rifiuto ha un nome diverso in IPv6)
Thomas Ward

3

Come altri hanno già detto, esistono diverse tabelle firewall per IPv4 e IPv6. È possibile impostare regole per IPv6 come per IPv4, ma c'è un grosso rischio che si rovini se non si conosce IPv6. Ad esempio, non puoi rinunciare ICMPa IPv6, in quanto vi sono parti essenziali della stretta di mano lì. Come dire al mittente che i frame sono troppo grandi, ecc. Senza queste cose, IPv6 potrebbe smettere di funzionare per alcuni utenti.

Quindi consigliamo vivamente l'uso ufwo il pacchetto shorewall6insieme a shorewall. Il iptablesfrontend ufwsupporta sia IPv4 che IPv6 e funziona perfettamente su server con una o due interfacce ma non indirizza il traffico (funziona come router o gateway). Se instradi il traffico, hai bisogno di qualcosa di meglio, ad esempio shorewallo aggiungi manualmente alcune regole per l'inoltro con iptablese ip6tables.

Non dimenticare che puoi avere più di un indirizzo IPv6 sulle tue interfacce. Alcuni sono solo link locali, altri sono globalmente statici e dinamici. Quindi dovresti impostare le regole di conseguenza e i server ascoltano solo gli indirizzi giusti.

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.