Vous êtes sur la page 1sur 9

Ghofrane Ferchichi

STIC_L2_SR_B

Iptables
Présentation d’Iptables :
     
iptables est un logiciel libre qui permet de configurer le pare-
feu Linux (netfilter).
Il fonctionne sous la forme de chaînes et de règles que l’on y applique.
Il est en général inclut dans toutes les distributions Linux et par défaut.
en clair, iptables permet de créer des règles de pare-feu pour filtrer les
paquets entrant/sortant en direction des services réseaux et processus
d’une machine.
Il permet aussi de jouer des règles NAT dans le cas où la
machine linux sert de routeur.

Principe de fonctionnement :

Iptables fonctionne selon un système de tables, ces tables sont


composées de chaînes.
Tout paquet entrant est analysé afin de déterminer notamment sa
source et sa destination.
Elle est composée de trois sortes de chaîne :
INPUT Permet d’analyser les paquets entrants. Si le paquet est adressé
au poste, il est confronté au filtre INPUT.
Ghofrane Ferchichi
STIC_L2_SR_B

FORWARD Permet d’analyser et d’autoriser les trames à passer d’une


interface à une autre, seulement dans le cadre d’une interface réseau
servant de passerelle.
OUTPUT Permet d’analyser les paquets sortants. Si le paquet sort du
poste, il passera par la chaîne OUTPUT.
À cette table, peuvent être affectées des politiques (policy) : 
DROP, LOG, ACCEPT et REJECT.
Iptables permet à l'administrateur système de créer des tableaux, lesquels
contiennent des « chaînes », elles-mêmes composées d'un ensemble de
règles de traitement des paquets.
Chaque tableau est associé à un type de traitement des paquets
( Netfilter). Les paquets suivent séquentiellement chaque règle des
chaînes. Une règle dans une chaîne peut provoquer un saut à une autre
chaîne (goto ou jump), et ce processus peut être renouvelé autant qu'il le
faut, quel que soit le niveau d'imbrication atteint.
Chaque paquet réseau, entrant ou sortant, traverse donc au moins une
chaîne.

Il existe cinq chaînes prédéfinies (associées aux cinq hooks de Netfilter),


Cependant leur utilisation n'est pas obligatoire dans chaque tableau
 L'administrateur système peut créer autant d'autres chaînes qu'il le
souhaite
Les cinq types de chaînes prédéfinies sont les suivants :
"PREROUTING" : Les paquets vont entrer dans cette chaîne avant qu'une
décision de routage ne soit prise.
Ghofrane Ferchichi
STIC_L2_SR_B

"INPUT" : Le paquet va être livré sur place (N.B. : la livraison sur place ne
dépend pas d'un processus ayant un socket ouvert ; la livraison est
contrôlée par le tableau « local » de routage :  ip route show table local ).
"FORWARD" : Tous les paquets qui ont été acheminés et ne sont pas
livrés sur place parcourent la chaîne.
"OUTPUT" : Les paquets envoyés à partir de la machine elle-même se
rendront à cette chaîne.
"POSTROUTING" : La décision de routage a été prise. Les paquets
entrent dans cette chaîne, juste avant qu'ils ne soient transmis vers le
matériel.
Iptables comprend quatre tables nommées : mangle, filter, nat, raw

Configuration d’Iptables

Iptables est préinstallé dans presque toutes les distributions Linux. Mais


si vous ne l’avez pas installé sur votre système Ubuntu/Debian :

Vérification du statut Iptables actuel


Avec cette commande, vous pouvez vérifier l’état de votre configuration
Iptables actuelle. L’option Here -L est utilisée pour énumérer toutes les
règles et l’option -v  pour une liste plus fastidieuse. Veuillez noter que
ces options sont sensibles à la casse.

Exemple de résultat :
Ghofrane Ferchichi
STIC_L2_SR_B

C’est la sortie de la commande ci-dessus. Ici, les trois chaînes sont


définies par défaut pour la stratégie ACCEPT. Il n’y a actuellement
aucune règle pour l’une des chaînes.
Pour rendre ce didacticiel Iptables plus pratique, nous modifierons
la chaîne INPUT pour filtrer le trafic entrant.

Scenario d’utilisation d’Iptables :

Pare-feu et redirection de port à l'aide d'iptables pour un déploiement


autonome

L’interface utilisateur Web et l'API du pipeline de données hybride sont


exposées par défaut sur le port 8080 pour les connexions HTTP ou le port
8443 pour les connexions HTTPS. L'utilitaire de pare-feu iptables peut
être utilisé pour router les connexions du port HTTP standard 80 et du
port HTTPS 443 vers ces points de terminaison. Dans ce scénario, les
ports 80 et 443 seront accessibles à tous, tandis que les ports 8080 et
8443 ne sont accessibles qu'au traitement exécuté sur le serveur.
Les instructions des rubriques suivantes peuvent être appliquées aux
distributions RedHat 7, Oracle 7 et Centos 7 de Linux.
Veuillez consulter la documentation de votre distribution Linux pour plus
d'informations sur la configuration du pare-feu.

Remarque : Si vous utilisez une distribution Suse 12 de Linux, utilisez


l'interface graphique de configuration du pare-feu YaST2 pour configurer
votre pare-feu. Dans Suse 12, vous pouvez trouver le paramètre de pare-
feu sous Applications> Outils système> YaST> Paramètres de
l'administrateur / Sécurité et Utilisateurs / Pare-feu .
Ghofrane Ferchichi
STIC_L2_SR_B

