Partage d’une connexion en utilisant SQUID & IPTABLES

Page 1 sur 10Lecteur de document UniversityLib

Partage d’une connexion en utilisant SQUID & IPTABLES

Réseaux, Sécurité, Administration système · lab

Browse all réseaux documents

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