<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>51320</bug_id>
          
          <creation_ts>2024-08-28 18:09:23 +0300</creation_ts>
          <short_desc>Ошибка подключения к VPN strongswan</short_desc>
          <delta_ts>2024-08-29 13:18:24 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>NetworkManager-strongswan</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Sivolapov">sivolapovps</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>lav</cc>
    
    <cc>oddity</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250756</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Sivolapov">sivolapovps</who>
    <bug_when>2024-08-28 18:09:23 +0300</bug_when>
    <thetext>Проверено на стендах:
sisyphus-kworkstation-kde-x86_64

Версия пакета:
strongswan-charon-nm-5.9.14-alt4.x86_64

Шаги для воспроизведения:
1. Установить пакеты на сервер:
   # apt-get install strongswan strongswan-charon-nm strongswan-sqlite tpm2-abrmd

2. Установить пакеты на клиент:
   # apt-get install NetworkManager-common

3. Выпустить сертификаты на сервере:

  # cd /etc/strongswan/swanctl/
  # strongswan pki --gen --type rsa --size 4096 --outform pem &gt; private/strongswanKey.pem
  # strongswan pki --self --ca --lifetime 3650 --outform pem --in private/strongswanKey.pem --type rsa --dn &quot;C=CH, O=strongSwan, CN=strongSwan Root CA&quot; &gt; x509ca/strongswanCert.pem
  # strongswan pki --gen --type rsa --size 2048 --outform pem &gt; private/vpnHostKey.pem
  # strongswan pki --pub --in private/vpnHostKey.pem --type rsa | strongswan pki --issue --lifetime 730 --outform pem --cacert x509ca/strongswanCert.pem --cakey private/strongswanKey.pem --dn &quot;C=CH, O=strongSwan, CN=svpn.test.dom&quot; --san svpn.test.dom --flag serverAuth --flag ikeIntermediate &gt; x509/vpnHostCert.pem
  # strongswan pki --gen --type rsa --size 2048 --outform pem &gt; private/ClientKey.pem
  # strongswan pki --pub --in private/ClientKey.pem --type rsa | strongswan pki --issue --lifetime 730 --outform pem --cacert x509ca/strongswanCert.pem --cakey private/strongswanKey.pem --dn &quot;C=CH, O=strongSwan, CN=myself@test.dom&quot; --san myself@test.dom &gt; x509/ClientCert.pem
  # openssl pkcs12 -export -name &quot;My own VPN client certificate&quot; -inkey private/ClientKey.pem -in x509/ClientCert.pem -certfile x509ca/strongswanCert.pem -caname &quot;strongSwan Root CA&quot; -out Client.p12 -passout pass:12345678

4. Отправить сертификаты на клиента:
  # scp /etc/strongswan/swanctl/private/ClientKey.pem /etc/strongswan/swanctl/x509/ClientCert.pem /etc/strongswan/swanctl/x509/vpnHostCert.pem &lt;user&gt;@&lt;ip&gt;:~

5. Настроить конфиг на сервере:
  # cat &gt; /etc/strongswan/swanctl/swanctl.conf&lt;&lt;EOF  
connections {  
    IPSec-IKEv2 {  
        version = 2  
        remote_addrs = %any  
	    pools = ipv4_pool  
        local {  
            auth = pubkey  
            certs = vpnHostCert.pem  
            id = %any  
        }  
        remote {  
            auth = pubkey  
            id = %any  
       certs = ClientCert.pem  
        }  
        children {  
        net {  
          updown = /usr/libexec/strongswan/_updown iptables  
          esp_proposals = aes128gcm16, aes256gcm16, aes128-sha256, aes128-sha1, aes256-sha384, aes256-sha256  
            }  
    }  
        proposals = aes128-sha256-ecp256, aes256-sha384-ecp384, aes128-sha256-modp2048, aes256-sha384-modp4096  
        reauth_time = 0s  
    }  
     
}  
pools {  
  ipv4_pool {  
    addrs = 10.9.0.0/24  
    dns = 8.8.8.8, 8.8.4.4  
  }  
}  
EOF

6. На клиенте добавить новый VPN на основе IPsec strongswan:

  Шлюз (ip сервера)
  Сертификат в разделе Шлюз - vpnHostCert.pem
  аутентификация - Сертификат
  Сертификат в разделе Проверка подлинности ClientCert.pem
  Личный ключ в разделе Проверка подлинности ClientKey.pem
  Пароль личного ключа 12345678
  Поставить галочку &quot;Запрашивать внутренний IP-адрес&quot;

7. Подключиться к VPN

Ожидаемый результат:
Успешное подключение

Реальный результат:
Ошибка подключения

Лог NetworkManager:

NetworkManager[1006]: &lt;warn&gt;  [1724847559.6610] vpn[0x5612d13e30f0,ebe526ec-32c9-4213-badd-75910cdeb0fc,&quot;Новое соединение vpn&quot;]: starting: failure to start VPN service: Не удалось выполнить дочерний процесс &quot;/usr/lib64/strongswan/ipsec/charon-nm&quot; (Нет такого файла или каталога)


Доп исследование:

Изменился исполняемый файл в версии 5.9.14

Было в 5.9.13:

# rpm -iq strongswan-charon-nm
strongswan-charon-nm-5.9.13-alt1.x86_64
# rpm -lq strongswan-charon-nm
/usr/lib64/strongswan/ipsec/charon-nm
/usr/share/dbus-1/system.d/nm-strongswan-service.conf

Стало в 5.9.14:

# rpm -iq strongswan-charon-nm
strongswan-charon-nm-5.9.14-alt4.x86_64
# rpm -lq strongswan-charon-nm
/usr/libexec/strongswan/charon-nm
/usr/share/dbus-1/system.d/nm-strongswan-service.conf</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250768</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Sivolapov">sivolapovps</who>
    <bug_when>2024-08-29 09:15:19 +0300</bug_when>
    <thetext>(Ответ для Pavel Sivolapov на комментарий #0)

&gt; Версия пакета:
&gt; strongswan-charon-nm-5.9.14-alt4.x86_64

Ошибся в названии пакета.
 
Версия пакета:
NetworkManager-strongswan-1.6.0-alt1.x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250849</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Shabalin">shaba</who>
    <bug_when>2024-08-29 13:18:24 +0300</bug_when>
    <thetext>Что-то я не верю в ошибку, NetworkManager-strongswan собран с --with-charon=/usr/libexec/strongswan/charon-nm.
В /usr/lib/NetworkManager/VPN/nm-strongswan-service.name явно прописано
program=/usr/libexec/strongswan/charon-nm
В точно проверяете с NetworkManager-strongswan-1.6.0-alt1? сам NetworkManager перезапускали?</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>