serveurs:installation:parefeu

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurs:installation:parefeu [2023/07/03 15:39] – [Installer et configurer Firewalld] jpmilcentserveurs:installation:parefeu [2024/08/02 13:15] (Version actuelle) – [Problème : "psql: error: could not connect to server: Connection refused"] jpmilcent
Ligne 7: Ligne 7:
     * '' ss -lnue '' : pour voir les ports UDP ouverts sur la machine.     * '' ss -lnue '' : pour voir les ports UDP ouverts sur la machine.
     * ''ip link show'' : pour trouver les noms des interfaces réseaux de la machine (ex. : eth0, eth1, ...).     * ''ip link show'' : pour trouver les noms des interfaces réseaux de la machine (ex. : eth0, eth1, ...).
-  * Pour utiliser Nftables directement, préparer sa configuration comme indiqué ci-dessous mais ce n'est pas nécessaire si vous utilisez ''Firewalld''+
-    * [[https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes|Documentation des commandes de nft]] +
-    * Le fichier de configuration principal : ''/etc/nftables.conf'' +
-    * Installer Nftables : +
-      * Debian 12 : (v1.8.9 - le 2023-07-03) ''apt install nftables'' +
-      * Debian 10 : en version backports (v1.8.3 - le 2020-01-03) si nécessaire (par défaut sous Debian Buster) : ''apt install -t buster-backports nftables'' +
-    * Activer automatiquement Ntables au démarrage : ''systemctl enable nftables'' +
-    * Voir la liste des règles : ''nft list ruleset'' +
-    * Créer la table IP FILTER : ''nft add table ip filter'' +
-      * Y créer la chaine INPUT : ''nft add chain ip filter INPUT'' +
-      * Y créer la chaine OUTPUT : ''nft add chain ip filter OUTPUT''+
 ===== Installer et configurer Firewalld ===== ===== Installer et configurer Firewalld =====
   * Ressources :   * Ressources :
Ligne 24: Ligne 14:
     * [[https://www.linuxjournal.com/content/understanding-firewalld-multi-zone-configurations|Understanding Firewalld in Multi-Zone Configurations]]     * [[https://www.linuxjournal.com/content/understanding-firewalld-multi-zone-configurations|Understanding Firewalld in Multi-Zone Configurations]]
   * Installer le paquet : ''apt install firewalld''   * Installer le paquet : ''apt install firewalld''
-  * Installer le paquet //nftables// : ''apt install nftables'' 
-    * Nftables est disponible en : 
-      * v1.0.6 sous Debian 12 le 2023-07-03 
-      * v0.9.8 sous Debian 11 le 2023-05-12 
-      * v0.9.3 sous Debian 10 (Backports) le 2021-03-26 
   * Configurer : ''vi /etc/firewalld/firewalld.conf''   * Configurer : ''vi /etc/firewalld/firewalld.conf''
     * **ATTENTION** : au 2021-03-26, le support de Nftables n'est pas pris en compte dans Docker. Il est donc conseillé de maintenir l'utilisation d'''iptables'' sur le système et donc de l'utiliser avec Firewalld. Voir [[serveurs:installation:parefeu#problemefirewalld_nftables_et_docker|les explications détaillées]].     * **ATTENTION** : au 2021-03-26, le support de Nftables n'est pas pris en compte dans Docker. Il est donc conseillé de maintenir l'utilisation d'''iptables'' sur le système et donc de l'utiliser avec Firewalld. Voir [[serveurs:installation:parefeu#problemefirewalld_nftables_et_docker|les explications détaillées]].
Ligne 39: Ligne 24:
 FirewallBackend=iptables FirewallBackend=iptables
 </code> </code>
-    * Il est aussi nécessaire de mettre à jour l'alternative ''iptables'' avec la commande : ''<nowiki> update-alternatives --config iptables </nowiki>'' : choisir le mode //legacy//.+    * Il est aussi nécessaire de mettre à jour l'alternative ''iptables'' avec la commande : ''<nowiki> update-alternatives --config iptables </nowiki>'' : choisir le mode //iptables-nft//.
   * **ATTENTION** : avant d'activer le pare-feu veiller à avoir autoriser l'accès SSH sur le nouveau port. Pour cela configurer la //zone public// comme indiqué ci-dessous dans la section "Configuration des zones".   * **ATTENTION** : avant d'activer le pare-feu veiller à avoir autoriser l'accès SSH sur le nouveau port. Pour cela configurer la //zone public// comme indiqué ci-dessous dans la section "Configuration des zones".
     * En cas de problème de connexion SSH suite à l'activation du pare-feu, il est possible de se connecter au serveur via la console VNC disponible sur le Manager d'Ovh au niveau des instances ou via l'interface Open Stack Horizon (aussi accessible depuis le Manager d'OVH).      * En cas de problème de connexion SSH suite à l'activation du pare-feu, il est possible de se connecter au serveur via la console VNC disponible sur le Manager d'Ovh au niveau des instances ou via l'interface Open Stack Horizon (aussi accessible depuis le Manager d'OVH). 
