Projet

Général

Profil

Demande #27375

Relancer ipsec dans la commande "bastion regen" sur Amon 2.7.0

Ajouté par Laurent HAEFFELE il y a environ 5 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Catégorie:
-
Version cible:
-
Début:
25/03/2019
Echéance:
% réalisé:

100%


Description

Lorsqu'on effectue la commande "bastion regen" sur Amon 2.7.0 ayant un VPN, cela régénère les commandes iptables, mais il manque les règles "* pol ipsec proto 50" ajoutées lors de l'exécution de la commande "ipsec restart".
Cela bloque donc les nouvelles connexions dans le tunnel VPN.

Historique

#1 Mis à jour par Fabrice Barconnière il y a environ 5 ans

  • Assigné à mis à Fabrice Barconnière

C'est normalement le cas.
Le problème peut éventuellement provenir du fait qu le VPN est arrêté après le flush des règles iptables.
Dans ce cas, il semble que strongswan ne s'arrête pas toujours correctement et que les commandes d'arrêt et de redémarrage de ipsec ne fonctionnent plus.
J'ai pu reproduire une fois le problème mais ce n'est pas systématique.
Peux-tu tester en modifiant /usr/sbin/bastion :

--- /usr/sbin/bastion~  2019-03-25 14:51:45.609054503 +0100
+++ /usr/sbin/bastion   2019-03-25 14:51:50.625169336 +0100
@@ -200,6 +200,7 @@
         return 1
     fi
     test_iptables
+    stopother
     /usr/sbin/ferme.firewall $silent
     RETVAL=$?

@@ -209,7 +210,6 @@
     fi

     log_end_msg $RETVAL
-    stopother
     return $RETVAL
 }

#2 Mis à jour par Laurent HAEFFELE il y a environ 5 ans

Cela ne change rien.
En fait, j'ai l'impression que la commande "service strongswan stop" est bien exécutée, mais elle n'arrête pas le service ipsec.
C'est pareil si je tente cela en ligne de commande :

root@0670134g-01:~# ipsec status | grep ESTA | sed 's/\.\.\.[^[]*\[/...W.X.Y.Z[/'
0670134G-01-Sphynx NG 3_1-admin-10[2]: ESTABLISHED 46 minutes ago, 192.168.239.2[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=0670134G-01.ac-strasbourg.fr]...W.X.Y.Z[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=sphynx.ac-strasbourg.fr]
root@0670134g-01:~# service strongswan stop
root@0670134g-01:~# ipsec status | grep ESTA | sed 's/\.\.\.[^[]*\[/...W.X.Y.Z[/'
0670134G-01-Sphynx NG 3_1-admin-10[2]: ESTABLISHED 47 minutes ago, 192.168.239.2[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=0670134G-01.ac-strasbourg.fr]...W.X.Y.Z[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=sphynx.ac-strasbourg.fr]

A priori, si j'exécute "ipsec stop" suivi de "service strongswan start" alors "service strongswan stop" arrête bien le tunnel.
Par contre, si j'exécute ensuite "ipsec restart", alors "service strongswan stop" n'arrête plus le tunnel.

root@0670134g-01:~# service strongswan status | head -n +8
● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
   Loaded: loaded (/lib/systemd/system/strongswan.service; disabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-03-25 15:59:37 CET; 51s ago
 Main PID: 19475 (starter)
    Tasks: 34 (limit: 1129)
   CGroup: /system.slice/strongswan.service
           ├─19475 /usr/lib/ipsec/starter --daemon charon --nofork
           └─19484 /usr/lib/ipsec/charon
root@0670134g-01:~# ipsec restart
Stopping strongSwan IPsec...
Starting strongSwan 5.6.2 IPsec [starter]...
root@0670134g-01:~# ipsec status | grep ESTA | sed 's/\.\.\.[^[]*\[/...W.X.Y.Z[/'
Security Associations (1 up, 0 connecting):
0670134G-01-Sphynx NG 3_1-admin-10[1]: ESTABLISHED 6 seconds ago, 192.168.239.2[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=0670134G-01.ac-strasbourg.fr]...W.X.Y.Z[C=FR, L=STRASBOURG, O=Education Nationale, OU=Academie de Strasbourg, OU=0002 110043015, CN=sphynx.ac-strasbourg.fr]
root@0670134g-01:~# service strongswan stop
root@0670134g-01:~# service strongswan status | head -n +3
● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
   Loaded: loaded (/lib/systemd/system/strongswan.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

#3 Mis à jour par Fabrice Barconnière il y a environ 5 ans

Je suis tombé sur ce cas avant de modifier /usr/sbin/bastion .
J'ai du killer les process de strongSwan : pkill -f charon

Ensuite, avec la modification proposée de /usr/sbin/bastion je ne suis plus retombé sur ce problème.

#4 Mis à jour par Laurent HAEFFELE il y a environ 5 ans

J'ai bien compris ta solution et j'ai appliqué ton patch, mais cela ne change rien à mon problème.

Lorsqu'on lance la commande ipsec restart, cela casse le service strongswan. La commande service strongswan status retourne alors que le service est arrêté (pourtant le tunnel ipsec fonctionne très bien). Du coup, la commande service strongswan stop (qui est utilisé dans la commande bastion) ne fonctionne plus. Même lancée à la main, cela ne coupe pas le tunnel VPN.

Bref, je pense qu'il faut soit utiliser la commande ipsec restart dans la commande bastion à la place de service strongswan restart ou alors trouver pourquoi ipsec restart casse le service strongswan, ce qui serait encore mieux, ou enfin interdire l'usage de la commande ipsec restart.

Je vais commencer par m'interdire d'utiliser ipsec restart et informer mes collègues.

#5 Mis à jour par Fabrice Barconnière il y a environ 5 ans

En 2.7, c'est systemd qui gère les service. Du coup, utiliser directement ipsec restart doit perturber le fonctionnement du service.

Voici un lien qui explique le problème (avec upstart et systemd) : https://bugs.launchpad.net/ubuntu/+source/strongswan/+bug/1287339
"do not use "ipsec restart" even with systemd."

#6 Mis à jour par Fabrice Barconnière il y a environ 5 ans

Tu peux me confirmer qu'en utilisant service strongswan restart à la place de ipsec restart on ne perd pas les règles "* pol ipsec proto 50" ?

#7 Mis à jour par Fabrice Barconnière il y a plus de 4 ans

  • Statut changé de Nouveau à Fermé
  • % réalisé changé de 0 à 100

Je clôture la demande. C'est Simon Déziel qui a dit de ne pas utiliser la commande ipsec restart "even with systemd".

Formats disponibles : Atom PDF