URL: https://linuxfr.org/forums/programmationautre/posts/iptables-config-firewall Title: IPTABLES config firewall Authors: jesbond Date: 2006年01月18日T13:48:03+01:00 Tags: Score: 0 Bonjour ! Je m'adresse aux connaisseurs en programmation de firewall avec IPTABLES !!! Situation : ** J'ai un firewall (serveur linux MANDRIVA) relié a internet par eth0 (passe par le réseau de lentreprise, proxy, dns et tout et tout...) et relié à un client WINDOWS (192.168.0.1) par eth1. ** jai donc 2 machines : un serveur MANDRIVA et un client WINDOWS. Objectif : Créer un firewall sur la mandriva qui donne acces à internet ( proxy port :8080) et à la messagerie (port 25 et 110), au client windows. Le reste doit etre bloqué . Etant débutant et pratiquant pour la 1ere fois IPTABLES et NETFILTER, j'aimerai savoir si mon script est correct, sécurisé et correspond a ce que je veux : sinon pouvez-vous me proposer des modifications directement sur le script, car on ma deja proposé des lignes a rajouter mais je nai aps tout compris :/ merci d'avance ! #!/bin/bash # Script pour le firewall # Supprime les règles par défaut sur la table filter, nat et mangle iptables -t filter -F iptables -t nat -F iptables -t mangle -F # Supprime les chaînes par défaut sur la table filter, net et mangle iptables -t filter -X iptables -t nat -X iptables -t mangle -X # RAZ du compteur de paquets iptables -Z echo " -> Initialisation de la table FILTER... " iptables -t filter -P INPUT DROP # rejette les paquets entrants iptables -t filter -P OUTPUT DROP # rejette les paquets sortants iptables -t filter -P FORWARD DROP # rejette les paquets non locaux # Nous faisons de même avec toutes les autres tables, # à savoir "nat" et "mangle", mais en les faisant pointer # par défaut sur ACCEPT. Ca ne pose pas de problèmes # puisque tout est bloqué au niveau "filter" echo " -> Initialisation de la table NAT... " iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT iptables -t nat -P OUTPUT ACCEPT echo " -> Initialisation de la table MANGLE... " iptables -t mangle -P PREROUTING ACCEPT iptables -t mangle -P INPUT ACCEPT iptables -t mangle -P OUTPUT ACCEPT iptables -t mangle -P FORWARD ACCEPT iptables -t mangle -P POSTROUTING ACCEPT ######################################################################################## # Connexions locales iptables -t filter -A OUTPUT -o lo -j ACCEPT iptables -t filter -A INPUT -i lo -j ACCEPT ######################################################################################## # Translation d'adresses pour le client WINDOWS qui traverse la passerelle # en sortant par eth0 iptables -t nat -A POSTROUTING -s 192.168.0.1 -o eth0 -j MASQUERADE # Acceptation des paquets pour les connexions sortantes et entrantes déjà établies # c'est a dire des flux IP que la passerelle aura elle-meme initiés iptables -t filter -A OUTPUT -o eth0 -p all -m state --state ! INVALID -j ACCEPT iptables -t filter -A INPUT -i eth0 -p all -m state --state RELATED,ESTABLISHED -j ACCEPT # Toutes les connexions qui sortent du LAN vers le Net # sont acceptées iptables -t filter -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT # Seules les connexions déjà établies ou en relation avec # des connexions établies sont acceptées venant du Net vers le LAN iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT ######################################################################################## echo " -> Ouverture des ports 25 et 110 MAIL... " # Autorisation des requêtes sortantes POP et SMTP iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.1 -p tcp -m multiport --dports 110,25 -m state --state NEW,ESTABLISHED -j ACCEPT # Autorisation des réponses liées à la session TCP établie iptables -A FORWARD -i eth0 -o eth1 -d 192.168.0.1 -p tcp -m multiport --sports 110,25 -m state --state ESTABLISHED -j ACCEPT ######################################################################################## # Nous bloquons tous les ports de notre réseau local pour avoir une sécurité maximum iptables -t filter -A OUTPUT -o eth1 -j DROP # en sortie iptables -t filter -A INPUT -i eth1 -j DROP # en entrée ########################################################################################