美文网首页
Debian 10下Windows和macOS登录StrongS

Debian 10下Windows和macOS登录StrongS

作者: Wilson_Li | 来源:发表于2021-08-09 16:18 被阅读0次

    Debian 10自带了StrongSwan 5.7.2,安装时注意将libstrongswan-extra-pluginslibcharon-extra-plugins插件包也安装上,否则缺少了eap-mschapv2等的认证方式,windows客户端无法连接。

    apt install strongswan strongswan-pki libstrongswan-extra-plugins libcharon-extra-plugins
    

    进入/etc/ipsec.d目录,生成系统CA私匙和CA证书:

    pki --gen --outform pem > caKey.pem
    pki --self --in caKey.pem --dn "C=CN, O=MyVPS, CN=Domain_or_IP" --ca --lifetime 3650 --outform pem >caCert.pem
    

    生成VPN服务器用于认证客户端的私匙和证书,由于Windows操作系统ikev2认证时并不会交换整个DN而只发送CN,因此需要绑定--san参数与CN值一致,而且需要加上serverAuth的标志,ikeIntermediate标志则是为了兼容旧的osX系统:

    pki --gen --outform pem > vpnKey.pem
    pki --pub --in vpnKey.pem | pki --issue --cacert caCert.pem --cakey caKey.pem --dn "C=CN, O=MyVPS, CN=Domain_or_IP" --san Domain_or_IP --flag serverAuth --flag ikeIntermediate --outform pem > vpnCert.pem
    

    私匙和证书生成了之后,将caKey.pemvpnKey.pem放入/etc/ipsec.d/private目录,caCert.pem放入/etc/ipsec.d/cacerts目录,vpnCert.pem放入/etc/ipsec.d/certs目录,StrongSwan会在相应的目录中寻找需要的密匙和证书文件,因此不能搞错。

    然后进入配置StrongSwan服务器的阶段。首先是/etc/strongswan.conf文件:

    charon {
        load_modular = yes # 这个配置项会加载所有安装了的charon插件,若想只加载部分插件,用下面的load=配置项,空格分隔插件名
        #load = random nonce aes des sha1 sha2 md4 pem pkcs1 curve25519 gmp x509 curl revocation hmac stroke kernel-netlink socket-default fips-prf eap-mschapv2 eap-identity updown
        plugins {
            include strongswan.d/charon/*.conf
        }
        dns1 = 8.8.8.8
        dns2 = 8.8.4.4
        #nbns1 = 10.1.0.1
        #nbns2 = 10.1.1.1
    }
    

    /etc/strongswan.d目录下的配置文件是对插件和服务器其它行为的配置,一般不需要手工调整。

    接下来是/etc/ipsec.conf的配置,这是配置VPN连接的,以下是配置macOS和iOS使用PSK(预共享密匙)连接和Windows的EAP-mschap2认证的:

    config setup
        # strictcrlpolicy=yes
        uniqueids = no
    
    conn %default
        #ikelifetime=60m
        #keylife=20m
        rekeymargin=3m
        keyingtries=1
        keyexchange=ikev2
        leftfirewall=yes   # 打开leftfirewall选项,strongswan服务器会在建立连接的时候自动生成数据转发的iptables条目
    
    conn windows-eap
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        dpdaction=clear
        dpddelay=300s
        rekey=no
        left=%any
        leftsubnet=0.0.0.0/0
        leftid=这里是vpnCert.pem证书中CN(--san参数)的字符串
        leftcert=vpnCert.pem
        leftauth=pubkey
        right=%any
        rightsourceip=10.1.0.0/24
        rightauth=eap-mschapv2
        rightsendcert=never
        eap_identity=%any
        auto=add
    
    conn macos-psk
        ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024
        esp=aes256-sha256,3des-sha1,aes256-sha1
        dpdaction=clear
        rekey=no
        compress=no
        type=tunnel
        fragmentation=yes
        left=%any
        leftsubnet=0.0.0.0/0
        leftid=这里是vpnCert.pem证书中的CN字符串
        right=%any
        rightsourceip=10.1.0.0/24
        rightid=%any
        authby=secret
        auto=add
    

    然后在/etc/ipsec.secrets文件里配置各连接的认证用户名和密码:

    # Windows EAP-MSCHAPv2认证方式,需要在客户端安装vpnCert.pem证书文件
    : RSA vpnKey.pem
    用户名 : EAP "密码"
    #user@domain : EAP "password"
    
    # 预共享密匙认证方式
    : PSK "预共享密匙"
    

    Debian 10默认使用firewalld作为防火墙的前端管理,需要打开ipsec服务的端口,另外,由于打开了ipsec.conf里的leftfirewall选项,StrongSwan服务器会在VPN连接建立的时候自动配置转发规则,因此需要打开防火墙的masquerade规则:

    firewall-cmd --zone=public --add-service=ipsec --permanent
    firewall-cmd --zone=public --add-masquerade --permanent
    firewall-cmd --reload
    

    配置完成。可以启动StrongSwan服务器,并查询其状态:

    systemctl start strongswan
    systemctl enable strongswan
    ipsec statusall
    

    相关文章

      网友评论

          本文标题:Debian 10下Windows和macOS登录StrongS

          本文链接:https://www.haomeiwen.com/subject/ufizvltx.html