Configurer un pare
Transcription
Configurer un pare
Table des matières 1 CONFIGURER UN PARE-FEU AVEC IPTABLES................................................. 2 1.1 INSTALLATION ................................................................................................. 2 1.2 FILTRER LES PAQUETS .................................................................................. 2 1.3 TABLES ............................................................................................................... 2 1.3.1 Table NAT .................................................................................................... 2 1.4 TABLE FILTER .................................................................................................. 2 1.5 TABLE MANGLE ............................................................................................... 2 1.6 CHAÎNES............................................................................................................. 3 1.6.1 TARGET ....................................................................................................... 3 1.7 LES COMMANDES DE iptables ................................................................. 3 1.7.1 LES PARAMÈTRES DE iptables ......................................................... 4 1.8 ADMINISTRER iptables .............................................................................. 4 1.9 EXEMPLES ......................................................................................................... 5 _____________________________________________________________________ 2011 Hakim Benameurlaine 1 1 CONFIGURER UN PARE-FEU AVEC IPTABLES 1.1 INSTALLATION Installer le paquetage iptables si nécessaire. # 1.2 yum install iptables FILTRER LES PAQUETS Les paquets sont filtrés un utilisant des règles prédéfinies. Une chaîne correspond à un ensemble de règles. La gestion des règles se fait en utilisant la commande iptables Pour lister les règles qui se trouvent présentement dans la table des filtres : iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination (n=numeric) Si aucune règle ne s’applique, alors la politique par défaut est appliquée. 1.3 TABLES 1.3.1 Table NAT (Network Address Translation) : Table utilisée pour la translation d'adresse ou la translation de port. 1.4 TABLE FILTER C'est la table par défaut si aucune table n’est spécifiée. Cette table contient toutes les règles de filtrage, il existe 3 types de chaînes : FORWARD pour les paquets passant par le pare-feu. INPUT pour les paquets entrants. OUTPUT pour les paquets sortants. Les cibles (target) disponibles sont : ACCEPT, DROP, REJECT 1.5 TABLE MANGLE C'est la table qui contient les règles pour la modification de paquets. Elle est peu utilisée et ne sera pas décrite. _____________________________________________________________________ 2011 Hakim Benameurlaine 2 1.6 CHAÎNES Une chaîne est une suite de règles, qui sont prises dans l'ordre ; dès qu'une règle matche un paquet, elle est déclenchée, et la suite de la chaîne est ignorée. Une chaîne est donc tout simplement un ensemble de règle à appliquer dans l’ordre. Ils existent cinq chaînes prédéfinies : Chaîne INPUT OUTPUT FORWARD PREROUTING POSTROUTING Description règles pour les paquets entrants (table FILTER) règles pour les paquets sortants (table FILTER) règles pour les paquets qui transitent (table FILTER) règles pour modifier les paquets entrants (table NAT) règles pour modifier les paquets sortants (table NAT) 1.6.1 TARGET Le target est l’action à prendre. On doit spécifier un target (action) pour chaque règle d’une chaîne (j=jump). Target ACCEPT DROP REJECT 1.7 Description accepter les paquets interdire l’accès interdire l’accès avec notification LES COMMANDES DE iptables iptables n'est pas livré avec une interface graphique ; les commandes et les règles sont passées en ligne de commande. Le mieux est d'écrire des scripts qui permettent d'appliquer toutes les règles d'un seul coup, dès le démarrage du Linux. Commande -A chaîne -D chaîne -I chaîne [no_regle] -R chaîne no_regle -L [chaîne] -E [chaîne] -F [chaîne] -N chaîne -X chaîne -P chaîne target -Z [chaîne] Description ajouter une règle à la fin de la chaîne effacer une règle de la chaîne insérer une règle dans la chaîne remplacer une règle dans la chaîne lister les règles renommer la chaîne effacer (flush) les règles sélectionnées créer une nouvelle chaîne (usager) effacer la chaîne définie par l’usager définir la politique par défaut dans la chaîne Remise à zéro des compteurs dans la chaîne _____________________________________________________________________ 2011 Hakim Benameurlaine 3 1.7.1 LES PARAMÈTRES DE iptables Option -p [!] proto -s [!] adresse [/mask] --sport [!] [!] [port[:port]] -d [!] adresse [/mask] --dport [!] [!] [port[:port]] -i [!] eth -o [!] eth -j target 1.8 Description protocole : TCP, UDP, ICMP, ALL adresse source port source adresse destination port destination interface d’entrée interface de sortie cible ADMINISTRER iptables 1) Supprimer les règles : service iptables stop 2) Afficher les règles : service iptables status 3) Ajouter une règle : iptables -A INPUT -j ACCEPT -i lo 4) Sauvegarder les règles dans le fichier /etc/sysconfig/iptables : service iptables save 5) Restaurer les règles à partir du fichier /etc/sysconfig/iptables : service iptables start more /etc/sysconfig/iptables 6) Sauvegarder les règles dans un fichier quelconque : iptables-save > /etc/iptables.rules 7) Restaurer les règles à partir d’un fichier : iptables-restore < /etc/iptables.rules _____________________________________________________________________ 2011 Hakim Benameurlaine 4 1.9 EXEMPLES 1) Ajouter une nouvelle règle dans la chaîne INPUT : iptables -A INPUT -p tcp --dport 80 -j DROP 2) Supprimer une règle de la chaîne iptables -D INPUT INPUT : -p tcp --dport 80 -j DROP ou bien iptables -D INPUT 1 3) Remplacer une règle de la chaîne INPUT : iptables -R INPUT 1 -s 192.168.0.1 -j DROP 4) Insérer une règle de la chaîne INPUT : iptables -I INPUT 1 –p tcp --dport 80 -j ACCEPT 5) Afficher toutes les règles des chaînes de la table FILTER : iptables –L 6) Afficher toutes les règles de la chaîne INPUT de la table FILTER : iptables -L INPUT 7) Flusher les règles de la chaîne INPUT : iptables -F INPUT 8) Créer une nouvelle chaîne LOG_DROP : iptables -N LOG_DROP 9) Supprimer la chaîne LOG_DROP : iptables -X LOG_DROP 10) Définir la politique par défaut de la chaîne INPUT : iptables -P INPUT DROP 11) Ajout de règles : iptables -A INPUT -p tcp --source ! 10.42.42.42 –j REJECT iptables -A INPUT -p icmp -j DROP iptables -A INPUT -p tcp -s 192.168.42.42 -j ACCEPT iptables -A FORWARD -p tcp -d 10.1.0.1 -j ACCEPT iptables -A INPUT -p icmp -i eth0 -j REJECT _____________________________________________________________________ 2011 Hakim Benameurlaine 5 iptables -A OUTPUT -p icmp -o eth0 -j DROP iptables -A INPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -p udp --sport 80 -j DROP iptables -A OUTPUT -p tcp -m multiport --sport 3128,21,1000 -j DROP iptables -A OUTPUT -p tcp --sport 1024:2042 -j ACCEPT iptables -A INPUT -p iptables -A INPUT -p iptables -A INPUT -p 110,4242,119 -j DROP iptables -A INPUT -p tcp --dport 110 -j DROP udp --dport 110 -j DROP tcp -m multiport --dport tcp --sport 4925:4633 -j ACCEPT iptables -A INPUT -p tcp --dport 42 --tcp-flags SYN, ACK -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j DROP iptables -A INPUT -i eth0 -p tcp --dport 80 -m state -state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT 12) Ajout de règles dans la chaîne PREROUTING de la table NAT : iptables -t nat -A PREROUTING -d 42.12.42.12 -p tcp -dport 110 -j DNAT --to-destination 192.168.1.2:6110 iptables -t nat -A PREROUTING -d ! 42.12.42.12 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1:3128 _____________________________________________________________________ 2011 Hakim Benameurlaine 6