Vous êtes sur la page 1sur 6

F acult des sciences semlalia. Dpartement dInformatique. Scurit des rseaux Informatique. Firwalling et NAT sous Linux.

Atelier N.5 Afficher votre firewall et interprter les diffrents champs. Flusher votre firewall. 1. Oprations sur une seule chane et sur la table filter: Interdire tout paquet entrant Effacer la rgle 1.1 Paramtre protocole Interdire le protocole icmp Effacer la rgle 1.2. Paramtre source Interdire le protocole icmp provenant de localhost Effacer la rgle 1.3. Chane OUTPUT paramtre destination Interdire tout paquet destination de localhost Effacer la rgle 1.4. Paramtre inversion Interdire un paquet s'il ne provient pas de localhost Effacer la rgle 1.5. Paramtre interface d'entre Interdire tout paquet entrant par eth0 Effacer la rgle 1.6. Paramtre interface de sortie Interdire tout paquet sortant par eth0 Effacer la rgle 1.7. Paramtre destination port Interdire tout paquet destination du port ftp Effacer la rgle 1.8. Paramtre source port Interdire tout paquet sortant par eth0 dont le numro de port source est infrieur 1024 Tester une connexion ftp Effacer la rgle et retester une connexion ftp 1.9. Paramtre flag TCP Interdire toute tentative d'initialisation de connexion TCP provenant de eth0 Effacer la rgle 1.10. Paramtre flag icmp Interdire tout paquet entrant correspondant un ping Effacer la rgle Interdire toute rponse un ping Effacer la rgle
Pr. M. A. EL KIRAM

