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.
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.
Risposte:
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 .
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
ACCEPTtutto sulle altre interfacce.
L'opzione per specificare un'interfaccia nella regola iptables è -i, ad esempio: -i eth0.
È 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.