FireWall

Mais ce sera plus un écran de fumée afin de se protéger au maximum des intrusions externes malveillantes sur nos serveurs internes qui peuvent circuler par le NAT de notre box.

Cette procédure n'est valable que si et seulement si on est un peu sérieux, c'est à dire que :

  • On à un système d'exploitation à jour c'est à dire exit les windows XP, W7 et on peut ajouter W8.
  • Avoir Windows 10 n'est pourtant pas suffisant il faut une version récente, la 2004 est un minimum, la 20H2 est un must.
  • Avoir W10 20H2 n'est pourtant pas suffisant il faut aussi, que le système d'exploitation soit à jour ainsi que les drivers et l'anti-virus
    • Tout ce qui est dit plus haut, peut être redit en changeant windows->linux->mac os.
    • Avoir W10 20H2 a jour n'est pas suffisant il faut aussi que l'utilisateur soit mis à jour avec ces notions :
      • que l'internet n'est pas un monde de bisounous.
      • que les trop bonnes affaires ne sont pas si nombreuse que cela, comme dans la vrai vie.
      • que toute action informatique, ne serait-ce qu'un clic, demande un peu de lecture, de temps et concentration et de discernement, parce qu’après c'est trop tard.

Maintenant que l'on a des systèmes à jour, des utilisateurs aux pratiques respectueuses et responsables, il est temps de passer un peu de temps pour que ce petit monde puisse évoluer dans un environnement saint et contrôlé.

Premier bémol, je suis dans l’incapacité de vous aider de façon sure et formelle, c'est un métier à part entière et ce n'est pas le mien. Ce que je vous propose c'est un minima de sécurité histoire de faire passer sa route aux plus impatient des "méchants de l'internet", les gros ben eux c'est plus compliqué.

Je propose deux solutions : Premièrement bloquer les demandes venant de la box vers les serveurs qui ne sont pas à destination des ports effectifs, ce n'est pas vraiment dramatique dans l’environnement linux puisque peut de ports sont ouvert pas défaut et le NAT de la box est explicite. Mais cela permet de jouer sur des nouveaux services et donc des ports ouvert sans être au bout du paramétrage final et donc exposé sur l'internet, ces actions seront donc un moyen de prendre conscience des blocages ou pas mis en place et c'est toujours mieux que des actions implicite que l'on ne connait pas voir maîtrise pas. Deuxièmement, il faut aussi protéger les fameux ports qui sont ouvert depuis l'internet aux attaques incessante et brutale de vil personnage.

Le firewall

Sous linux nous allons utiliser le service ufw, une firewall basique et disponible par défaut depuis peu.Pour exemple je prendrais mon serveur nexcloud en 192.168.1.244, ma box en 192.168.1.254 qui permet du nat des ports 80,443.

Quoi protéger ?

Première inspection des ports ouvert sur mon serveur

netstat -upnat

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      91/systemd-resolved 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      148/sshd: /usr/sbin 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      397/master          
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      217/mysqld          
tcp6       0      0 :::22                   :::*                    LISTEN      148/sshd: /usr/sbin 
tcp6       0      0 ::1:25                  :::*                    LISTEN      397/master          
tcp6       0      0 :::443                  :::*                    LISTEN      221/apache2         
tcp6       0      0 :::80                   :::*                    LISTEN      221/apache2         
tcp6       0      0 192.168.1.244:443       192.168.1.10:44398      TIME_WAIT   - 
udp        0      0 127.0.0.53:53           0.0.0.0:*                           91/systemd-resolved                  
...

les adresses en 127.0.0.1 on passe, on trouve du port 22(ssh) du 25(smtp) et enfin nos 80 et 443. 1er constat, ce serveur peut recevoir sur les ports listés soit avec l'Ip locale ou celle noté 0.0.0.0 des échanges, ce sera donc sur les ports 22 80 et 443. 2eme constat les port autres en 127.0.0.1 ports ne sont exposés que depuis la boucle locale qui normalement est sure.

Comment ?

il y a plusieurs méthodes, voici celle que j'ai retenu, l'ordre d’apparition est important :

  1. autorise le ipv6
  2. autorise le 80 venant de box
  3. autorise le 443 venant de box
  4. Bloque box
  5. autorise le lan vers tout ( si parano limiter aux ip sure )

Ce qui donne en langage ufw : Dans le fichier de configuration /etc/default/ufw

IPV6=yes

  1. ufw allow from 192.168.1.254 to any port 80
  2. ufw allow from 192.168.1.254 to any 443
  3. ufw deny from 192.168.1.254

    Oui c'est vrai il en manque une, mais puisque nous ne sommes pas dans le schéma classique de bloquer toutes les entrées et sorties, c'est implicite. On va donc ajouter pour la beauté du geste et surtout avoir conscience de toutes nos actions et c'est encore mieux quand on a des logs alors on les actives

    1. ufw allow from 192.168.1.0/24
    2. ufw logging medium

    Action

    Reste plus qu'a activer le firewall super pas compliqué avec

    ufw enable

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y  
Firewall is active and enabled on system startup

Verification avec

ufw status verbose

Status: active  
Logging: on (low)  
Default: deny (incoming), allow (outgoing), disabled (routed)  
New profiles: skip  

To Action From  
-- ------ ----  
80 ALLOW IN 192.168.1.254  
443 ALLOW IN 192.168.1.254  
Anywhere DENY IN 192.168.1.254  
Anywhere ALLOW IN 192.168.1.0/24

Pour vérifier le bon fonctionnement du système ouvrir le NAT sur le port 22 depuis la box et si la connexion est possible alors c'est pas bon puisque le firewall ne l'autorise pas !!!

Enjoy !

Next Post Previous Post