-1

我是这个范围内的新手。我尝试在谷歌云平台上使用 centos7(不同区域)配置 strongswan 站点到站点。我已经按照本指南进行操作:

  1. https://blog.ruanbekker.com/blog/2018/02/11/setup-a-site-to-site-ipsec-vpn-with-strongswan-and-preshared-key-authentication/
  2. https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-centos-rhel-8/
  3. https://medium.com/@georgeswizzalonge/how-to-setup-a-site-to-site-vpn-connection-with-strongswan-32d4ed034ae2

ipsec.conf来自站点 A:

config setup
     charondebug="all"
     strictcrlpolicy=no
     uniqueids = yes

conn sg-to-jkt
    authby=secret
    left=%defaultroute
    leftid=34.xx.xx.xxx
    leftsubnet=10.xxx.x.xx/24
    right=34.xxx.xxx.xxx
    rightsubnet=10.xxx.x.x/24
    ike=aes256-sha2_256-modp1024!
    esp=aes256-sha2_256!
    keyingtries=0
    ikelifetime=1h
    lifetime=8h
    dpddelay=30
    dpdtimeout=120
    dpdaction=restart
    auto=start

ipsec.secrets档案网站A:

site-A site-B : PSK "someencryptedkey"

本站ipsec.confB:

config setup
         charondebug="all"
         strictcrlpolicy=no
         uniqueids = yes

conn jkt-to-sg
        authby=secret
        left=%defaultroute
        leftid=34.xxx.xxx.xxx
        leftsubnet=10.xxx.x.x/24
        right=34.xx.xx.xxx
        rightsubnet=10.xxx.x.xx/24
        ike=aes256-sha2_256-modp1024!
        esp=aes256-sha2_256!
        keyingtries=0
        ikelifetime=1h
        lifetime=8h
        dpddelay=30
        dpdtimeout=120
        dpdaction=restart
        auto=start

ipsec.secret文件站点 B:

site-B site-A : PSK "someencryptedkey"

我的问题是:

  1. 为什么每次我重新启动 strongswan(strongswan restart)时,strongswan 服务(systemctl status strongswan)都会死/不活动?(注:strongswan隧道还在)

     ● strongswan.service - strongSwan IPsec IKEv1/IKEv2 daemon using ipsec.conf
    Loaded: loaded (/usr/lib/systemd/system/strongswan.service; enabled; vendor preset: disabled)
    Active: inactive (dead) since Sun 2020-10-11 16:37:06 UTC; 32min ago
    
  2. ESP 协议中没有流量,tcpdump esp不显示任何内容,但 strongswan 隧道已启动。我意识到状态给出的结果与示例不同。结果返回ESP in UDP SPIs而不是ESP SPIs. 有什么不同或其他吗?

感谢您的帮助和建议

4

1 回答 1

0

您可以检查您的 Systemd 服务文件strongswan.service并更改Type=选项。

默认情况下你应该有Type=simple并且它适用于许多 Systemd 服务文件,但是当脚本启动另一个进程并完成时它不起作用ExecStart,请考虑更改以在 [Service] 部分中明确指定 Type=forking 以便 Systemd 知道查看生成的进程而不是最初的进程。

来自 man systemd.service:

如果设置为分叉,则预计使用 ExecStart= 配置的进程将调用 fork() 作为其启动的一部分。当启动完成并设置所有通信通道时,父进程将退出。子进程继续作为主守护进程运行。这是传统 UNIX 守护程序的行为。如果使用此设置,建议也使用 PIDFile= 选项,以便 systemd 可以识别守护进程的主进程。一旦父进程退出,systemd 将继续启动后续单元。

此外,我在 StrackOverflow 中发现了另一个有类似问题的线程。

但请参阅man systemd.service合适的类型。

对于您的第二个问题,您可能会检查您的防火墙,我在此链接中发现了另一个类似的案例

于 2020-10-12T16:48:09.160 回答