Outils pour utilisateurs

Outils du site


Un pare-feu adaptatif

Synthèse

Une machine connectée à l'internet est soumise à une multitude d'agressions dont les buts sont très nombreux. En voici quelques-uns:

  • Juste pour le plaisir d'em**er le monde,
  • pour piquer des informations personnelles, industrielles, stratégiques qui peuvent être revendues,
  • bloquer des systèmes contre rançon,
  • permettre de stocker des données illicites ailleurs que chez soi,
  • construire des fermes de robots (botnets) dans le but de lancer des attaques par déni de service distribuées, ces dénis de service pouvant être l'objet de chantages divers,

Compromettre une machine peut se faire de diverses manières:

  • dans le cas de postes clients, en y installant des portes dérobées (backdoors) qui permettent à l'indélicat de lancer des commandes depuis la machine compromise,
  • dans le cas de serveurs:
    • chercher à exploiter des failles de sécurité des logiciels serveurs installés pour dévoyer le système,
    • chercher à utiliser des identifications de clients pour violer des données hébergées sur ces serveurs,
    • être la cible d'attaques par déni de service
    • etc. etc. etc.

Dans ce qui suit, nous allons étudier un système de détection d'anomalies comme principalement la recherche «logins» sur ssh, imap, smtp, http/https…

Fail2ban

Fail2ban est un ensemble de scripts qui vérifie dans les logs du système tout ce que les logiciels à surveiller notent comme anomalies et réagit en ajoutant à la volée des règles de filtrage fondées sur Netfilter. La version du jour (07/04/2025) est la 1.1.0 (2024/04/25). Disponible sur Debian Trixie (encore testing). Sur Bookworm, c'est la version 1.0.2 qui est empaquetée.

Les deux supportent désormais IPv6 et Nftables ce qui vaut donc la peine que l'on s'y intéresse de près.

Le banc de test

Notre machine virtuelle va subir quelques agressions. Il s'agit d'une machine virtuelle animée par Debian Trixie (Encore «testing» à l'heure où ces lignes sont rédigées), équipée des logiciels suivants:

  • Apache2 pour le serveur http/https,
  • Postfix pour smtp,
  • Dovecot pour imap, sasl,
  • nftables pour la manipulation de netfilter,
  • fail2ban pour le filtrage adaptatif, objectif de cette manipulation.

La configuration réseau avec la double pile IPv4 et IPv6.

Le pare-feu de base est configuré comme suit:

table inet filter {
	chain input_ipv4 {
		icmp type echo-request limit rate 5/second burst 5 packets accept
	}

	chain input_ipv6 {
		icmpv6 type { nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert } accept
		icmpv6 type echo-request limit rate 5/second burst 5 packets accept
	}

	chain input {
		type filter hook input priority filter; policy drop;
		iifname "lo" accept
		ct state vmap { invalid : drop, established : accept, related : accept }
		meta protocol vmap { ip : jump input_ipv4, ip6 : jump input_ipv6 }
		tcp dport { 22, 80, 443 } accept
	}
}

Un pare-feu adaptatif: Dernière modification le: 04/10/2025 à 16:01 par prof