Sur la machine srv-lin-01. Lire le ticket, agir dans le terminal, puis vérifier.
Ticket 9284, ouvert par Thomas Legrand : srv-lin-01 entre en service, et aucun pare-feu n'y tourne encore. Tout ce qui écoute sur la machine répond à n'importe quel poste du réseau, y compris la console de test que Samir avait lancée sur le port 8443 pour un essai, et la base de données locale.
Filtrer les connexions qui entrent dans srv-lin-01, qui a une adresse dans chacun des deux réseaux : 10.20.1.31 côté siège, 10.20.90.31 côté administration.
- l'application de suivi des interventions (HTTPS, port 443) doit rester joignable depuis tous les postes internes (10.20.0.0/16).
- L'administration à distance (SSH, port 22) est réservée au réseau d'administration, 10.20.90.0/24.
- Rien d'autre ne doit répondre au réseau : ni la base locale (port 5432), ni la console de test, ni ce qu'on installera demain sans y penser.
srv-lin-01 doit continuer d'envoyer ses sauvegardes au NAS (10.20.90.40, port 873), et ses applications de joindre la base locale.
Rappel
Le chapitre raisonne sur un pare-feu placé entre des zones. Ici, le pare-feu est celui de srv-lin-01 lui-même, et il juge ce qui entre dans la machine. Sous Linux, c'est nftables, commandé par nft (avec sudo) :
- les règles vivent dans une table (
nft add table inet filtre:inetcouvre IPv4 et IPv6), dans une chaîne rattachée à l'entrée de la machine, qui porte la politique par défaut du chapitre :nft add chain inet filtre entree '{ type filter hook input priority 0; policy accept; }', oupolicy droppour refuser tout ce qu'aucune règle n'accepte ; nft add rule inet filtre entree ...ajoute une règle en bas de la chaîne,nft insert ruleen haut. Comme dans le chapitre, elles se lisent de haut en bas, et la première qui correspond décide ;- une règle nomme ce qu'elle reconnaît, puis l'action (
acceptoudrop) :tcp dport 443(le port visé),ip saddr 10.20.1.0/24(l'origine),iif lo(l'interface par laquelle la machine se parle à elle-même),ct state established,related(les paquets d'une connexion déjà acceptée : c'est le suivi de connexion du chapitre) ; nft list rulesetmontre tout ;nft -a list rulesetajoute le numéro (handle) de chaque règle, quenft delete rule inet filtre entree handle 7retire ;nft flush rulesetefface tout.
Pour essayer comme le ferait un poste, la machine simule les deux réseaux : sudo ip netns exec reseau-postes nc -zv -w 2 10.20.1.31 443 tente une connexion depuis un poste du siège (10.20.1.57), reseau-admin depuis le poste d'administration (10.20.90.12). Sans ip netns exec, nc -zv -w 2 10.20.90.40 873 essaie depuis srv-lin-01 lui-même.
Sur un vrai serveur administré à distance, poser policy drop avant d'avoir accepté sa propre connexion SSH coupe la session en cours. Ici, le terminal est la console de la machine : il ne passe pas par le réseau.
Boîte à outils
Un clic écrit la commande au curseur, sans la lancer.
Indications
Le ticket se prépare dès que la machine est prête.
Ce terminal ouvre une vraie machine Linux, srv-lin-01, qui tourne dans la page.
Environ 14 Mo à télécharger la première fois, et 300 Mo de mémoire. Sur un téléphone, le travail se fait à l'étroit : un ordinateur avec un clavier convient mieux.