Title: Firewall et s
1Firewall et sécurité d'un réseau personnel sous
Linux
Olivier ALLARD-JACQUIN
- Introduction
- I Rappels sur les réseaux IP
- II Sécurité de base
- III Netfilter / Iptables
- IV Outils et liens
- Conclusion
2I Rappels sur les réseaux IP
- Adresses IP
- Ports
- Masque de sous-réseau
- Réseaux IP
- Passerelle
- Type de trame
- La poignée de main (hand check)
- Interface réseau
3Adresses IP
- Adresse IP obligatoire pour se connecter sur un
réseau IP - Adresse UNIQUE pour un réseau
- 4 nombres 0 -gt255
- Ex 56.2.68.147
- 3 classes d'adresses privées
- Classe A 10.x.y.z
- Classe B 172.x.y.z
- Classe C 192.168.x.y
()
Adresse IP ltgt Immeuble
() 16 lt x lt 31
4Les ports
- Nécessaire pour communiquer
- IN / OUT / IN ou OUT
- Logiciels serveurs ou client
- 65535 ports / machines
- 0 à 1024 serveurs
- 32768 à 61000 client
- Exemple
Logiciel ltgt Utilisateur
Port ltgt fenètre
5Masque de sous-réseaux
- Grouper les machines
- 4 nombres 0, 128, 192, 224, 240, 248, 252, 254,
255 - Exemple 255.255.255.0
- Nombre max d'adresse IP
- Pour les classes privées
- Classe A 255.0.0.0
- Classe B 255.255.0.0
- Classe C 255.255.255.0
Masque de sous réseaultgt Quartier
6Réseau IP
- Combinaison adresse IP / Masque de sous-réseau
- Exemples
- 192.168.0.0 / 255.255.255.0
- 192.168.0.0 / 24
- Pour les classes privées
- Classe A 10.x.y.z / 8
- Classe B 172.x.y.z / 16
- Classe C 192.168.x.y / 24
()
() 16 lt x lt 31
Réseau IPltgt Barrière
7Passerelle
- Les réseaux sont isolés entre eux
- Seule sortie La passerelle / gateway
- 1 adresse IP (ex 192.168.0.254)
- Se charge de trouver le destinataire
Passerelle ltgt Garde barrière
8Type de trames
- Différents types de transmission d'informations
- TCP
- UDP
- ICMP
- ...
Type de trames ltgt Type de courrier
9La poignée de mains
- Valable pour TCP
- 3 étapes
- SYN
- ACK SYN
- ACK
- Le dialogue peut débuter
La poignée de mains ltgt Engager la conversation
10Interfaces réseaux
- Carte réseau eth0, eth1, ...
- Modem ppp0, ppp1, ....
- Loopback lo
- 1 ou plus adresses IP par interface
- eth0 192.168.0.1
- eth00 192.168.1.1
- eth01 192.168.2.1
11II Sécurité de base
- Présentation du réseau
- Outils d'analyse et de détection
- Démons, serveurs et démons de service
- Risques
- Fermeture des ports
- Bilan
12Présentation du réseau
- Paradise
- paradise.sky.net
- eth0 192.168.0.2/24
- Phoenix
- phoenix0.sky.net
- eth0 192.168.0.1/24
- phoenix1.sky.net
- eth1 10.0.0.1/8
- Pirate
- pirate.internet.net
- eth0 10.0.0.66/8
- web.internet.net
- eth00 10.0.0.200/8
13Outils d'analyse et de détection
- Intrus / administrateur Même combat, mêmes
outils - Outils
- Nmap
- Tcpdump
- Ethereal
- Netstat
- Lsof
- Ping
- Traceroute
14Démons, serveurs et démons de service
- Démons cron, dm, xfs, random, alsa ...
- Serveurs Apache, Bind, MySQL, Samba ...
- Démon de service Inetd / Xinetd
- Méta démon de surveillance et de contrôle d'accès
- Gère des services telnet, proftpd, pop, cvs,
time ...
15Risques et protections simples
- Risques
- Saturation
- Vol / suppression de données
- Exécution de code arbitraire
- Prise de contrôle à distance
- Protections simples
- Utilisateur
- Prison / jail (chroot)
- User mode kernel
16Fermeture des ports
- Arrêter les services inutiles
- Contrôler les accès
- Gérer les démons /etc/init.d/
- Contrôle des démons /etc/rc3.d/ et
/etc/rc5.d/
17Bilan
- Pas de contrôle sur l'ICMP
- Scan toujours utilisable
- IP Spoofing
18III Netfilter / Iptables
- Pré-requis
- Vue générale de Netfilter
- Chaînes, règles et iptables
- Les tables
- Un premier script simple
- Le suivi de connexion (conntrack)
- IP masquerading
- Log (LOG / ULOG)
- Firewall applicatif
19Pré-requis
- Kernel 2.4.x ou supérieur
- rpm / urpmi / apt iptables
- Compilation du kernel
CONFIG_MODULES Y CONFIG_PACKET
Y CONFIG_NETFILTER Y CONFIG_UNIX
Y CONFIG_INET Y CONFIG_IP_ADVANCED_ROUTER Y
CONFIG_IP_NF_CONNTRACK M CONFIG_IP_NF_FTP
M CONFIG_IP_NF_IRC M CONFIG_IP_NF_IPTABLES
M CONFIG_IP_NF_FILTER M CONFIG_IP_NF_NAT
M CONFIG_IP_NF_MATCH_LIMIT M CONFIG_IP_NF_MATCH_
STATE M CONFIG_IP_NF_TARGET_MASQUERADE
M CONFIG_IP_NF_TARGET_REDIRECT
M CONFIG_IP_NF_TARGET_LOG M CONFIG_IP_NF_TARGET_
ULOG M
20Vue générale de Netfilter
- Netfilter Rien à voir avec le firewall sous
Windows - Netfilter 5 crochets (hook) dans la pile réseau
- Une chaîne et des règles par crochet
21Chaînes, règles et iptables
- Règles Conditions de passage des paquets réseau
- Chaînes Conteneur de règles
- Chaînes prédéfinies et chaînes utilisateur Même
combat - Iptables Le maître des règles
22La table Filter
- 3 chaînes
- INPUT Paquets rentrants vers des processus
locaux - OUTPUT Paquets sortant des processus locaux
- FORWARD Paquets passant d'une interface à
l'autre
23La table NAT
- 3 chaînes
- PREROUTING Paquets rentrants dans la couche
réseau - POSTROUTING Paquets sortants de la couche
réseau - OUTPUT Paquets sortants des processus locaux
24La table Mangle
- Mangle Mutilation des paquets ...
- Application QoS (Quality of Service)
25Iptables
- Manipulation des tables
- -t (table)
- Manipulation des chaînes
- -F (Flush) -X (eXtra) -P (default Policy) -N
(New) -A (Append) -D (Delete) -L (Liste) - Cible
- -j (Jump)
- Critères
- -i (Input) -o (Output) -s (Source) -d
(destination) -p (protocole) -sport (Source port)
-dport (destination port) - Spécial
- -m (module) state (Status) -log (Log)
26Un premier script simple
- Supprimer toutes les règles
iptables -t filter -F iptables -t filter -X
iptables -t filter -P INPUT DROP iptables -t
filter -P OUTPUT DROP iptables -t filter -P
FORWARD DROP
- Autoriser avec parcimonie
iptables -t filter -A OUTPUT -o eth1 -p tcp
--dport 80 -j ACCEPT iptables -t filter -A
OUTPUT -o eth1 -p tcp --dport 443 -j
ACCEPT iptables -t filter -A INPUT -i eth1
-p tcp --sport 80 -j ACCEPT iptables -t filter
-A INPUT -i eth1 -p tcp --sport 443 -j ACCEPT
27Le suivi de connexion (conntrack)
- Problème nmap -g 80
- Modules conntrack
- Connexions
- NEW
- ESTABLISHED
- RETATED (Ex FTP)
- INVALID
iptables -A OUTPUT -o eth1 -s 10.0.0.1 -p all -m
state --state ! INVALID -j ACCEPT iptables -A
INPUT -i eth1 -d 10.0.0.1 -p all -m state
--state RELATED,ESTABLISHED -j
ACCEPT
- Netfilter trou noir ltgt Protection absolue ?
28IP masquerading (masquage IP)
- Paradise sur Internet ?
- Table NAT
- Voie montante
- Voie descendante
- Modules NAT
- Clef de sortie
iptables -A FORWARD -i eth0 -o eth1 -s
192.168.0.0/24 -m state --state !
INVALID -j ACCEPT iptables -A FORWARD -i eth1 -o
eth0 -d 192.168.0.0/24 -m state
--state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth1 -s
192.168.0.0/24 -j MASQUERADE
echo 1 gt /proc/sys/net/ipv4/ip_forward
Clef de sortie
29Log (LOG / ULOG)
iptables -A INPUT -p all -j LOG --log-prefix
DefautlDropIN iptables -A OUTPUT -p all -j LOG
--log-prefix DefautlDropOUT
iptables -N LogDrop iptables -A LogDrop -j LOG
log-prefix LogAndDrop iptables -A LogDrop -j DROP
- Séparer les LOG. Une solution, ULOG
modprobe ipt_ULOG iptables -N LogDrop iptables -A
LogDrop -j ULOG --ulog-prefix LogAndDrop iptables
-A LogDrop -j DROP
30Firewall applicatif
Exemple FireFlier (http//fireflier.sourceforge.n
et/)
- Firewall applicatif Filtrage IP par application
- Intérêt
- ip_queue / LIBIPQ
- Exemple
- Fireflier
31IV Outils et liens
- Interfaces à iptables
- Distributions spécialisées
- Netfilter_cfg
- Liens
32Interfaces à iptables
- Freshmeat
- KNetfilter
- ... ... ...
http//freshmeat.net/browse/151/
http//freshmeat.net/projects/knetfilter/
33Distributions spécialisées
- IPCop
- floppyfw
- BBIagent
- Linux rooter (RIP)
- ... ... ...
http//www.ipcop.org
http//www.zelow.no/floppyfw/
http//www.bbiagent.net/en/index.html
http//www.linuxrouter.org/
34Netfilter_cfg
- Script bash
- Support de multiples interfaces locales
- Connexion externe RTC / ADSL / passerelle
- Supporte Conntrack / IP masquerading
- LOG / ULOG / Filtrage de logs
- Gestion de serveurs TO / FTP / ...
- Evolutif
35Liens 1
- Documentation du créateur de Netfilter (Rusty
Russell) - http//www.netfilter.org/unreliable-guides/ (en
Français) - Christian Caleca
- http//christian.caleca.free.fr/netfilter/
- IpTables par l'exemple
- http//lea-linux.org/reseau/iptables.php3
- Olivier Allard-Jacquin
- olivieraj.free.fr
36Liens 2
- Recherche de sécurité
- Nessus http//www.nessus.org/
- SATAN http//www.fish.com/satan/
- Audit externe
- PcFlank http//www.pcflank.com/
- DSLreports http//www.dslreports.com/scan
- Références
- Linux http//www.linuxsecurity.com/
- Plus globales http//www.securityfocus.com/
37Conclusion
- Sécurité informatique ?
- Ne jamais sous estimer les intrus
- Modèle à plusieurs couches
- Règles d'or
- fermer les démons inutiles
- restreindre les accès à ceux restant
- Netfilter / iptables conntrack log
- 1 Initialisation des tables
- 2 DROP par défaut
- 3 ACCEPT au compte goûte