Firewalld

De Justine's wiki
Aller à la navigation Aller à la recherche

Firewalld : configuration de base sur Debian 10

Par défaut, il faut ajouter les interfaces et les services; autrement, on se met dehors soi-même.

Par défaut, la zone active est "public"; on peut utiliser les commandes suivantes:

firewall-cmd --list-all-zones
firewall-cmd --get-zones
firewall-cmd --get-active-zones
firewall-cmd --get-default-zone

Si ça ne donne rien, il faut malheureusement reboot; bug ou feature ?

<source lang="bash"> firewall-cmd --add-interface=ens18

  1. Ensuite, on peut ajouter des services

firewall-cmd --zone=public --add-service=ssh --permanent

  1. ... Ou des ports

firewall-cmd --add-port=80/tcp --permanent </source>

Le problème semble venir de l'utilisation suite à ces commandes de "firewall-cmd --reload". Dès que je la lance, j'ai une erreur nftables et je n'ai plus rien dans firewalld ? De toute façon, il suffit d'utiliser l'argument "--permanent" pour s'en passer.

Il s'agit d'une configuration très simple.

Bloquer une liste de blocs d'IPs

Source ...la Chine, par exemple.

Je télécharge la liste de tous les blocs d'IP de la Chine, Ici.

Ensuite, je vais créer un ipset, soit une longue liste d'IPs (ou d'adresses MAC).

Je commence par créer l'ipset:

firewall-cmd --permanent --new-ipset=blacklist_china --type=hash:net --option=family=inet --option=hashsize=4096 --option=maxelem=200000
  • permanent : permanent...
  • new-ipset : je la crée et lui donne un nom
  • type : hash:net : Type de stockage. net pour des blocs, ip pour des adresses. On peut avoir la liste de tous les types avec firewall-cmd --get-ipset-types
  • option:family:inet : ipv4
  • hashize : Taille initiale de hash de la liste
  • maxelem : nombre maximum d'élements

Je vais ensuite peupler mon ipset à partir du fichier téléchargé.

firewall-cmd --permanent --ipset=blacklist_china --add-entries-from-file=cn-aggregated.zone

Enfin, je vais ajouter mon ipset à la zone "DROP" : ils ne nous embêteront plus.

firewall-cmd --permanent --zone=drop --add-source=ipset:blacklist_china
firewall-cmd --reload

Si je veux bloquer tout sauf un seul port il suffit de créer une nouvelle zone qui droppe avec :

firewall-cmd --new-zone=blackhole --permanent
firewall-cmd --zone=blackhole --set-target=DROP --permanent

...et de lui passer l'IPSet.


Comprendre la configuration multizones

Une ressource intéressante