Sunteți pe pagina 1din 21

IPTABLES

- de la simplu la complex -
Răzvan Dobre
razvan.dobre@cti.pub.ro
Agenda
1. Introducere în iptables
 QA
2. Utilizări de bază
 Demo 1
3. Utilizări avansate
 Demo 2
4. Best practices
5. QA

2 IPTABLES 4 dec. 2010


Introducere în IPTABLES

 Ce este iptables?
 Utilitar ce permite configurarea unui firewall linux
 Foloseşte hookurile disponibile în kernelul linux

 Ce este un firewall?
 Echipament/soft de protejare a unei reţele
 O listă de reguli aplicate traficului
 Accept sau Drop

 Este necesar un firewall?

3 IPTABLES 4 dec. 2010


Introducere în IPTABLES

 Tipuri de firewall-uri

 Deny all
 Opreşte tot traficul mai puţin cel util
 Cel mai des întâlnit – permite un control bun al traficului

 Accep all
 Acceptă tot traficul mai puţin cel nepermis

4 IPTABLES 4 dec. 2010


Introducere în IPTABLES

 Modalităţi de grupare a regulilor


 Tabele
 Scop predefinit
 Regulile de filtrare se adaugă în tabela filter, etc
 Filter, Nat, Mangle, Raw

 Lanţuri (Chain-uri)
 Permit inspectarea pachetelor într-un anumit moment al
procesării lor
 Prerouting, Input, Forward, Output, Postrouting
 Corespund hookurilor din kernel (netfilter)

5 IPTABLES 4 dec. 2010


Introducere în IPTABLES
 Drumul pachetelor prin kernel

Input Procesul local Output

Network Network
interface Prerouting Forward Postrouting interface

6 IPTABLES 4 dec. 2010


Introducere în IPTABLES
 Maparea între tabele şi chainuri

Filter NAT Mangle

Prerouting Input Forward Output Postrouting

7 IPTABLES 4 dec. 2010


Introducere în IPTABLES
 Parcurgerea regulilor
 Secvenţială
 Până la primul match
 Dacă nu există nici un match
 Se aplică o politica implicită

 Sintaxă
 iptables –t table op chain match –j action
 Table – filter, nat, mangle
 Op – Append, Insert, Delete, List
 Action – ACCEPT, DROP, MASQUERADE, etc.

8 IPTABLES 4 dec. 2010


“Enough talk let’s fight”
 QA

9 IPTABLES 4 dec. 2010


Utilizări de bază

 Setarea politicii implicite


 iptables -P chain target
 Ex.: # iptables –P INPUT DROP

 Politica implicită se aplică ultima


 Atenţie:
 puteţi rămâne pe afară

10 IPTABLES 4 dec. 2010


Utilizări de bază
 Exemple de reguli simple
 Input
 # iptables –t filter -A INPUT --source 10.0.0.0/24 –j ACCEPT

 Output
 # iptables –t filter –I OUPUT --destination 10.0.0.0/24 \
–j DROP

 MASQUERADE
 # iptables –t nat –A POSTROUTING --source 192.168.0.0/16 \
--out-interface eth0 –j MASQUERADE

 Debuging
 # iptables –L –n –v --line-numbers

 Documentaţie
 man iptables

11 IPTABLES 4 dec. 2010


Utilizări de bază
 Mini script
 V1
#!/bin/bash
iptables –F # sterge (flush) regulile anterioare
iptables –P INPUT ACCEPT
iptables –A INPUT –p tcp –s 10.0.0.0/24 --dport 22 –j ACCEPT
iptables –A INPUT –p tcp –-dport 22 –j DROP

 V2 ?
#!/bin/bash
iptables –F # sterge (flush) regulile anterioare
iptables –P INPUT ACCEPT
iptables –A INPUT –p tcp --dport 22 –j DROP
iptables –A INPUT –p tcp –s 10.0.0.0/24 –-dport 22 –j ACCEPT

12 IPTABLES 4 dec. 2010


Demo 1
 Sunteţi administrator de reţea la o firmă şi primiţi ca
sarcină să opriţi accesul la youtube.com.
1. Opriţi tot traficul
2. Opriţi doar traficul http

13 IPTABLES 4 dec. 2010


Utilizări avansate

 Module
 State – reguli bazate pe starea conexiunii
 NEW, RELATED, ESTABLISHED
 Recent – crearea unei liste temporare de “bad-guys”
 Time – reguli bazate pe time
 Access permis doar intr-un anumit interval orar
 etc

14 IPTABLES 4 dec. 2010


Utilizări avansate
 State
 Scop: se permit doar pachetele de răspuns
eth0 eth1
NEW
Interne
Firewall LAN
t
RELATED
ESTABLISHED

# iptables -A INPUT -i eth0 -m state \


--state NEW -j DROP
sau
# iptables -A INPUT -i eth0 -p tcp --syn \
-j DROP

15 IPTABLES 4 dec. 2010


Utilizări avansate
 Forward
 Scop: LAN1 nu poate accesa LAN2
LAN1
eth0 eth1
Interne
Firewall
t
eth2
LAN2

# iptables –P FORWARD ACCEPT


# iptables –A FORWARD –i eth1 –o eth2 –j DROP
# iptables –A FORWARD –i eth2 –o eth1 –j DROP

16 IPTABLES 4 dec. 2010


Utilizări avansate
 SNAT
 Scop: LAN1 poate accesa internetul
LAN1 10.0.0.0/24
eth0 eth1
Interne
Firewall
t 141.85.1.1
eth2
LAN2 192.168.1.0/24

# iptables -t nat -A POSTROUTING \


-o eth0 -s 10.0.0.0/24 \
-j SNAT --to-source 141.85.1.1

17 IPTABLES 4 dec. 2010


Utilizări avansate
 DNAT
 Scop: accesarea HOST1 din internet
8080
HOST1
eth0 eth1
Interne 10.0.0.
Firewall
t 1
80

# iptables –t nat –A PREROUTING –i eth0 –p tcp \


--dport 80 –j DNAT --to-destination 10.0.0.1:8080

# iptables –t nat –A PREROUTING –i eth0 –p udp \


--dport 80 –j DNAT --to-destination 10.0.0.1:8080

18 IPTABLES 4 dec. 2010


Demo 2
 Configuraţi ROUTER-ul astfel încât:
1. Staţiile din reţeaua locală să aibe acces la internet
2. Serverele să nu aibe acces în reţeaua locală

19 IPTABLES 4 dec. 2010


Best practices
 Don’t lock yourself out!
 Acceptaţi întotdeauna conexiunile de pe loopback
 Opriţi tot traficul de care nu aveţi nevoie
 Limitaţi numărul de conexiuni/sec pentru serviciile ce
necesită autentificare
 fail2ban, denyhosts
 Opriţi traficul suspicios
 Flaguri TCP nevalide
 Ex.: cristmass tree
 Pachete IP nevalide
 Ex.: pachete din internet cu sursa din reţeaua locală

20 IPTABLES 4 dec. 2010


QA

21 IPTABLES 4 dec. 2010

S-ar putea să vă placă și