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

Best practices 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 interface

Prerouting

Forward

Postrouting

Network 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
–j DROP

OUPUT --destination 10.0.0.0/24 \

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

Opriţi tot traficul 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 Interne t NEW Firewall RELATED ESTABLISHED LAN eth1

# 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
Interne t eth0 Firewall eth2 LAN2 eth1 LAN1

# 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
Interne t eth0 141.85.1.1 Firewall eth2 LAN2 192.168.1.0/24 eth1 LAN1 10.0.0.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 eth1 eth0 10.0.0. Firewall 1 80

Interne t

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

Staţiile din reţeaua locală să aibe acces la internet 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

Sign up to vote on this title
UsefulNot useful