Abilita iptables su un'unica interfaccia


16

Voglio che iptables possa filtrare solo un'interfaccia, eth0, che sta affrontando WAN. Come si può fare? E voglio mantenere aperte le porte ftp e ssh su eth0.


Si prega di leggere le pagine man di iptables - o nel caso in cui ho frainteso il problema, si prega di rendere la domanda più specifica.
Jari Jokinen l'

Risposte:


25

Quindi per tutte le interfacce, tranne una, si desidera accettare tutto il traffico e su eth0 si desidera eliminare tutto il traffico in entrata tranne ftp e ssh.

Innanzitutto, potremmo impostare una politica di accettazione di tutto il traffico per impostazione predefinita.

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

Quindi, potremmo ripristinare le regole del firewall.

iptables -F

Ora potremmo dire che vogliamo consentire il traffico in entrata su eth0 che fa parte di una connessione che abbiamo già consentito.

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Inoltre, vogliamo consentire le connessioni ssh in entrata su eth0.

iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

Ma qualsiasi altra cosa in arrivo su eth0 dovrebbe essere abbandonata.

iptables -A INPUT -i eth0 -j DROP

Per un po 'più di profondità vedi questa voce wiki CentOS .

FTP è più complicato di ssh poiché può usare una porta casuale, quindi vedi questa domanda precedente .


5
AVVERTIMENTO!!! Fai "iptables -P ..." prima di "iptables -F". Se le tue regole attuali sono impostate per eliminare il traffico per impostazione predefinita, l'esecuzione di -F ti bloccherà fuori dalla tua casella. Questo è il motivo per cui è consigliabile mantenere la politica predefinita per consentire e aggiungere in modo specifico una regola per eliminare tutto il resto del traffico.
Coop

8

Qualcosa del genere dovrebbe fare il lavoro:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT

1
Praticamente a posto (anche se forse un po 'più bello di "Rilascia TUTTO" sull'interfaccia WAN, eh?) - Scrivi le regole per filtrare l'interfaccia che vuoi filtrare e ACCEPTtutto sulle altre interfacce.
voretaq7,

4

L'opzione per specificare un'interfaccia nella regola iptables è -i, ad esempio: -i eth0.


4

È molto semplice quando si crea una iptablesregola, quindi è necessario specificare l'interfaccia. L'opzione per specificare la scheda LAN su cui iptablesdovrebbe funzionare è-i

Le seguenti regole possono darti un buon esempio

iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset 

L'ultima regola è di rifiutare qualsiasi altro pacchetto che non corrisponde alle prime 2 regole. Tutte le regole in iptablesvengono eseguite nell'ordine dato, quindi la regola per rifiutare i pacchetti è sempre l'ultima.

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.