TP Partage dune connexion en utilisant SQUID & IPTABLES
Objectifs :
SQUID est un proxy (mandataire) capable de r aliser :
-
-
-
la translation dadresses permettant lutilisation dune seule adresse routable,
l'optimisation de la bande passante en utilisant un m canisme de cache (notamment utile lorsque les utilisateurs
acc dent aux m mes objets statiques),
le contr le et le filtrage de l'acc s, particuli rement, lauthentification qui nest pas possible avec IPTABLES.
IPTABLES est un firewall logiciel capable de r aliser les fonctions de translation dadresses et de filtrage, mais aussi,
il permet la modification de champs dans les ent tes TCP/IP. Gr ce IPTABLES, il est possible de r aliser la
translation dadresses ind pendamment des protocoles applicatifs (contrairement SQUID qui se limite des
protocoles bien d termin s comme HTTP ou FTP). Gr ce Il est aussi possible de r aliser la translation dadresse sur
ladresse source mais aussi sur ladresse destination (ce qui nest pas le cas avec SQUID). IPTABLES et SQUID
peuvent tre utilis s conjointement pour mettre en place un serveur proxy transparent.
Sans chercher couvrir toutes les possibilit s quoffrent ces deux outils, travers un certain nombre de manipulations,
nous allons nous familiariser avec ces deux outils et apprendre utiliser et mettre en place certaines configurations
usuelles :
- mise en place dun serveur proxy SQUID pour le partage dune connexion lInternet,
-
-
-
-
configuration du cache SQUID,
authentification et filtrage avec SQUID,
consultation des fichiers logs et
utilisation dIPTABLES pour rendre un proxy transparent, pour am liorer les possibilit s de filtrage et pour
permettre lacc s partir de linternet un serveur ayant une adresse priv e.
Bar me : 2.5 par question.
Environnement mat riel et logiciels
Quatre machines dont trois virtuelles, en r seau, sont install es sur un m me ordinateur de travail (en utilisant
VMware) : trois machines Linux et une MS Windows Server. Ces machines sont les m mes utilis es que pour le TP
d ploiement des r seaux IP avec les m mes mots de passe. Il faut savoir que dans le cadre dune exploitation r elle, la
configuration mat rielle de la machine (en termes notamment despace m moire et despace disque), sur laquelle est
d ploy un serveur proxy SQUID influe consid rablement sur les temps de r ponses de ce serveur.
Configurer les diff rentes machines comme le d crit la figure suivante (appliquer le masque par d faut) :
- Squid1 devrait tre la machine Fedora, Squid2 la machine OpenSuse et le client 192.168.1.2 la machine Ubuntu,
- Paquetages SQUID et IPTABLES install s la fois sur Squid1 et Squid2
- Serveur Web (IIS) install s la fois sur 193.95.0.1 (Windows Server),
- Le paquetage htpasswd pour la gestion des mots de passe,
- Navigateur Web install sur toutes les machines,
- Serveur Telnet install sur Fedora.
Nous allons commencer par se familiariser avec certains fichiers et effectuer certaines v rifications.
TP RL/ II2-ENSI
Page :1
1) Consulter le fichier /etc/squid/squid.conf
Chercher dans ce fichier la directive cache_dir afin de d terminer lemplacement du r pertoire de cache, la taille du
cache (en Mo), le nombre de r pertoires et de sous r pertoires. Il est possible de trouver cette directive plusieurs
fois, la taille totale est alors la somme des diff rentes occurrences.
Afin d'acc l rer les temps de recherche, SQUID essaie de r partir les objets qu'il place dans le cache de mani re
uniforme dans plusieurs r pertoires. Il utilise une fonction de r partition (fonction de hash ) qui indique dans
quel r pertoire se trouve un objet. La recherche dans ce r pertoire se fait donc plus rapidement, car les objets sont
r partis de mani re quilibr e dans tous les r pertoires du cache, qui devraient donc tre relativement peu
peupl s . Il utilise un d coupage deux niveaux, les r pertoires du deuxi me niveau tant r partis dans les
r pertoires du premier niveau.
SQUID est incapable de d marrer si les r pertoires de caches ne sont pas cr s. Gr ce la commande ls v rifier
que ces r pertoires sont bien cr s. Il est possible aussi de les cr er ou de les reconstruire (par exemple, la suite
dun arr t brutal de squid, le cache peut devenir corrompu et doit tre reconstruit) en tapant :
rm -rf /var/spool/squid/*
// si d j cr s
squid -z
En ayant consult squid.conf, pr ciser les informations suivantes :
Chemin vers le r pertoire de Swap : &&....................................................................................................................
Taille du r pertoire de Swap : &&&&&&&...................................................................................................................
Noms des r pertoires :&&&&&&&&&&&...................................................................................................................
Noms des sous-r pertoires :&&&&&&&&...................................................................................................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&...................................................................................................................
D terminer si SQUID est d j lanc en utilisant lune des commandes suivantes :
Fedora# ps aux | grep quid
ou
Fedora# /etc/init.d/squid status
Une premi re configuration simple
2) Nous allons permettre toutes les machines du r seau 192.168.0.0 dacc der linternet (repr sent par le serveur
Web 193.95.0.1) via Squid1. A cet effet et dans le fichier squid.conf, reproduire les d finitions suivantes :
##############################
SERVEUR PROXY CACHE Squid1
##############################
Port du proxy
http_port 192.168.0.2:8080
# Param trage du cache
cache_dir ufs /var/spool/squid 100 16 256
cache_log /var/log/squid/cache.log
Taille m moire vive utilis e pour cache, augmenter si trop de messages Warning
#Exceeded cache_mem&
cache_mem 16 MB
r gler cache_mem_low et cache_mem_high qui sont les valeurs limites de remplissage du
cache m moire. Par d faut les valeurs sont 75 % et 90 %. A 90 % le cache se vide
jusqu' 75 %.
Taille maximale des objets stock s dans le cache
maximum_object_size 4 MB
Advertisement
TP RL/ II2-ENSI
Page :2
Taille minimale des objets stock s dans le cache
minimum_object_size 0 KB
# Messages d'erreurs du proxy en fran ais (pas forcement n cessaire), v rifier que le
r pertoire existe et le consulter.
error_directory /usr/share/squid/errors/fr
# Nom visible dans les messages d'erreurs
visible_hostname Squid1
D claration des ACL (Access Control List)
acl localhost src 127.0.0.1/32
acl reseau1 src 192.168.0.0/24
acl all src all #Internet
# Protocoles d'acc s au cache et ports (ne pas d finir les ports interdire
# et autoriser pr senterait une faille de s curit )
acl manager proto cache_object
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
&
# Autorisation d'acc s
Acc s au manager partir de localhost seulement
http_access allow manager localhost
http_access deny manager
Interdiction des ports douteux
http_access deny !Safe_ports
# Autorisation d'acc s direct aux services du proxy
http_access allow localhost
http_access allow reseau1
http_access deny all
- Des r gles multiples de http_access sont compar es par des OU, elles sont trait es dans lordre d criture et se
terminent d s quune correspondance est tablie.
- Tous les l ments dune m me entr e dacc s sont associ s par un ET.
Lancer Wireshark sur Fedora.
D marrer/red marrer SQUID :
/etc/init.d/squid restart
A partir de OpenSuse (Squid2 consid r en tant que client) et travers le navigateur tenter dacc der lURL :
http://193.95.0.1/. Que faut-il r aliser comme param trage pour que lacc s puisse se r aliser ?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
Remarque importante : dans tous le TP ne pas acc der des pages HTML (inutilement) tant que ceci na pas t
demand . Cette recommandation est importante pour garder la m moire cache un tat bien d termin et
pouvoir ainsi obtenir les r sultats escompt s.
Apr s avoir r alis un premier acc s travers le navigateur ( partir de OpenSuse), d crire les messages chang s entre
la machine cliente et le serveur Squid1 dune part et entre le serveur Squid1 et le serveur Web dautre part. A cet effet
TP RL/ II2-ENSI
Page :3
compl ter la figure ci-dessus. Il nest pas demand de repr senter les messages de fermeture de connexions TCP.
Arr ter la capture de trame.
Authentification
Dans cette question nous nous int ressons la fonction dauthentification. Il existe plusieurs m thodes disponibles
pour authentifier les utilisateurs dun proxy SQUID. Elles font appel lun des programmes suivants :
smb_auth : utilise un serveur SMB comme SAMBA ou Windows NT
ldap_auth : se base sur le protocole Linux Lightweight Directory Access
-
- ncsa_auth : utilise un fichier de noms d'utilisateur et de mots de passe de style NCSA
-
- msnt_auth : utilise l'authentification de domaine Windows NT
- PAM : utilise les modules Linux "Pluggable Authentication Modules"
- getpwam : utilise le fichier passwd de Linux.
3) Dans ce qui suit nous allons utiliser ncsa_auth.
Cr er un fichier password
touch /etc/squid/passwd
Ajouter un utilisateur gr ce htpasswd:
htpasswd -b /etc/squid/passwd <nom> <mot de passe>
Dans le fichier squid.conf, au lieu de
http_access allow reseau1
Utiliser les directives suivantes :
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd
acl pass proxy_auth REQUIRED
http_access allow pass reseau1
TP RL/ II2-ENSI
Page :4
Valider le bon fonctionnement de cette r gle.
Autres r gles de filtrage (question bonus)
Afin de limiter le nombre de connexions diff rentes qu'un utilisateur peut effectue, rajouter dans /etc/squid/squid.conf
Nombre maximal de sessions simultan es partir de diff rentes adresses IP 1 (pour
un m me utilisateur) -s pour un fonctionnement strict (sinon al atoire)
acl maxauth max_user_ip -s 1
Nombre de connexion simultan s limit 5
acl numconn maxconn 5
duree de validite de l'authentification
authenticate_ttl 30 minute
R gles d'acc s
Advertisement
http_access deny maxauth
http_access deny reseau1 numconn
http_access allow pass reseau1
Valider le bon fonctionnement de ce param trage. D crire les tests effectu s.
Autres restrictions typiques :
ACL pour une restriction journali re/horaire :
M:Monday T:Tuesday W:Wednesday H:Thursday F:Friday A:Saturday S:Sunday
acl semaine time MTWHF 08:30-17h30
ACL de restrictions par mot passant dans l'url (utilisation d'un fichier contant les
mots interdits))
acl mots_interdits urlpath_regex "/etc/squid/mots_interdits"
ACL de restrictions par url (utilisation d'un fichier contenant les URLs interdites)
acl urls_interdites url_regex "/etc/squid/url_interdites"
# Application, par le refus, de ces ACLs
http_access deny !semaine
http_access deny mot_interdit
http_access deny urls_interdites
Tester le bon fonctionnement de ces r gles et donner une autre alternative la r gle qui permet la restriction
journali re/horaire avec authentification et uniquement partir du r seau1 en utilisant allow et non deny . Tester
le bon fonctionnement de cette r gle.
Proxy transparent
Dans cette question nous cherchons mettre en place un proxy transparent. Suivant ce mode de fonctionnement,
lauthentification nest plus possible. Seul HTTP (port 80) est support en mode transparent. Gr ce un tel mode, il
nest plus n cessaire de param trer les navigateurs avec ladresse IP/port du proxy.
4) Le proxy est suppos tre install sur la machine qui joue le r le de la passerelle par d faut. Sur Squid1 :
activer le routage :
-
echo "1" > /proc/sys/net/ipv4/ip_forward
- Gr ce IPTABLES, rediriger le port 80 vers le port de SQUID (8080)
iptables -t nat -I PREROUTING -p TCP --dport 80 -j REDIRECT --to-port 8080
- Reste r soudre le probl me suivant : le client envoie une requ te HTTP directe un serveur httpd et non un
proxy. Les m thodes utilis es ne sont pas les m mes. Afin que le proxy fonctionne de fa on transparente, il faut
rajouter au niveau de la directive http_port le terme transparent :
##Port du proxy
http_port 192.168.0.2:8080 transparent
D crire le reste des op rations r aliser pour le test du fonctionnement du proxy transparent et r aliser ce test.
(Pour les tests noublier pas de vider le cache du navigateur)
TP RL/ II2-ENSI
Page :5
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&..&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.&...................................
Hi rarchie de caches et liaison inter-cache
La fonction cache permet d viter de ramener un document plusieurs fois.
Un document est g n ralement stock dans le cache en fonction (particuli rement) de :
- une date d'expiration (en-t te HTTP expire),
- une dur e de vie estim e partir des dates de derni re modification (en-t te HTTP Last-Modified),
-la fr quence d'utilisation du document (LFU : Least Frequently Used ),
- un rapport entre un param tre co t (le temps de r ponse du serveur dorigine) et la taille du document, les
documents ayant le plus petit rapport sont supprim s dabord (GDS : Greedy Dual Size ).
Les documents dynamiques ne doivent jamais tre cach s (CGI, PHP,..). Lorsquun document est supprim
tous les documents aussi r cents ou moins r cents sont supprim s.
Afin daugmenter les performances des proxy-caches, une coop ration entre caches peut- tre configur e. Les
caches SQUID peuvent tre organis s suivant une hi rarchie de caches. Exemple :
On distingue particuli rement 2 types de relations de parent :
- les relations hi rarchiques parent o un parent (consid r comme p re) r pond son fils s'il poss de le
document, sinon, il cherche le document et le d livre au fils; les mises jour s'effectuent en cascade : un
p re est un point de concentration.
- les relations transversales sibling , dans ce cas, si le document nest pas dans le cache du parent
(consid r comme fr re) la requ te nest pas relay e, le cache origine de la requ te doit lui-m me chercher
lobjet. Cette relation est particuli rement int ressante dans le cas o les fr res sont proches.
Le taux de succ s des acc s au cache risquent d tre tr s al atoires. Ces relations de parent devraient tre
instaur es entre caches en cas d'homog n it de communaut (r seau de caches th matiques). Les endroits
dans le r seau (o devraient figurer les caches) et le dimensionnement des caches sont des l ments de
configuration qui font partie des probl mes traiter dans la mise en Suvre dune hi rarchie de caches.
5) Nous allons commencer par configurer Squid1 entant que cache p re et Squid2 en tant que cache fils. Pour
simplifier la manipulation, pr parer les fichiers squid.conf (de Squid1 et Squid2) de fa on r duire les contr les
dacc s (pas dauthentification &).
Remarque : la version de Squid sur Squid2 est diff rente de celle de Squid1, les m mes directives d j tudi es
existent, les param tres par d faut sont diff rents. Sans devoir r crire le fichier squid.conf sur Squid2 modifier le
fichier existant en agissant sur les directives appropri es.
Dans le fichier squid.conf de Squid2, taper la directive suivante (le port utilis par le protocole inter-cache ICP,
directive icp_port, est suppos tre configur 3130) :
TP RL/ II2-ENSI
Page :6
cache_peer 192.168.0.2 parent 8080 3130
Sur Squid1 et dans le fichier squid.conf activer le port 3130
icp_port 3130
Vider le cache de Squid1 et Squid2 (gr ce la commande de reconstruction, cf. plus haut). Effectuer une requ te
dacc s depuis Ubuntu lURL http://193.95.0.1/lien1. Consulter le fichier access.log de Squid2 et de Squid1.
Reproduire les lignes traduisant les diff rents v nements cons quents lacc s la page.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
Advertisement
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
A partir dun navigateur sur OpenSuse acc der lURL http://193.95.0.1/lien1. Consulter le fichier access.log de
Squid1. Reproduire les lignes traduisant les diff rents v nements cons quents lacc s la page.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
Nous allons maintenant configurer Squid2 entant que cache fr re de Squid1. Garder le cache de Squid1 non vide.
Ensuite, dans le fichier squid.conf de Squid2, taper la directive suivante :
cache_peer 192.168.0.2 sibling 8080 3130
A partir dun navigateur sur Ubuntu acc der
http://193.95.0.1/lien2. D crire le r sultat obtenu pour chacun de ces acc s. Illustrer ces r sultats.
lURL http://193.95.0.1/lien1 et ensuite
lURL
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
IPTABLES : g n ralit s
Alors que SQUID est capable de r aliser la translation dadresse et le contr le dacc s au niveau applicatif, IPTABLES
r alise ces fonctions aux niveaux r seaux et transport. Il est incapable dexploiter pas les particularit s des protocoles
applicatifs. De plus, il ne met pas en Suvre un m canisme de cache. N anmoins, gr ce IPTABLES il est possible de
r aliser la translation dadresses sans tre limit des protocoles applicatifs bien d termin s (comme cest le cas pour
SQUID). En outre, en plus de la translation dadresse qui seffectue g n ralement du cot client, un autre type de
translation dadresse du cot serveur est aussi possible (sur lequel nous reviendrons dans la suite du TP).
TP RL/ II2-ENSI
Page :7
Avant daborder les manipulations, il est n cessaire de conna tre les notions de base r gissant le fonctionnement de
IPTABLES. La couche r seau Linux pr sente plusieurs points d'acc s (en anglais hook). Netfilter (module syst me
destin au filtrage) dispose de fonctions de rappel (callback) sous la forme de suites d'instructions qui pr cisent les
traitements r aliser lorsquun v nement survient. IPTABLES permet la configuration de Netfilter. La figure suivante
pr cise les points dacc s existants.
Il est ainsi possible dagir avant (PREROUTING), durant (FORWARD) ou apr s le routage (POSTROUTING), il est
aussi possible dagir sur les paquets issus des processus locaux (OUTPUT) ou sur les paquets destin s ces processus
(INPUT). A ces points dacc s sont associ es des chaines de traitements d sign es par les termes pr cis s ci-avant. Ces
chaines sont regroup es en 3 tables : FILITER pour le filtrage, NAT pour la translation dadresses et MANGLES pour
pouvoir modifier certains des ent tes TCP/IP.
Une cha ne est une liste de r gles. Si les conditions de la r gle sappliquent sur un paquet, la r gle pr cise la cible
(ACCEPT, DROP, REJECT, SNAT, DNAT, MASQUERADE, LOG un saut vers une cha ne utilisateur), sinon, la
r gle suivante de la cha ne est examin e. Le tableau suivant donne une description des diff rentes cibles pr d finies.
CIBLE
ACCEPT
DESCRIPTION
un paquet envoy vers cette cible sera accept et pourra poursuivre
son cheminement au travers des couches r seaux.
DROP
Cette cible permet de jeter des paquets
REJECT
Permet d'envoyer une r ponse l' metteur pour lui signaler que son
paquet a t refus
MASQUERADE
Cible valable uniquement dans la cha ne POSTROUTING de la table
NAT. Elle change l'adresse IP de l' metteur par celle courante de la
machine pour l'interface sp cifi e. Cela permet de masquer des
machines et de faire par exemple du partage de connexion
SNAT
DNAT
LOG
galement valable pour la cha ne POSTROUTING de la table NAT
seulement. Elle modifie aussi la valeur de l'adresse IP de l' metteur en
la rempla ant par la valeur fixe sp cifi e.
Valable uniquement pour les cha nes PREROUTING et OUTPUT de
la table NAT. Elle modifie la valeur de l'adresse IP du destinataire en
la rempla ant par la valeur fixe sp cifi e
Demande au noyau d'enregistrer des informations sur le paquet
courant.
Arr ter Squid Sur OPenSuse et Fedora.
TP RL/ II2-ENSI
Page :8
6) Nous allons commencer par pr senter quelques commandes utiles pour visualiser les r gles, les supprimer, les
sauvegarder, les restaurer et fixer la politique par d faut :
- Pour lister les r gles courantes des chaines de la table FILTER, taper
iptables L
- Pour vider les chaines, taper
Iptables F
- Pour sauvegarder les r gles courantes, taper :
iptables-save > /etc/iptables-save
- Pour restaurer les r gles partir du fichier /etc/iptables-save, taper :
iptables-restore < /etc/iptables-save
Vider les chaines, lister nouveau les r gles et v rifier que la politique par d faut pour les diff rentes chaines est
Advertisement
ACCEPT (Policy ACCEPT) : politique permissive. Il est possible dagir sur la politique par d faut (qui sera
appliqu e en dernier ressort si aucune r gle ne sapplique) :
iptables -P INPUT j ACCEPT
iptables -P OUTPUT j ACCEPT
iptables -P FORWARD j ACCEPT
Pour instaurer une politique restrictive il suffit de remplacer dans les lignes (ci-dessus) ACCEPT par DROP.
IPTABLES : exemple de filtrage
7) Activer le routage sur OpenSuse et mettre- -jour les tables de routages pour que tout quipement puisse pinger sur
tout autre quipement :
echo "1" > /proc/sys/net/ipv4/ip_forward
Nous voulons interdire quun quipement dans le r seau 192.168.1.0 puisse pinguer sur un quipement se
trouvant dans le r seau 192.168.0.0. A cet effet et sur OpenSuse, saisir la r gle suivante :
iptables A FORWARD p icmp --icmp-type echo-request s 192.168.1.0/24 d 192.168.0.0/24 -j REJECT
V rifier quavant la saisie de la r gle, le ping pouvait se faire et quapr s la saisie ceci nest plus possible.
Est-ce quil est possible de pinger partir de Fedora sur ladresse 192.168.1.2 ? Expliquer.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
IPTABLES : Translation de ladresse source
SQUID neffectue pas la translation des adresses sources pour permettre aux stations locales de pinguer sur
lext rieur (trafic ICMP). Ce m me probl me se pose pour dautres trafics tels que POP ou SMTP. Dans ce qui suit,
nous allons utiliser IPTABLES pour permettre aux stations dans les r seaux 192.168.0.0 de pinguer sur des
machines externes (193.95.0.1).
Rajouter sur OpenSuse une route par d faut travers 192.168.0.2.
8) Sur le serveur Squid1 saisir la r gle suivante :
iptables t nat A POSTROUTING s 192.168.0.0/24 p icmp --icmp-type echo-request -j SNAT -to-source
193.95.0.2
Expliquer quoi correspond cette r gle.
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
Visualiser les r gles des chaines de la table NAT en tapant :
iptables L POSTROUTING t nat
V rifier quil est possible de pinger partir dOpenSuse sur 193.95.0.1.
TP RL/ II2-ENSI
Page :9
IPTABLES : translation de ladresse destination
Il est possible de permettre lacc s une machine ayant une adresse priv e partir de lext rieur (linternet) en utilisant
la translation le ladresse destination (utile, par exemple, pour une cam ra, munie dun serveur Web, domicile
laquelle on veut acc der partir dun quelconque endroit sur lInternet). A cet effet nous allons r server le port 2222
pour d signer la machine interne (la cam ra avec son serveur Web) ayant comme adresse IP 192.168.0.1 (OpenSuse).
V rifier que le serveur Web est bien activ sur OpenSuse.
9) Sur le serveur Fedora activer le routage. Sur OpenSuse, cr er une route par d faut travers 192.168.0.2. Sur
Fedora, saisir la r gle suivante :
iptables t nat A PREROUTING s 0.0.0.0/0 -protocol tcp -dport 2222 -j DNAT -to
192.168.0.1:80
Expliquer quoi correspond cette r gle. A partir dun navigateur sur Windows, acc der lURL 193.95.0.2 :2222 .
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
IPTABLES : statefull Inspection (question bonus)
Dans ce qui suit nous cherchons permettre aux utilisateurs du r seau 192.168.1.0 de pouvoir effectuer un telnet sur
les machines qui se trouvent dans le r seau 192.168.0.0 sans que ces derniers ne puissent faire un telnet sur les
machines du r seau 192.168.1.0. V rifier que le telnet est bien activ sinon lactiver sur Fedora. V rifier que le routage
est bien activ sur OpenSuse. Cr er les routes n cessaires pour permettre aux machines des r seaux 192.168.0.0 et
192.168.1.0 d changer des paquets. Vider toutes les r gles iptables sur OpenSuse mais aussi Fedora et Ubuntu).
10) Sur OpenSuse, saisir les r gles suivantes :
Iptables P FORWARD DROP
iptables -A FORWARD -p TCP -s 192.168.1.0/24 -d 192.168.0.0/24 --dport 23 -j ACCEPT
iptables -A FORWARD -p TCP -s 192.168.0.0/24 --sport 23 -d 192.168.1.0/24 -j ACCEPT
Est-ce quil est possible deffectuer partir de 192.168.1.2 un ping sur 192.168.0.2 (Fedora). Est-ce quil est
possible deffectuer partir de 192.168.1.2 un telnet sur 192.168.0.2 (Fedora). Quel est le probl me qui se pose ?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
IPTABLES permet le suivi des communications en se basant sur les tats suivants:
NEW : premier paquet,
ESTABLISHED : r ponse et suivants relatifs une m me communication,
RELATED : signifie que le paquet initie une nouvelle connexion, mais qu'il est associ avec une
communication existante, comme un transfert de donn es FTP ou une erreur ICMP.
INVALID : signifie que le paquet n'est associ aucune connexion connue
Remplacer la derni re r gle par (vider et re saisir)
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
Quel est lint r t de cette r gle ?
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&....&&&&&&&&&&&&&&&&&&&&&...................................
TP RL/ II2-ENSI
Page :10