|
|
| (9 versions intermédiaires par le même utilisateur non affichées) |
| Ligne 1 : |
Ligne 1 : |
| = Routage et Firewall =
| | * '''<big>[[Routage et Firewall]]</big>''' |
| | | * '''<big>[[Partage de Fichiers]]</big>''' |
| == Sysctl ==
| | * '''<big>[[Load Balancer]]</big>''' |
| '''sysctl''' permet de gérer certains paramètres conjointement à Netfilter. Ces paramètres permettent d'agir sur la configuration du kernel.
| | * '''<big>[[Commandes de gestion d'un cluster Pacemaker/Corosync]]</big>''' |
| | | * '''<big>[[Installation et configuration de DRBD]]</big>''' |
| Les modifications peuvent se faire :
| | * '''<big>[[Haute disponibilité du stockage]]</big>''' |
| * En "live" dans les fichiers ''/proc/sys/*'' | | * '''<big>[[Installation de programmes sous Debian]]</big>''' |
| * En "dur" dans le fichier ''/etc/sysctl.conf''
| | * '''<big>[[Gestion du réseau sous Linux]]</big>''' |
| | | * '''<big>[[Commandes IP sous Red Hat Enterprise Linux]]</big>''' |
| Pour valider la configuration de sysctl :
| |
| # sysctl -p
| |
| | |
| === Configuration courante ===
| |
| * Activer le routage :
| |
| ** En live :
| |
| echo '1' > /proc/sys/net/ipv4/ip_forward
| |
| ** Dans le fichier :
| |
| net.ipv4.ip_forward=1
| |
| | |
| * Protection contre le spoofing :
| |
| net.ipv4.conf.all.rp_filter = 1
| |
| | |
| * Protection contre le syn-flood :
| |
| net.ipv4.tcp_syncookies = 1
| |
| net.ipv4.tcp_max_syn_backlog = 1024
| |
| | |
| == Routage statique ==
| |
| | |
| === Concepts ===
| |
| Lorsqu'un hôte (A) cherche à communiquer avec un autre hôte (C) :
| |
| # L'hôte (A) détermine si l'hôte distant (C) est sur le même réseau logique
| |
| # Si non, il recherche dans sa table de routage une route vers le réseau de destination
| |
| # Il extrait l'adresse de passerelle (B)
| |
| # Il transmet le paquet à la passerelle (B)
| |
| | |
| === Types de routes ===
| |
| * '''Route d'hôte''' : route vers un seul hôte ciblé | |
| * '''Route de réseau''' : route vers les hôtes d'un réseau distant | |
| * '''Route par défaut''' : route utilisée en l'absence des autres types
| |
| | |
| === Commande ip ===
| |
| * Ajout de route d'hôte :
| |
| # ip route add 10.11.12.3 via 172.16.6.123
| |
| | |
| * Ajout de route réseau :
| |
| # ip route add 10.56.0.0/16 via 172.16.6.253
| |
| | |
| * Route par défaut :
| |
| # ip route add default via 172.16.6.1
| |
| | |
| == Firewall ==
| |
| | |
| === Netfilter ===
| |
| Netfilter est un module qui permet de filtrer et manipuler les paquets réseau. Il fournit :
| |
| * Des fonctions de pare-feu
| |
| * De la traduction d'adresse (NAT)
| |
| * De l'historisation du trafic réseau
| |
| | |
| ==== Tables ====
| |
| Il existe 3 tables principales :
| |
| * '''Filter''' : filtrage des paquets
| |
| * '''Nat''' : translation d'adresses ou de ports | |
| * '''Mangle''' : modification des en-têtes des paquets
| |
| | |
| ==== Chaînes ====
| |
| Les chaînes principales sont :
| |
| * '''INPUT''' : paquets à destination du système | |
| * '''OUTPUT''' : paquets émis par les processus
| |
| * '''FORWARD''' : paquets à transmettre
| |
| | |
| === Commandes iptables ===
| |
| | |
| ==== Syntaxe générale ====
| |
| iptables [-t <table>] <commande> <options>
| |
| | |
| ==== Commandes principales ====
| |
| * Lister les règles :
| |
| # iptables -L
| |
| | |
| * Ajouter une règle :
| |
| ** En fin de chaîne : ''-A''
| |
| ** En début de chaîne : ''-I'' | |
| | |
| * Supprimer :
| |
| ** Une règle : ''-D''
| |
| ** Toutes les règles : ''-F''
| |
| | |
| ==== Critères principaux ====
| |
| {| class="wikitable"
| |
| ! Critère !! Description
| |
| |-
| |
| | -p <protocole> || tcp, udp, icmp ou all
| |
| |-
| |
| | -s <adresse>[/masque] || Adresse source
| |
| |-
| |
| | -d <adresse>[/masque] || Adresse destination
| |
| |-
| |
| | -dport <port> || Port destination
| |
| |-
| |
| | -sport <port> || Port source
| |
| |-
| |
| | -i <interface> || Interface d'entrée
| |
| |-
| |
| | -o <interface> || Interface de sortie
| |
| |}
| |
| | |
| ==== Cibles ====
| |
| * '''-j ACCEPT''' : autorise le paquet
| |
| * '''-j DROP''' : rejette sans notification | |
| * '''-j REJECT''' : rejette avec notification
| |
| * '''-j LOG''' : enregistre dans les logs
| |
| | |
| === Solutions de firewall ===
| |
| | |
| ==== Shorewall ====
| |
| Shorewall est un outil de configuration haut niveau pour Netfilter, permettant de définir les règles via des fichiers de configuration.
| |
| | |
| '''Configuration principale''' :
| |
| * /etc/shorewall/zones : définition des zones
| |
| * /etc/shorewall/interfaces : association zones/interfaces
| |
| * /etc/shorewall/policy : politiques par défaut
| |
| * /etc/shorewall/rules : règles spécifiques
| |
| * /etc/shorewall/snat : configuration du masquerading
| |
| | |
| ==== PfSense ====
| |
| PfSense est une solution complète de routeur/firewall basée sur FreeBSD :
| |
| * Interface web de gestion
| |
| * Multiple fonctionnalités de sécurité
| |
| * Configuration simple et intuitive
| |
| | |
| == Outils de diagnostic ==
| |
| | |
| === netstat/ss ===
| |
| Affiche les connexions réseau :
| |
| # netstat -paunt
| |
| * ''-p''' : nom du programme et PID
| |
| * '''-a''' : tous les ports | |
| * '''-u''' : ports UDP
| |
| * '''-t''' : ports TCP
| |
| * '''-n''' : affiche les IP
| |
| | |
| === nmap ===
| |
| Scanner réseau :
| |
| * Détection des machines :
| |
| # nmap -sP 192.168.20.0/24
| |
| * Détection OS :
| |
| # nmap -O 192.168.20.20
| |
| * Scan complet :
| |
| # nmap -p- 192.168.20.20
| |
| | |
| === tcpdump ===
| |
| Analyseur de paquets en ligne de commande :
| |
| * Capture basique :
| |
| # tcpdump -nv
| |
| * Capture sur port spécifique :
| |
| # tcpdump port http
| |
| * Capture avancée :
| |
| # tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp -w capture.log
| |
| | |
| === Solutions de sécurité additionnelles ===
| |
| * '''Fail2ban''' : bannissement automatique d'IP malveillantes
| |
| * '''PSAD''' : détection d'intrusion et analyse de ports
| |
| | |
| [[Category:Sécurité]]
| |
| [[Category:Réseau]]
| |
| [[Category:Administration système]]
| |