You are not logged in.
Bonjour,
je mène un petit projet dans le cadre de mes études, qui est la mise en place d'un firewall avec iptables
le petit problème est que je n'ai pas une très bonne connaissance encore en matière de filtrage c'est pourquoi je sollicite votre aide
voici le schéma :
eth0 : 192.168.1.0/24
eth2 : 192.168.2.0/24
eth3 : 192.168.3.0/24
L'objectif étant :
- accés au serveur WEB via HTTP a partir du réseau local et extérieur
- accès au serveur WEB via SSH a partir du réseau local
- autoriser les ping du réseau local vers la DMZ et l'extérieur
voici le script :
start() { #Preparer le systeme a router et filtrer echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ipt_state modprobe ipt_MASQUERADE modprobe ip_conntrack modprobe ipt_multiport #Purger le filtre par precaution iptables -F iptables -X iptables -t filter -F iptables -t nat -F #Appliquer les strategies par default : tout refuser iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # Nous considérons que la machine elle même est sûre et que les processus locaux peuvent communiquer entre eux via l'interface locale : iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Nous considérons que notre réseau local est également sûr iptables -A INPUT -i eth2 -j ACCEPT iptables -A OUTPUT -o eth2 -j ACCEPT #Activer la translation d'adresses (NAT) pour l'exterieur iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE ###### Creation des regles de filtrage (par ordre de priorite) ###### #1) Autoriser les echanges HTTP(S), FTP iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -m multiport -d 192.168.1.0/24 --sport http,https,ftp -i eth0 -j ACCEPT iptables -A FORWARD -p tcp -m multiport -s 192.168.1.0/24 --dport http,https,ftp,ftp-data -o eth0 -j ACCEPT #Reponses HTTP venant du serveur WEB (DMZ) iptables -A FORWARD -p tcp -d 192.168.3.1/32 --dport http -j ACCEPT iptables -A FORWARD -p tcp -m state --state RELATED,ESTABLISHED -s 192.168.3.1/32 --sport http -j ACCEPT #2) Autoriser certains echanges ICMP (reponses venant de l'exterieur) iptables -A FORWARD -p icmp -m state --state RELATED,ESTABLISHED -d 192.168.1.0/24 -i eth0 -j ACCEPT iptables -A FORWARD -p icmp -s 192.168.1.0/24 -o eth0 -j ACCEPT #3) Autoriser les connexions SSH sur le serveur (firewall) iptables -A INPUT -p tcp -s 192.168.2.0/24 --dport ssh -j ACCEPT iptables -A OUTPUT -p tcp -s 192.168.2.0/24 --sport ssh -j ACCEPT #4) Rediriger les entrees sur port 80 sur le serveur WEB (DMZ) iptables -t nat -A PREROUTING -p tcp -i eth2 -d 172.16.1.0/24 --dport 80 -j DNAT --to-destination 192.168.3.1:80 } stop() { iptables -t filter -F iptables -t nat -F modprobe -r ipt_state modprobe -r ipt_MASQUERADE modprobe -r iptable_filter modprobe -r iptable_nat modprobe -r ip_conntrack modprobe -r ipt_multiport modprobe -r ip_tables } case "$1" in 'start') start ;; 'stop') stop ;; *) echo "usage $0 start|stop" esac
L'acces au serveur Web s'effectu comme il faut du reseau local ou exterieur cependant je ne trouve pas les règles pour les ping et l'acces au serveur WEB via SSH
Si quelqu'un pourrais donc m'éclairer sur les lignes a rajouter, ça me serai d'une grande aide
Merci
Last edited by Willow (02 Jun 2008 19:59:44)
Offline
Salut,
là c'est bien expliqué.
Offline
Hello,
Si c'est un projet, je ne suis pas sûr que te donner la réponse toute cuite soit d'un grand intérêt pédagogique. Surtout que le script que tu donnes contient déjà tous les éléments nécessaires.
Tu peux cependant prendre note des points suivants:
- c'est beaucoup plus simple de ne filtrer que les nouvelles connexions (--state new) et accepter automatiquement les paquets des connexions déja établies (--state established, related)
- il faut activer le routage après, pas avant la mise en place des règles de filtrage. Sinon, le firewall sera vulnérable pendant l'exécution du script
Offline
merci a vous deux je vais maté le lien et réessayer quelques lignes demain
le problème c'est que il doit être prêt pour lundi c'est pour ça que je stresse un peu
Offline
Salut,
si tu veux faire de l'informatique, t'as intérêt à t'habituer au stress
Bonne journée
Offline
Bonjour !
Afin d'étendre iptables, je voulais mettre en œuvre une nouvelle extension, et pour ce la j'ai codé 3 programmes en C ! le header.h,libipt_extension.c et ipt_extension.c. Je travaille sur un noyau de linux 2.6.31-14 (qui existe sur ubuntu 9.10) et la version d'iptables disponible est 1.4.4 ! J’ai téléchargé 1.4.0 car cette version la contient le fichier makefile pour que je puisse ajouter ma nouvelle extension ! j'ai sui les procédures de Rusty Russell et Nicola Boulianne mais en fin j'ai pas pu compiler le libipt_extension.c et ipt_extension.c (mais ca marche avec le header.h), j'ai cru que cela est a cause de gcc (car il m'indique des erreurs enfaite sont des fonctions prédéfinis pour étendre iptables comme parse,init et les fonctions help,print, save ...etc) alors j'ai upgrade le gcc et finalement les mêmes erreurs apparaissent ! Et dans ce cas la je crois que je dois compiler le noyau 2.6.31-14 avec iptables 1.4.0rc1 entièrement avec les nouveaux modules (y compris la nouvelle extension), j’ai téléchargé le patch-o-matic mais je n’ai aucune idée si je suis sur la bonne voie pour réaliser mon travaille et si oui comment faire pour compiler noyau+iptables (des versions que je les dispose) et si non comment faire ??? Je vous remercie
Offline