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
########################################################################################
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.