
FirewallD est une surcouche à iptables permettant de gérer son pare-feu beaucoup plus simplement à l’aide de zones. Iptables fonctionne très bien mais est très verbeux, les options disponibles sont nombreuses et ce n’est peut-être pas la solution la plus simple pour sécuriser son serveur Linux avec un pare-feu.
Installer et configurer le pare-feu FirewallD
Sous Centos 7, il suffit simplement de lancer la commande :
yum install firewalld
Par défaut, seuls les éléments suivants sont autorisés.
# firewall-cmd --zone=public --list-services
ssh dhcpv6-client
Configurer son pare-feu pour le serveur web
La zone par défaut est la zone public.
# firewall-cmd --get-default-zone
public
A savoir que si vous avez plusieurs cartes réseaux, vous pouvez aisément configurer une zone par carte réseau !
Pour rajouter http à la zone public.
# firewall-cmd --zone=public --add-service=https
success
A noter qu’ajouter https n’ajoutera pas automatique http à votre liste de services autorisés.
Vous pourriez être tenté de n’autoriser que https sur votre serveur. Mais attention si vous utilisez Let’s Encrypt, certbot peut utiliser des challenges http pour générer votre certificat SSL.
Autoriser un port spécifique sur FirewallD
# firewall-cmd --zone=public --add-port=3000/tcp
Pour lister l’ensemble des ports autorisés :
# firewall-cmd --zone=public --list-ports
3000/tcp
Conclusion : Sécuriser son serveur VPS avec FirewallD
Rien qu’avec cette configuration, le serveur web backend (Apache sur le port 8080) n’est plus accessible, tout comme le serveur MySQL sur le port 3306.
Ceci paraît peut-être très simple, mais votre serveur n’est désormais ouvert sur l’extérieur que via une liste de services déterminés. C’est le minimum en matière de sécurité mais c’est déjà beaucoup. Pour aller plus loin vous pouvez regarder comment sécuriser votre accès SSH.
N’oubliez pas (sous CentOS et cie) de lancer FirewallD au démarrage du serveur une fois la configuration validée !
systemctl enable firewalld
Problème avec FirewallD
Attention, sous Centos 7.7 (si vous êtes chez OVH), un souci de noyaux vous empêche d’utiliser le pare-feu après la mise à jour. Il vous faudra utiliser le paquet firewallD de la version 7.6 de Centos.
https://github.com/firewalld/firewalld/issues/519#issuecomment-546586485