Nginx
Présentation de Nginx :
NGINX est un logiciel open source pour le service Web, le proxy inverse,
la mise en cache, l'équilibrage de charge, le streaming multimédia, etc. Il
a commencé comme un serveur Web conçu pour des performances et
une stabilité maximale. En plus de ses capacités de serveur HTTP, NGINX
peut également fonctionner comme un serveur proxy pour le courrier
électronique (IMAP, POP3 et SMTP) et un proxy inverse et un équilibreur
de charge pour les serveurs HTTP, TCP et UDP.

Principe de fonctionnement :
NGINX est conçu pour offrir une faible utilisation de la mémoire et une
grande simultanéité. Plutôt que de créer de nouveaux processus pour
chaque requête Web, NGINX utilise une approche asynchrone et
événementielle où les requêtes sont traitées dans un seul thread.
Avec NGINX, un processus maître peut contrôler plusieurs processus de
travailleurs. Le maître gère les processus du travailleur, tandis que les
travailleurs effectuent le traitement proprement dit. Comme NGINX est
asynchrone, chaque requête peut être exécutée simultanément par le
travailleur sans bloquer les autres requêtes.
Quelques caractéristiques communes vues dans NGINX incluent :
o Proxy inversé avec mise en cache
o IPv6
o Équilibrage de charge
o Support FastCGI avec mise en cache
o WebSockets
o Gestion des fichiers statiques, des fichiers d’index et de
l’indexation automatique
o TLS/SSL avec SNI
Ghofrane Ferchichi
STIC_L2_SR_B

Configuration de Nginx
NGINX se lance automatiquement après l’installation, ce que vous
pouvez aussi alternativement effectuer avec la commande suivante :

Si le logiciel de serveur Web fonctionne, vous pouvez le contrôlez en


déterminant les processus (le processus principal en premier lieu) avec le
paramètre –s et en indiquant un certain signal. La syntaxe de la
commande correspondante est relativement banale :

Vous avez, entre autres, quatre possibilités pour ce « signal » :  


 stop: NGINX est interrompu immédiatement.
 quit: NGINX est interrompu après que toutes les requêtes actives
ont obtenu une réponse.
 reload: le fichier de configuration est à nouveau chargé.
 reopen: les Log-Files sont relancés. 

L’option reload, avec laquelle le fichier de configuration est de nouveau


chargé, est une bonne possibilité pour mettre en place les modifications
effectuées par vous-même, sans interrompre le logiciel de serveur Web
et avoir à le redémarrer. Vous devez dans tous les cas vous décider pour
une variante, un redémarrage complet du serveur ou un simple reload
NGINX, afin que les modifications soient prises en compte. Si vous vous
êtes décidé pour cette dernière option et que vous avez exécuté la
commande suivante, le processus principal reçoit l’instruction de
prendre en compte les changements dans le fichier nginx.conf :
Ghofrane Ferchichi
STIC_L2_SR_B

On vérifie dans ce but d’abord l’exactitude de la syntaxe. En cas de


retour positif, le processus principal initie de nouveaux processus de
travail avec les nouveaux réglages ainsi que l’interruption des anciens
processus. Si la validation de la syntaxe échoue, l’ancien état de
configuration est conservé. Tous les processus de travail actifs cessent
dès lors que toutes les demandes actives sont en cours de traitement.
Vous pouvez aussi aborder des processus NGINC de manière très ciblée à
l’aide d’outils tels que Kill.  Vous avez uniquement besoin de l’identifiant
du processus, que vous pouvez trouver dans le fichier nginx.pid
sous /usr/local/nginx/logs oder alternativ im Verzeichnis /var/run.
Si le processus principal comporte par exemple l’identifiant 1628, il peut
être interrompu avec Kill et le signal Quit : 

Avec le programme de service ps, vous pouvez afficher une liste de tous
les processus NGINX exécutés :

Scenario d’utilisation de Nginx 


NGINX Plus se trouve derrière un équilibreur de charge matériel hérité

Comme dans le scénario précédent, NGINX Plus est ajouté à un


environnement avec un équilibreur de charge matériel hérité, mais ici, il
se trouve derrière l'équilibreur de charge hérité. L'équilibreur de charge
basé sur le matériel accepte les demandes des clients et les répartit sur
un pool d'instances NGINX Plus, qui les répartissent sur l'ensemble du
groupe de serveurs principaux réels. Dans ce scénario, NGINX Plus
effectue tout l'équilibrage de charge et la mise en cache des applications
de couche 7.
Ghofrane Ferchichi
STIC_L2_SR_B

Étant donné que les instances NGINX Plus sont équilibrées en charge par
l'équilibreur de charge matériel, HA peut être atteint en demandant à
l'équilibreur de charge matériel d'effectuer des vérifications de l'état des
instances NGINX Plus et de cesser d'envoyer du trafic vers les instances
en panne.
Ghofrane Ferchichi
STIC_L2_SR_B

Les références bibliographiques :

https://fr.wikipedia.org/wiki/Iptables#Front-ends_et_scripts

https://www.hostinger.fr/tutoriels/iptables/
https://www.hostinger.fr/tutoriels/iptables/#:~:text=Les%20bases
%20d'Iptables&text=Iptables%20est%20une%20application%20de,qu'un%20ensemble%20de
%20r%C3%A8gles.

https://www.malekal.com/tutoriel-iptables/

https://www.nginx.com/blog/nginx-load-balance-deployment-models/?
fbclid=IwAR2LLANYKd3mA3E7XnLGRuvL67iyegd248utSkSrou287w6Wp2Eyv2YSvMs

https://www.ionos.fr/digitalguide/serveur/configuration/tutoriel-nginx-premiers-pas-avec-
nginxconf/

https://kinsta.com/fr/base-de-connaissances/qu-est-ce-que-nginx/

https://www.nginx.com/resources/glossary/nginx/

https://documentation.progress.com/output/DataDirect/hybridpipeinstall/index.html#page/
install/firewall-and-port-redirection-using-iptables-for.html