Я использую strongswan-swanctl на VPN-сервере под управлением NixOS.

В основном это работает, и я могу подключиться к серверу VPN от клиентов.

  services.strongswan-swanctl = {                                            
    enable = true;                                                           
    swanctl = {                                                              
      authorities = {                                                        
        "vpnca" = {                                                          
          cacert = "ca-cert.pem";                                            
        };                                                                   
      };                                                                     
      connections = {                                                        
        "ikev2-eap" = {                                                      
          version = 2;                                                       
          proposals = [ "aes192gcm16-aes128gcm16-prfsha256-ecp256-ecp521"    
                        "aes192-sha256-modp3072"                             
                        "default" ];                                         
          rekey_time = "0s";                                                 
          pools = [ "primary-pool-ipv4" "primary-pool-ipv6" ];               
          fragmentation = "yes";                                             
          dpd_delay = "30s";                                                 
          local."1" = {                                                      
            certs = [ "vpn_example_com.pem" ];                              
            id = "@vpn.example.com";                                        
          };                                                                 
          remote."1" = {                                                     
            auth = "eap-mschapv2";                                           
            eap_id = "%any";                                                 
          };                                                                 
          children = {                                                       
            "ikev2-eap" = {                                                  
              local_ts = [ "0.0.0.0/0" "::/0" ];                             
              rekey_time = "0s";                                             
              dpd_action = "clear";                                          
              esp_proposals = [ "aes192gcm16-aes128gcm16-prfsha256-ecp256-modp3072"
                                "aes192-sha256-ecp256-modp3072"              
                                "default" ];                                 
              updown = "/etc/swanctl/proxyndp.updown";                       
            };                                                               
          };                                                                 
          local_addrs = [ "192.0.2.1" "2001:db8::2"];         
        };                                                                   
      };

Проблема у меня внутри скрипта /etc/swanctl/proxyndp.updown :

#! /bin/sh

case $PLUTO_VERB in
     up-client-v6)
         sysctl -w net.ipv6.conf.all.forwarding=1
         sysctl -w net.ipv6.conf.all.proxy_ndp=1
         ip -6 neigh add proxy ${PLUTO_PEER_CLIENT%????} dev ens3
     ;;
     down-client-v6)
         ip -6 neigh delete proxy ${PLUTO_PEER_CLIENT%????} dev ens3
     ;;
esac

Программа sysctl не найдена системой при выполнении этого скрипта. В обычной пользовательской оболочке я вижу инструмент в /run/current-system/sw/bin/sysctl но для этого скрипта я получаю следующие сообщения журнала в системном журнале:

Feb 12 16:04:01 vpn.example.com charon-systemd[9249]: updown: /etc/swanctl/proxyndp.updown: line 5: sysctl: command not found
Feb 12 16:04:01 vpn.example.com charon-systemd[9249]: updown: /etc/swanctl/proxyndp.updown: line 6: sysctl: command not found

Примечание: ip находится в той же папке и может быть запущен сценарием.

Есть идеи, что там происходит?

0