Auteur |
Message |
jesbond
Newbiiiie
Sexe:
Messages: 2
|
Posté le:
Mer 18 Jan 2006 - 16:04 |
|
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
################################################################## |
|
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
Webfab
Accro à Web-IG
Sexe:
Messages: 110
|
Posté le:
Jeu 23 Fév 2006 - 17:37 |
|
Salut bondeXxxxX, bon j'ai commencé netfilter hier et je suis en désaccord avec ton script
jesbond a écrit: |
#!/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
|
Ok, "-t filter" pas obligatoire mais bon
jesbond a écrit: |
########################################################################################
# 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
|
Ok
jesbond a écrit: |
# 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
|
Donc là, tu veux que ton parefeu est tous les protocoles ouvert (-p all) drôle de parefeu :p
jesbond a écrit: |
# 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
|
Et là tu forward tous les paquets du web sur ton réseau local... pas de filtrage donc
jesbond a écrit: |
########################################################################################
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
|
là dans ton forward tu filtres seulement les ports autorisé, sauf que le forward precedent autorise tous donc celui-là ne sert à rien...
jesbond a écrit: |
########################################################################################
# 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
################################################################## |
Inutil, vu que lors de l'inialisation des chaines, par défaut tu bloques tout
En conclusion, en admettant que tu laisses ton parefeu non sécurisé en laissant les ports ouvert, tu filtres seulement au niveau du forward pour sécuriser seulement ton réseau local.
Si c'est le cas, il faut que tu supprimes ça :
Citation: |
iptables -t filter -A FORWARD -i eth1 -o eth0 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
Ensuite tu supprimes t'es deux dernières ligne iptables.
Citation: |
iptables -t filter -A OUTPUT -o eth1 -j DROP # en sortie
iptables -t filter -A INPUT -i eth1 -j DROP # en entrée
|
Dans la logique, je m'y serais pris autrement, j'aurais autorisé seulement la boucle local sur le parefeu (à la rigueur le réseau local aussi) et j'aurais filtré sur le forward. Sans oublier d'activer la translation d'adresse.
a+ |
|
|
|
|
jesbond
Newbiiiie
Sexe:
Messages: 2
|
Posté le:
Ven 24 Fév 2006 - 11:45 |
|
OOooohh webfab !!!
comment ça fait plaisir de te voir ici mdr, je mattendais pa a toi !!
Le message date trop sur le forum, ça fait longtime que jai posté le script firewall....
Mon script est finit et complet ! jte le montrerai a la rentré cousin ,, avec un Z majuscule meme !!
merci qd meme ! |
|
|
|
|
|