
Contrôle centralisé du pare-feu
Le contrôle centralisé du pare-feu offre un moyen centralisé de gérer le pare-feu sur plusieurs serveurs ou répartiteurs de charge exécutant iptables. Ainsi, vous pouvez rapidement autoriser/bloquer/supprimer/rechercher des plages d'abus, etc., avec une seule commande sur plusieurs serveurs. Il accède à ces serveurs via ssh. Il prend en charge à la fois IPv4 et IPv6. Testé sur Debian 6.x / 7.x / 8.x / 9.x, mais devrait fonctionner sur toute distribution.
Pour utiliser les fonctions 'precheck', 'protected' et 'findip' pour IPv6, vous devez avoir le module python 'netaddr' installé. L'IPv4 n'en a pas besoin car il utilise la correspondance de préfixe sur la forme binaire de l'IP.
Debian: apt-get install python3-netaddr
Il est plus efficace d'utiliser 'ipset' en complément d'iptables. Ipset peut être utilisé pour gérer des listes auxquelles iptables peut se référer et les utiliser. Cela fonctionne plus rapidement et la manipulation de la liste est également plus flexible, c'est la méthode préférée pour utiliser ce script.
Debian: apt-get install ipset
Étant donné que ce script se connecte aux serveurs indiqués via ssh, cet accès doit être présent avant de pouvoir l'utiliser.
Copiez le fichier de configuration exemple de cfc.cfg-example vers cfc.cfg la première fois.
Les paramètres suivants peuvent être définis dans le fichier de configuration :
Lors de la saisie d'adresses IP/plages avec les commandes suivantes, faites-le en notation CIDR, cela est validé et n'accepte rien d'autre.
add:
cfc.sh add n.n.n.n/NN '<optional comment>'
cfc6.sh add <IPv6_address_range> '<optional comment>'
Ajoute la plage IP donnée aux pare-feux avec l'action configurée pour tout le trafic provenant de cette source. Ajoute un commentaire par défaut avec la date actuelle, vous pouvez ajouter un commentaire optionnel en utilisant des guillemets simples pour indiquer une raison ou le propriétaire de cette plage par exemple. Il peut également être recherché ultérieurement sur ce commentaire.
addstring:
cfc.sh addstring <protocol>:<dport> <string>
cfc6.sh addstring <protocol>:<dport> <string>
Ajoute un blocage de chaîne à iptables pour un protocole et un port de destination donnés. Un exemple pratique serait de bloquer un User-Agent destiné à un groupe de serveurs web, donc une connexion tcp destinée au port 80 avec la chaîne : Firefox/28.0, tout le trafic entrant correspondant à cette chaîne vers le port tcp 80 serait bloqué :
cfc.sh addstring tcp:80 'Firefox/28.0'
Attention, cela peut avoir de graves conséquences si la chaîne n'est pas assez spécifique !
clean:
cfc.sh clean <older_than_number_of_days>
Nettoie toutes les règles de pare-feu CFC plus anciennes que n jours. Gardez à l'esprit que cela dépend du format de date par défaut ! Donc si vous avez personnalisé le format de date, vous devrez ajuster le script dans la section 'clean'.
del:
cfc.sh del n.n.n.n/NN
cfc6.sh del <IPv6_address_range>
Supprime la plage IP/règle donnée des pare-feux
delstring:
cfc.sh delstring <protocol>:<dport> <string>
cfc6.sh delstring <protocol>:<dport> <string>
Supprime un blocage de chaîne dans iptables pour un protocole et un port de destination donnés.
find:
cfc.sh find <string>
cfc6.sh find <string>
Recherche dans les pare-feux la chaîne donnée (insensible à la casse), cela peut être (une partie de) une adresse IP, une plage ou un commentaire
findip:
cfc.sh findip n.n.n.n/NN
cfc6.sh findip <IPv6_address_range>
Recherche dans les pare-feux si la plage IP donnée fait déjà partie d'une règle ajoutée, peut être un peu lent sur les grands pare-feux pour IPv6 (~25 sec pour rechercher 500 plages IP par serveur). L'IPv4 utilise la correspondance de préfixe sur la forme binaire de l'adresse IP, ce qui est environ 500% plus rapide, cette méthode est également utilisée pour les fonctionnalités precheck et protectedranges.
ipsethostinit:
cfc.sh ipsethostinit <server_name>
cfc6.sh ipsethostinit <server_name>
Ajoute une liste IPSET à l'hôte spécifié et une règle iptables s'y référant en utilisant les paramètres définis dans cfc.cfg. Cette opération ne doit être effectuée qu'une seule fois avant d'ajouter des règles de pare-feu.
last:
cfc.sh last <nr_of_most_recent_rules>
cfc6.sh last <nr_of_most_recent_rules>
Affiche les dernières entrées ajoutées aux pare-feux