1.11 Parmtre de transit Autoriser le transit des paquets provenant de ladresse 14.15.16.17 vers la machine 192.168.0.2. Autoriser le transit des paquets qui arrivent par linterface eth1, dont ladresse source est une adresse du rseau 192.168.1.0 et dont ladresse de destination est une adresse du rseau 192.168.2.0 et dont le port de destination est le port 23 1.12. Paramtre extension: 1.12.1. Extension mac (attention on ne peut utiliser l'extension mac que sur les tables INPUT et PREROUTING) Interdire tout paquet entrant par eth0 dont l'adresse mac n'est pas celle du voisin Effacer la rgle 1.12.2. Extension limit Positionner la police par dfaut DROP pour la chane INPUT Ecrire une rgle qui laisse passer 5 tentatives de connexion TCP puis qui n'en laisse passer plus que 2 par minute Faire de mme avec les pings Combien de temps(sans tentative de connexion ou d'echo-request)faudra t'il pour qu'on puisse nouveau avoir 5 des ces paquets qui puissent passer la suite ? Effacer la rgle 1.13. Le suivi de connexion (ip_conntrack) Positionnez les rgles par dfaut DROP pour les chanes INPUT, OUTPUT, FORWARD Autoriser tout paquet relatif une connexion dj tabli ou en rapport avec une connexion dj tabli en entre Interdire tout paquet relatif une connexion de type INVALID Autoriser toutes les connexions qui sortent du LAN vers le net Autoriser tout paquet crant une nouvelle connexion en sortie destination du port 80 Que faut il modifier ici pour que l'on puisse naviguer sur le net ? Effacer la rgle 2. Le NAT : [Pour cette partie nous travaillerons sur des machines ayant au minimum 2 interfaces rseau] Modification de champ IP/TCP Chane PREROUTING,POSTROUTING Cible SNAT, DNAT, MASQUERADE

Pr. M. A. EL KIRAM

Effectuer une translation dadresse pour tout ce qui traverse la passerelle en sortant par ppp0 Restreindre la nat une plage dadresse Positionnez les rgles par dfaut DROP pour les chanes INPUT, OUTPUT, FORWARD Crer une rgle qui modifie tout paquet qui arrive via l'interface eth1 destination du port 2222 afin que ce paquet ai dans son champ IP DST l'adresse 192.168.0.1 et dans son champ TCP DPORT 22 Que faut il faire pour que la translation fonctionne effectivement ? (dans un sens comme dans l'autre) Crer une rgle qui altre le champ IP SRC de tout paquet sortant via l'interface eth1, en remplaant la valeur de ce champ par l'adresse IP de cette interface(eth1) Autoriser tout trafic provenant de eth0 tre forward par notre machine Autoriser tout trafic de statuts ESTABLISHED,RELATED tre forward par notre machine 4. Sauvegadre de configuration La commande iptables-save sauve ltat actuel de votre Netfilter dans un fichier. Son utilisation :
# iptables-save > firewall.rules

Iptables-restore pour restaurer cette configuration :


# iptables-restore < firewall.rules

5. Scriptes darrt et de dmarrage du firewall Scripte pour dsactiver le firewall : Ce script que nous pouvons nommer et placer dans /etc/firewall-stop permettra de dsactiver le firewall :
#!/bin/sh # Nous vidons les chanes : iptables -F # Nous supprimons d'ventuelles chanes personnelles : iptables -X # Nous les faisons pointer par dfaut sur ACCEPT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT # Cette ligne permet de supprimer toutes les redirections de ports iptables -t nat -F

Pr. M. A. EL KIRAM

Scripte pour activer le firewall : Ce script que nous pouvons nommer et placer dans /etc/firewall-start permettra de dmarrer le firewall :
#!/bin/sh # REMISE ZERO des rgles de filtrage iptables -F iptables -t nat -F # Mise en place des rgles par dfaut iptables -P INPUT DROP iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # On enlve le firewall sur le loopback et le reseau local iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i eth0 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # # # # # # # Ouverture de ports Exemple pour un port TCP iptables -A INPUT -p tcp Exemple pour un port UDP iptables -A INPUT -p udp Exemple d'un ensemble de iptables -A INPUT -p tcp (ici 80) --dport 80 -j ACCEPT (ici 110) --dport 110 -j ACCEPT ports (de 2072 a 2080 inclus) --dport 2072:2080 -j ACCEPT

# J'accepte le protocole ICMP (i.e. le "ping") iptables -A INPUT -p icmp -j ACCEPT # J'accepte le protocole IGMP (pour le multicast) iptables -A INPUT -p igmp -j ACCEPT # J'accepte les packets entrants relatifs des connexions dj tablies iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Dcommentez les deux lignes suivantes pour que le serveur FTP ventuel # soit joignable de l'extrieur #iptables -A INPUT -p tcp --dport 20 -j ACCEPT #iptables -A INPUT -p tcp --dport 21 -j ACCEPT # Dcommentez la ligne suivante pour que le serveur SSH ventuel # soit joignable de l'extrieur #iptables -A INPUT -p tcp --dport 22 -j ACCEPT # A placer en FIN DU FICHIER iptables -A INPUT -j DROP

Avant de lancer les scripts, il faut les rendre excutables :


# chmod +x /etc/firewall-start # chmod +x /etc/firewall-stop

Ensuite, il est possible de lancer manuellement le firewall et de vrifier le rsultat :


# /etc/firewall-start # iptables -L -v

Pr. M. A. EL KIRAM

Mme chose pour larrter. Lancement automatique du firewall au dmarrage de lordinateur Pour activer le firewall automatiquement au dmarrage de lordinateur, il faut crer le script /etc/init.d/firewall contenant les lignes suivantes :
#!/bin/sh stop() { /etc/firewall-stop } case $1 in "start") /etc/firewall-start ;; "stop") stop ;; "restart") stop /etc/firewall-start ;; esac

Rendre ce script excutable avec la commande :


# chmod +x /etc/init.d/firewall

Crer les liens permettant de dmarrer automatiquement le script au dmarrage de lordinateur :


# update-rc.d firewall defaults

La commande suivante permet darrter le firewall :


# /etc/init.d/firewall stop

Pr. M. A. EL KIRAM

Problme : Le but et de se placer dans un cas concret. Il sagit de rpondre au mieux aux besoins de filtrage pour scuriser le rseau dune entreprise. Nous considrons quiptables est install sur la machine servant de routeur/firewall et nous allons donc nous attacher crire le scripte pour cette machine. Les machines, le routeur et le serveur plac dans la DMZ, doivent tres protgs au mieux. Le routeur a 3 interfaces : Eth0 (192.168.0.254) reli la DMZ Eth1 (192.168.1.254) reli au LAN Ppp0 (212.217.1.50) reli Internet. La machine doit pouvoir tre joignable par SSH depuis le LAN, et depuis Internet. Les machines du LAN doivent pouvoir aller sur Internet (http et FTP). Les machines du LAN doivent pouvoir pinger sur les machines dInternet. Sur la DMZ, la machine 192.168.0.1 hberge le site web de lentreprise. Cette machine doit pouvoir tre joignable par SSH depuis le LAN et depuis lInternet.

Pr. M. A. EL KIRAM