Ligne 228: Ligne 213:
  
 ===== Problème : "psql: error: could not connect to server: Connection refused" ===== ===== Problème : "psql: error: could not connect to server: Connection refused" =====
-  * **Contexte** : Depuis le container Borgmatic de l'instance //db-srv//, il est impossible d'accéder à Postgresql. La commande suivante ''<nowiki> psql -h 172.18.0.1 -p 5432 -U postgres --no-password </nowiki>'' génère l'erreur :<code>+  * **Contexte** : Depuis le container Borgmatic de l'instance //db-srv//, il est impossible d'accéder à Postgresql. La commande suivante ''<nowiki> psql -h 172.18.5.1 -p 5432 -U postgres --no-password </nowiki>'' génère l'erreur :<code>
 psql: error: could not connect to server: Connection refused psql: error: could not connect to server: Connection refused
  Is the server running on host "172.18.5.1" and accepting  Is the server running on host "172.18.5.1" and accepting
  TCP/IP connections on port 5432?  TCP/IP connections on port 5432?
 </code> </code>
-  * **Solution** sur l'hôte, afficher les IPs sur lesquelles Postgresql écoute avec la commande ''ss -lntu'' et vérifier qu'il y ait bien une ligne : <code>+  * **Solution #1 :** sur l'hôte, afficher les IPs sur lesquelles Postgresql écoute avec la commande ''ss -lntu'' et vérifier qu'il y ait bien une ligne : <code>
 tcp        LISTEN      0           128                                              172.18.0.1:5432                   0.0.0.0:         tcp        LISTEN      0           128                                              172.18.0.1:5432                   0.0.0.0:        
 </code> Il faut Postgresql (port 5432) écoute sur l'IP de la gateway du bridge de Docker (ici 172.18.0.1). Si cette ligne est absente, redémarrer Postgresql ''systemctl  restart postgresql''. Elle devrait apparaitre. Si pour une raison ou une autre le service Docker n'est pas démarré au moment du démarrage de Postgresql (ordre du démarrage des services par la machine lors de son lancement), Postgresql n'écoutera pas sur l'IP 172.18.0.1 car non existante... </code> Il faut Postgresql (port 5432) écoute sur l'IP de la gateway du bridge de Docker (ici 172.18.0.1). Si cette ligne est absente, redémarrer Postgresql ''systemctl  restart postgresql''. Elle devrait apparaitre. Si pour une raison ou une autre le service Docker n'est pas démarré au moment du démarrage de Postgresql (ordre du démarrage des services par la machine lors de son lancement), Postgresql n'écoutera pas sur l'IP 172.18.0.1 car non existante...
 +  * **Solution #2 :** vérifier également via (Portainer) que le réseau nginx-proxy a bine un gateway définie à 172.18.5.1. Il faut également que les containers Dockers dans le réseau 172.18.x.x n'occupent pas les IP 172.18.5.1 et 172.18.5.0. Si le réseau est mal configuré, il faut le supprimer et le recréer correctement (voir section //Zone "docker"//). 
 ===== Problème : aucun accès à internet depuis le container ===== ===== Problème : aucun accès à internet depuis le container =====
    * ** Erreur** : <code>    * ** Erreur** : <code>
  • serveurs/installation/parefeu.1688398798.txt.gz
  • Dernière modification : 2023/07/03 15:39
  • de jpmilcent