如何使用 iPhone 客户端为纯 IPSEC 设置 strongswan 或 openswan?

Sha*_*obe 21 vpn ipsec

我无法找到有关如何设置strongswan 或openswan 以供iphone 的VPN 客户端使用的具体、最新信息。我的服务器在一个廉价的 linksys NAT 路由器后面。

我找到了这个,但它提到了一大堆 .pem 文件,但没有关于如何创建它们的参考。不幸的是,这两个软件包的“精美”手册对新手来说非常难懂且不友好。我之前设置过 OpenVPN 并设法很快获得了可用的结果,但是在阅读了一天半的过时文档后,我几乎不知道从哪里开始。

任何帮助将不胜感激!

小智 23

这有帮助吗?
问候,威廉·M·普尔特

StrongSwan mini Howto Debian 5

install strongswan + openssl
apt-get install strongswan openssl
Run Code Online (Sandbox Code Playgroud)

创建您的 CA 文件:

cd /etc/ipsec.d
openssl req -x509 -days 3650 -newkey rsa:2048 -keyout \
private/strongswanKey.pem -out cacerts/strongswanCert.pem
cp cacerts/strongswanCert.pem certs/
Run Code Online (Sandbox Code Playgroud)

如果您希望 CA 证书采用二进制 DER 格式,则以下命令可实现此转换:

openssl x509 -in cacerts/strongswanCert.pem -outform DER -out \ 
cacerts/strongswanCert.der
Run Code Online (Sandbox Code Playgroud)

编辑/etc/ssl/openssl.conf (/usr/lib/ssl/openssl.cnf是一个符号链接):

nano -w /usr/lib/ssl/openssl.cnf
Run Code Online (Sandbox Code Playgroud)

更改参数以适合您的 strongswan 环境。

[ CA_default ] 

dir     = /etc/ipsec.d              # Where everything is kept 
certificate = $dir/cacerts/strongswanCert.pem       # The CA certificate 

private_key = $dir/private/strongswanKey.pem        # The private key 
Run Code Online (Sandbox Code Playgroud)

创建丢失的 DIR 和文件:

mkdir newcerts
touch index.txt
echo “00” > serial
Run Code Online (Sandbox Code Playgroud)

生成用户证书:

openssl req -newkey rsa:1024 -keyout private/hostKey.pem \
    -out reqs/hostReq.pem
Run Code Online (Sandbox Code Playgroud)

签两年:

openssl ca -in reqs/hostReq.pem -days 730 -out \
    certs/hostCert.pem -notext
Run Code Online (Sandbox Code Playgroud)

通常,基于 Windows 的 VPN 客户端需要其私钥、主机或用户证书以及 CA 证书。加载此信息的最方便的方法是将所有内容放入 PKCS#12 文件中:

openssl pkcs12 -export -inkey private/hostKey.pem \
    -in certs/hostCert.pem  \
    -name "host" \ 
    -certfile cacerts/strongswanCert.pem \
    -caname "strongSwan Root CA" \
    -out host.p12
Run Code Online (Sandbox Code Playgroud)

编辑/etc/ipsec.secrets

:RSA strongswanKey.pem “pempassword”
:XAUTH user "secret"
Run Code Online (Sandbox Code Playgroud)

编辑/etc/ipsec.conf

config setup
    plutodebug=none
    uniqueids=yes
    nat_traversal=yes
    interfaces="%defaultroute"

conn %default
    authby=rsasig
    leftrsasigkey=%cert
    rightrsasigkey=%cert
    keyingtries=1
    keylife=20m
    ikelifetime=240m

conn iphone
    auto=add
    dpdaction=clear
    authby=xauthrsasig
    xauth=server
    pfs=no
    leftcert=strongswanCert.pem
    left=<serverip>
    leftsubnet=0.0.0.0/0
    right=%any
    rightsourceip=<virtual client ip>   #local VPN virtual subnet
    rightcert=hostCert.pem
Run Code Online (Sandbox Code Playgroud)

在 iPhone 上

  1. 以 p12 格式导入 iphone-client 证书
  2. 以 pem 格式导入 CA 证书
  3. 使用 iphone-client 证书配置 IPSEC-VPN,并将 DNS 名称 (DynDNS-Name) 用作服务器。它必须与服务器证书中的相同

要在您的 iphone 上导入证书,只需将它们通过电子邮件发送给您自己!在您的 iphone 上创建 ipsec vpn 时,您可以选择证书。

请注意,如果要进行 NAT,则需要设置 iptables。(查看 fwbuilder)