iptables passo-passo - Portale Memolinux
Transcript
iptables passo-passo Prima del kernel 2.0 ipfwadm, dal kernel 2.2 ipchains, dopo il kernel 2.4 iptables Firewall (packet filtering, Nat (Network Address Translation)) NetFilter (layer del kernel per il firewall), iptables (interfaccia a netfilter per l'inserimento delle regole) Webmin/rete/Linux firewall Webmin/rete/Shoreline firewall (Shorewall) Altri sw Firestarter, Fwbuilder, ecc. Installare da Synaptic i sw Guarddog + Guidedog (per il NAT) Tre catene (chains) di base, si possono definire altre catene (convenzionalmente in minuscolo) INPUT ==> FORWARD <====> FIREWALL ==> OUTPUT FORWARD (utilizza due interfacce/schede di rete) Tabella FILTER (con le catene INPUT, OUTPUT, FORWARD) Tabelle create dall'utente Tabella di NAT (con le catene PREROUTING, OUTPUT, POSTROUTING) Tabella di MANGLE (per alterare i pacchetti) Per ogni catena si specifica l'azione che deve essere eseguita quando il pacchetto non soddisfa le regole. L'azione predefinita è ACCEPT, vengono accettati tutti i pacchetti senza alcun filtraggio. man iptables Alcuni parametri di iptables: -L -D -F -A -I ES visualizza le regole di una catena cancella una determinata regola di una catena cancella tutte le regole di una catena accoda una nuova regola inserisce una nuova regola 1 di 7 Three-way-handshake Meccanismo alla base delle connessioni TCP/IP. Numero tre rimpalli per instaurare la comunicazione “affidabile” con eventuale ritrasmissione. Client browser 1) flag Syn 2) 3) flag Ack Server Web (indicato con S) ===> porta 80 in ascolto <=== flag Syn+Ack (se il server web non è attivo risponde con il flag RST indicato da tcpdump con una R) ===> Installare tcpdump da Synaptic Di default tcpdump cattura il traffico da eth0 Tcpdump cattura tutti i pacchetti tcp in traffico, per catturare solo i pacchetti che interessano collegare client e server web da soli con un hub. Lanciare tcpdump e dopo collegarsi al server web con il browser del client Debian4r5 è il client, debianpc06a3 è il server web (cups porta 631) Il 1° pacchetto ha la S del flag Syn attivo, il 2° ha S e Ack attivi, il 3° ha Ack attivo ES 2 di 7 1 2 3 Protocollo UDP (User Datagram Protocol) Più semplice del TCP, mancano i sequence number dei pacchetti che i flag, non consente però una connessione “affidabile” con ritrasmissione. Esempi di iptables con una sola interfaccia: Usare CTRL ALT F1 <--> CTRL ALT F7 per commutare tra console e KDE 1) iptables -L INPUT (visualizza la catena INPUT vuota) 2) da altro PC http://ipserver (si collega con Apache) 3) iptables -A INPUT -i eth0 -p tcp - -syn -j DROP iptables -L INPUT (visualizza la tabella) target prot DROP ES source destination TCP anywhere anywhere 3 di 7 4) da altro PC http://ipserver (cerca ma non si collega più con Apache) 5) iptables -D INPUT 1 (n. di regola da cancellare, -F rimuove tutte le regole catena) iptables -L INPUT dalla (visualizza la catena INPUT vuota) 6) da altro PC http://ipserver (si collega con Apache) 7) iptables -A INPUT -i eth0 -p tcp - -syn -j REJECT come 8) da altro PC http://ipserver (finestra “Connessione rifiutata” se è impostato server proxy l'ip del server, finestra “Connessione Fallita” se non è impostato come server proxy l'ip del server) 9) iptables-save > nomefile01 (viene salvato in /root/) verificare con: iptables -L INPUT iptables -D INPUT 1 iptables -L INPUT iptables-restore < nomefile01 iptables -L INPUT 10) il file /etc/services contiene l'elenco dei numeri di porta 11) bloccare i pacchetti ICMP “echo request” generati dal comando ping iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -L (per visualizzare il contenuto della catena) con un ping ipfirewall non si ottiene alcuna risposta dal firewall iptables -p <proto> --help (per visualizzare le varie opzioni per un determinato protocollo es. echo request di icmp, al posto di <proto> inserire tcp, udp o icmp senza le parentesi angolari) 12) bloccare l'accesso a particolari siti Internet iptables -A OUTPUT -d www.ansa.it -p tcp --dport 80 -j DROP iptables -A OUTPUT -d www.rai.it -p tcp --dport 80 -j DROP iptables -L INPUT 13) per cambiare la policy di default di una catena iptables -P OUTPUT DROP (per bloccare tutti i pacchetti in output, posta, iptables -L INPUT 14) ES web, ecc.) bloccare telnet sul firewall proveniente da un particolare host 4 di 7 - nel protocollo TCP il primo pacchetto inviato è di tipo Syn - scartiamo tutti i pacchetti Syn provenienti dall'host iptables -A INPUT -p tcp -s iphost --syn -j DROP 15) le catene definite dall'utente si utilizzano richiamandole come azioni da una regola inserita in una delle tre catene predefinite: iptables -N nuovacatena iptables -A OUTPUT – d hostdestinazione -j nuovacatena vengono scandite le regole presenti nella catena OUTPUT e nella catena nuovacatena. Firewall e NAT (SNAT) (Network Address Translation) “Masquerading”. Viene utilizzata la catena FORWARD. Per condividere un unico collegamento Internet (ip pubblico) con tutti i PC di una LAN. Il NAT utilizza iptables con due interfacce. NAT dell'indirizzo sorgente (SNAT), POSTROUTING ==> dei pacchetti in uscita. NAT dell'indirizzo destinazione (DNAT), PREROUTING <== dei pacchetti in ingresso, per la redirezione delle connessioni (port forwarding), permette per esempio a un client su Internet di vedere un server web interno a una lan. Verificare se i seguenti moduli sono caricati: ip_tables, ip_conntrack, iptable_nat e ipt_MASQUERADE con modeprobe -l |grep parte_nomemodulo* iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE + l'abilitazione del forwarding con echo “1” > /proc/sys/net/ipv4/ip_forward (verificare il valore di ip_forward con cat /proc/sys/net/ipv4/ip_forward) NB-inserire questi comandi in /etc/rc.local per attivarli all'avvio Se il server NAT non vede la 2° scheda (wan) usare il comando: ifconfig eth0 172.16.64.49 netmask 255.255.255.0 Per vedere le catene PREROUTING, POSTROUTING e OUTPUT della tabella di NAT usare il comando: iptables -L -t nat ES 5 di 7 Per cancellare una regola (la prima) della tabella di NAT usare il comando: iptables -t nat -D POSTROUTING 1 Valori da impostare sul client: ip 192.168.0.2 mask 255.255.255.0 broadcast 192.168.0.255 gateway 192.168.0.1 route 192.168.0.1 dns 172.16.64.10 Sul browser impostare il proxy su 172.16.64.2:8080 Valori da impostare sul server NAT: eth0 (wan) ip 172.16.64.49 gw 172.16.64.100 route 172.16.64.100 (su eth0) dns 172.16.64.10 dns 172.16.64.2 eth1 (lan) ip 192.168.0.1 gw 172.16.64.49 Se da Centro di Controllo/Internet e rete/ del server NAT non prende il caricamento di Route: 172.16.64.100 (eth0), dare i seguenti comandi da console: ifconfig eth0 172.16.64.49 netmask 255.255.255.0 route add default gw 172.16.64.100 dev eth0 Al riavvio del server Nat verificare che su questo ci siano i giusti valori di: ip_forward regola Masquerade valori ip e route ES 6 di 7 se è installato Squid proxy deve essere stoppato (NB- si possono impostare in modo definitivo questi valori nel file /etc/rc.local vedi fotocopia). Dal client funzionano il browser web e la posta (kmail) !! ES 7 di 7
Documenti analoghi
Simulazione di routing e filtraggio con iptables Creare nuove VM
Ricordiamo che in ogni macchina virtuale desideriamo
avere disponibili quattro interfacce di rete, che vanno prima
di tutto definite in VirtualBox
Selezionare dall'elenco la VM appena creata, e cli...
Packet Filter in LINUX (iptables)
• La decisione avviene in base a:
– interfaccia di rete
– indirizzo IP sorgente/destinazione
– tipo di protocollo (UDP, TCP, ICMP, etc.)
– porta TCP/UDP di origine/destinazione
iptables - WebProg.Net
iptables -A INPUT -i eth0 -p udp -m state --state ESTABLISHED -j ACCEPT
# ACCEPT di tutte le nuove connessioni TCP ed invio alla tabella SYN per il filtraggio #
iptables -A INPUT -i eth0 -p tcp --s...
Iptables - Giacomo Strangolino
● NEW: un pacchetto crea una connessione;
● ESTABLISHED: un pacchetto appartiene a
una connessione esistente;
● RELATED: un pacchetto in relazione a una
connessione esistente, ma di cui non fa parte
Iptables per tutti
$iptables -A FORWARD -p tcp --syn -m limit 1/sec -j ACCEPT
--port = questa opzione è valida solo con -m multiport e -p tcp, -p udp, e viene applicata quando sia
la porta sorgente che quella di dest...
Questo - netstudent - Politecnico di Torino
L’opzione “-L” consente di visualizzare una catena (spesso abbinata con
l’opzione “-v” che consente di visualizzare maggiori informazioni e “-n” per non
fare reverse DNS di tutti gli IP)
Guida Pratica a iptables - NOTA: Sito in riallestimento
iptables D OUTPUT 2
cancella la regole numero 2 dalla catena di output