Segment 9
Lévêque Sébastien
3ème industrielle
g28654
Rapport disponnbile en pdf
Lévêque Sébastien
3ème industrielle
g28654
Rapport disponnbile en pdf
Nettoyage du banc N°9
Les machines et câbles inutiles ont été retirés afin de ne laisser que 4 machines propres. Le câblage a ensuite été fais comme décrit dans le diagramme ci-dessous :
- une gateway connectée sur le backbone
- une DMZ connectée à la gateway
- deux clients connectés sur la gateway via un switch.
Le bon fonctionnement des machines a été vérifié et les mots de passe vénérable grand maitre ont été indiqué sur une feuille à l’avant de celle-ci. La distribution Slackware a été réinstallée sur la machine gateway.
Configuration réseau des machines
Le plan d’adressage IP des différentes cartes de chaque machine a été respecté comme sur le schéma ci-dessus.
- gateway
- Code:
ifconfig eth0 172.16.0.203 netmask 255.255.255.0
ifconfig eth1 172.16.19.1 netmask 255.255.255.0
ifconfig eth2 172.16.29.1 netmask 255.255.255.0
route add default gw 172.16.0.4 eth0
echo ‘nameserver 172.16.0.4’ > /etc/resolv.conf
- DMZ
- Code:
ifconfig eth0 172.16.19.2 netmask 255.255.255.0
route add default gw 172.16.19.1
echo ‘nameserver 172.16.0.4’ > /etc/resolv.conf
- client 1
- Code:
ifconfig eth0 172.16.29.2 netmask 255.255.255.0
route add default gw 172.16.29.1
echo ‘nameserver 172.16.0.4’ > /etc/resolv.conf
- client 2
- Code:
ifconfig eth0 172.16.29.3 netmask 255.255.255.0
route add default gw 172.16.29.1
echo ‘nameserver 172.16.0.4’ > /etc/resolv.conf
Afin de conserveries paramètres lors des reboot, ceux-ci sont écrit dans le fichier /etc/rc.d/rc.inet1.conf
Installation d’un serveur DNS
L'installation d'un serveur DNS sur la gateway a été réalisé afin d'offir un service de résolution de nom. Celui-ci est maitre des zones du segment 9, a savoir :
- client9.redlab.esi-heb (zone pour les machines clients)
- dmz9.redlab.esi-heb (zone pour la dmz)
/etc/resolv.conf
- Code:
search client9.redlab.esi-heb. dmz9.redlab.esi-heb.
nameserver 172.16.0.4
Filtrages des paquets : ipTables/NetFilter
Une des premières chose à vérifier si l'on veux effectuer du routage, est de vérifier si l enoyau le permet. En effet, dans l'image virtuelle se trouve un bit indiquant si oui ou non le noyau autorise le routage.
Celui-ci doit etre à 1 pour pouvoir éffectuer du routage.
Nous pouvons forcer sa valeur comme ceci :
- Code:
echo 1 > /proc/sys/net/ipv4/ip_forward
Pour ce qui est des règles que nous allons appliquer à notre firewall, un bonne manière de procéder est de commencer par tous refuser. Nous allons ensuite autoriser uniquement les services que l'on à besoin.
Une des bonnes manières de procéder est d'écrire toutes nos lignes iptables dans un script shell, ainsi il sera facile de revenir sur nos pas et de remettre le firewall à son point de départ.
Deux outils fournit avec iptable, ptables-save et iptables-restore, permettent justement de suaver le configuration actuelle dans un fichier ou inversement de la charger à partir de celui-ci.
Cette approche permet aussi facilement de mettre en oeuvre le chargement de cette configuration au démarage du serveur.
- Code:
iptablessave > /root/fw_regles
iptablesrestore < /root/fw_regles
- Code:
#! /bin/sh
# Initialisation de la table FILTER
iptables -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# Initialisation de la table NAT
iptables -t nat -F
iptables -t nat -X
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
# Autoriser FTP
iptables -t filter -A INPUT -p tcp --dport ftp -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport ftp -j ACCEPT
# Autoriser SSH
iptables -t filter -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport ssh -j ACCEPT
# Autoriser DNS
iptables -t filter -A INPUT -p udp --dport domain -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport domain -j ACCEPT
# Autoriser HTTP
iptables -t filter -A INPUT -p tcp --dport www -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport www -j ACCEPT
# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# Autoriser icmp
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# Forward http
iptables -t filter -A FORWARD -p tcp --dport www -j ACCEPT
iptables -t filter -A FORWARD -p tcp --sport www -j ACCEPT
# Forward icmp
iptables -t filter -A FORWARD -p icmp -j ACCEPT
# Forward dns
iptables -t filter -A FORWARD -p udp --dport domain -j ACCEPT
iptables -t filter -A FORWARD -p udp --sport domain -j ACCEPT
# Forward ssh
iptables -t filter -A FORWARD -p tcp --dport ssh -j ACCEPT
iptables -t filter -A FORWARD -p tcp --sport ssh -j ACCEPT
# Exemple de NAT
# Un paquet venant a la Gateway sera dirigee vers une machine locale
iptables -t nat -A PREROUTING -d 172.16.29.1 -j DNAT --to-destination 172.16.19.2