iptables passo-passo - Portale Memolinux

Transcript

iptables passo-passo - Portale Memolinux
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

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...

Dettagli

Packet Filter in LINUX (iptables)

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

Dettagli

iptables - WebProg.Net

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...

Dettagli

Iptables - Giacomo Strangolino

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

Dettagli

Iptables per tutti

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...

Dettagli

Questo - netstudent - Politecnico di Torino

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)

Dettagli

Guida Pratica a iptables - NOTA: Sito in riallestimento

Guida Pratica a iptables - NOTA: Sito in riallestimento iptables ­D OUTPUT 2 cancella la regole numero 2 dalla catena di output

Dettagli