Firewalls

515 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
515
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
35
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Firewalls

  1. 1. c0r3war at gmail dot com - 2013
  2. 2. Rappels réseauUDP, TCP, ICMP, ARPUpper Datagram ProtocolTransmission Control ProtocolInternet Message Control ProtocolAddress Resolution Protocol (layer 2)
  3. 3. C quoi un firewall?Definition...software or hardware-based network securitysystem that controls the incoming and outgoingnetwork traffic by analyzing the data packets anddetermining whether they should be allowedthrough or not, based on a rule set.
  4. 4. C quoi un firewall?Positionnement
  5. 5. C quoi un firewall?Fonctionnalités(Routage)FiltrageNatGateway VPNProxyFonctionnalités de protection avancées
  6. 6. C quoi un firewall?Concepts de baseStateful vs StatelessDrop vs RejectDNAT, SNAT, PAT, RFC 1918
  7. 7. Policy / RulebaseOrdonancementTout ce qui nest pas autorisé est interdit!1 Stealth Rule2 Autoriser TCP port 80 vers Webserver3 Autoriser TCP port 25 vers Serveur SMTP4 Autoriser TCP ports 80, 443 vers Any sauf réseau interne...N Cleanup Rule
  8. 8. Policy / RulebaseRègle@ IPSourceProtocole& port@ IPDestinationAction
  9. 9. Policy / RulebaseRègles de base● Drop plutôt que Reject● Toujours masquer le Firewall● Contrôler strictement les flux ICMP● Contrôler strictement les protocoles non captifs (RDP,SSH...)● Activer les fonction de protection contre les attaquesconnues (antispoofing, Syn defender, conformité despaquets...)● Documenter et revoir régulièrement les règles dufirewall
  10. 10. NetfilterFirewalling sous Linux{ip, ip6}tables + netfilter = Stateful firewall LinuxKernel > 2.4Cerifié par lANSSI (CSPN, avis 2009/04)
  11. 11. NetfilterFonctionnalitésFiltrage stateful & stateless (TCP, UDP, ICMP)Filtrage couche 7 pour FTP, IPSecNAT (DNAT, SNAT, PAT, Masquerading)Protection DoS
  12. 12. NetfilterTables et chaînesTABLECHAINEinputCHAINEoutputCHAINEforwardRègleRègleRègleRègleRègleRègle
  13. 13. NetfilterTables et chaînesTable Chaîne FonctionFILTER input filtre les paquets à destination de la machineouput filtre les paquets qui quittent la machineforward filtre les paquets qui traversent la machineNAT prerouting NAT avant routage (DNAT, PAT)postrouting NAT après routage (SNAT)output NAT des paquets émis par la machineMANGLE prerouting modification des paquets avant routagepostrouting modification des paquets après routageoutput modification des paquets émis par la machineinput modification des paquets à destination de la machineforward modification des paquets qui traversent la machine
  14. 14. NetfilterTraitement des paquetsmanglepreroutingnatpreroutingROUTAGEmangleinputdest=FW?mangleforwardfilterforwardmanglepostroutingnatpostroutingfilterinputTRAITEMENTROUTAGEmangleoutputnatoutputfilteroutputYes NoNetwork
  15. 15. Netfilteriptables/ip6tablesiptables [-t table]commande [correspondance][cible/saut]-t table Indique dans quelle table on travaille (par défaut, FILTER)commande Action à effectuer sur la table (ajout, suppression, insertionde règle dans une chaine, nettoyage de la chaine...)correspondance Critères de selection dun paquet ou dun flux (adressesource ou destination, protocole, état...)-cible/saut Action à effectuer si il y a correspondance, peut être unecible prédéfinie ou une liste utilisateur, peut prendreplusieurs arguments
  16. 16. NetfilterCommandes les plus courantes-A chaine, -Ichaine [pos]Ajoute un règle à la fin de la chaine (-A) ou insère (-I) une règle àla position indiquée par pos dans la chaine (si pos absent,insère au début)-D chaine[num|match]Supprime une règle dans la chaine chaine (soit la règle numéronum, soit celle dont la definition correspond à match, match étantla correspondance +la cible)-F [chaine] Supprime toutes les règles de la chaine chaine, ou toutes leschaines de la table-L [chaine] Liste toutes les règles de la chaine chaine, ou toutes les chainesde la table, ou toutes les chaines de toutes les tables-P chaineciblePermet de definir la politique par défaut (paramètre cible) pourla chaine chaine.-N chaine, -XchainePermet de créer ou de supprimer une chaine utilisateur
  17. 17. NetfilterCorrespondances les plus courantes--protocol Permet de définir le protocole sur lequelporte la règle (TCP, UDP, ICMP, ALL)-s, --src, --source, --src-range (-m iprange)Permet de selectionner le paquet sur adressesource-d, --dst, --destination,--dst-range (-m iprange)Permet de selectionner le paquet surladresse destination--sport, --source-port Permet de selectionner le paquet sur portsource--dport, --destination-portPermet de selectionner le paquet sur portdestination--state Permet de selectionner le paquet en fonctionde son état (stateful: NEW, RELATED,ESTABLISHED, INVALID)
  18. 18. NetfilterCibles prédéfinies les plus courantesACCEPT Le paquet est accépté, son traitement continue (routage,nat...)REJECT Le paquet est rejeté, la machine source est notifié (ICMP)DROP Le paquet est détruit (silencieux)DNAT Translation dadresse pour ladresse destination (peutsappliquer aussi sur le port pour faire du PAT)SNAT Translation dadresse pour ladresse sourceMASQUERADE Translation dadresse de type SNAT, spécifique auxinterfaces ayant une adresse IP dynaiqueLOG Logue des informations sur le paquet/traitement
  19. 19. NetfilterExemple
  20. 20. NetfilterMise en place du DNAT serveur webiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -jDNAT --to 192.168.1.2:80
  21. 21. NetfilterAccepter les flux http vers le serveur webiptables -t filter -A FORWARD -p tcp --dst 192.168.10.2 --dport 80 -j ACCEPT
  22. 22. NetfilterAccepter les flux http(s) vers lexterieuriptables -t filter -A FORWARD -p tcp -i eth2 --src192.168.0.0/24 -m multiport --dport 80,443 -j ACCEPTiptables -t filter -A FORWARD -p tcp -i eth2 --src192.168.0.0/24 --dport 80 -j ACCEPTiptables -t filter -A FORWARD -p tcp -i eth2 --src192.168.0.0/24 --dport 443-j ACCEPT
  23. 23. NetfilterAccepter les reponses pour les fluxautorisésiptables -t filter -I FORWARD -m state --stateESTABLISHED,RELATED -j ACCEPT
  24. 24. NetfilterComment Netfilter suit les sessions?/proc/net/ip_conntrack
  25. 25. NetfilterMini script final# Accepte les connections établiesiptables -t filter -A FORWARD -m state --stateESTABLISHED,RELATED -j ACCEPT# DNAT + Accept flux vers le serveur Webiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -jDNAT --to 192.168.1.2:80iptables -t filter -A FORWARD -p tcp --dst 192.168.10.2 --dport 80 -j ACCEPT# Autoriser les flux http(s) sortantiptables -t filter -A FORWARD -p tcp -i eth2 --src192.168.0.0/24 --dport 80 -j ACCEPTiptables -t filter -A FORWARD -p tcp -i eth2 --src192.168.0.0/24 --dport 443 -j ACCEPT# Cleanup (deny all)iptables -t filter -A FORWARD -j DROPATTENTION!pas de stealth rule!
  26. 26. NetfilterMini script final (mieux!)# Accepte les connections établiesiptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED-j ACCEPT# DNAT + Accept flux vers le serveur Webiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80iptables -t filter -A FORWARD -p tcp --dst 192.168.10.2 --dport 80-j ACCEPT# Autoriser les flux http(s) sortantiptables -t filter -A FORWARD -p tcp -i eth2 --src 192.168.0.0/24--dport 80 -j ACCEPTiptables -t filter -A FORWARD -p tcp -i eth2 --src 192.168.0.0/24--dport 443 -j ACCEPT# Policy par defautiptables -t filter -P FORWARD DROPiptables -t filter -P INPUT DROPiptables -t filter -P OUTPUT DROP
  27. 27. NetfilterLogsLoguer se fait en utilisant la cible LOG (-j LOG)Par défaut, les logs sont dans /var/log/messages--log-level Indique à syslog le niveau de log à utiliser--log-prefix Permet de définir un préfixe pour chaque entréé de log(ex: "netfilter:")--log-tcp-sequenceLogue les numéros de séquence TCP--log-tcp-optionsLogue les option TCP (en-têtes TCP)--log-ip-options Logue les options IP (en-tête IP)
  28. 28. NetfilterLog & Dropiptables -N logdropiptables -A logdrop -m limit --limit 5/m --limit-burst 10 -j LOG --log-prefix "Nefilterdropped: "iptables -A logdrop -j DROPAjouter une cible pour logger ET dropped des paquets:Utilisation dans une règle:iptables -A FORWARD -p tcp -j logdrop
  29. 29. NetfilterProtection DoSLa protection contre les DoS se fait grâce à la correspondancelimit (-m limit).--limit Nombre de correspondance par unité de temps ENMOYENNE (/second, /minute, /hour, /day)Exemple: -m limit --limit 3/minute--limit-burst Nombre maximum de fois ou il doit y avoir correspondanceavant de déclencher la règle
  30. 30. NetfilterRoutagePar défaut, la plupart des distributions Linux ne permettent pasle routage de paquets IP entre deux interfaces! Pour activer leroutage au niveau du kernel:sysctl -w net.ipv4.ip_forward=1Pour rendre la modification permanente, il faut modifier lefichier /etc/sysctl.conf:net.ipv4.ip_forward = 0sysctl -p /etc/sysctl.conf
  31. 31. NetfilterSauvegarde /restaurationLa sauvegarde et la restauration de stables peut se faire avec lescommandes iptables-save et iptables-restore:iptables-save [-c] [-t table]iptables-restore [-c] [-n]Exemples:iptables-save > ruleset-saveiptables-restore < ruleset-save
  32. 32. NetfilterRéférenceTutorial en français:http://www.inetdoc.net/guides/iptables-tutorial/
  33. 33. TopologiesSingle layer
  34. 34. TopologiesDual layer
  35. 35. TopologiesWeb browsing
  36. 36. TopologiesSecurity zones
  37. 37. EvolutionUTM
  38. 38. EvolutionNextgen Firewall

×