strongswan + freeradius 配置 for windows

一.Strongswan 安装

1.centos 安装依赖:yum  install  -y  gmp-devel 

2.下载编译

  wget http://download.strongswan.org/strongswan.tar.gz

  tar xzf strongswan.tar.gz

  cd strongswan-*

   ./configure  --sysconfdir=/etc  --enable-openssl --enable-nat-transport --disable-mysql --disable-ldap  --disable-static --enable-shared --enable-md4 --enable-eap-mschapv2 --enable-eap-aka --enable-eap-aka-3gpp2  --enable-eap-gtc --enable-eap-identity --enable-eap-md5 --enable-eap-peap --enable-eap-radius --enable-eap-sim --enable-eap-sim-file --enable-eap-simaka-pseudonym --enable-eap-simaka-reauth --enable-eap-simaka-sql --enable-eap-tls --enable-eap-tnc --enable-eap-ttls

make && make install


错误:make: *** No targets specified and no makefile found.  Stop.

(如果编译失败 执行yum groupinstall "Development tools"

错误:configure: error: OpenSSL libcrypto not found

(如果报错 执行yum install openssl-devel.x86_64

3.执行完上述步骤之后,安装完成,其配置文件在/etc目录下

4.签发并安装证书

1)生成CA证书

生成私钥

ipsec pki --gen --outform pem > ca.pem

利用私钥,签名CA证书

ipsec pki --self --in ca.pem --dn "C=com, O=nsshell, CN=Nsshell VPN CA" --ca --outform pem >ca.cert.pem

2)服务器证书

生成私钥

ipsec pki --gen --outform pem > server.pem

CA证书签发服务器证书

ipsec pki --pub --in server.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=com, O=nsshell, CN=107.170.71.232" \--san="107.170.71.232" --flag serverAuth --flag ikeIntermediate \

--outform pem > server.cert.pem

注意–dn –san中的域名或者IP地址必须和客户端访问服务器时使用的URLIP一致,即服务器用于服务的URLIP

3)客户端证书

生成私钥

 ipsec pki --gen --outform pem > client.pem

利用CA签名客户端证书

ipsec pki --pub --in client.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=com, O=nsshell, CN=Nsshell VPN Client" --outform pem > client.cert.pem

4)生成pkcs12证书

  openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "client" -certfile ca.cert.pem -caname "Nsshell VPN CA"  -out client.cert.p12

5)安装证书

cp -r ca.cert.pem                 /etc/ipsec.d/cacerts/

cp -r server.cert.pem        /etc/ipsec.d/certs/

cp -r server.pem             /etc/ipsec.d/private/

cp -r client.cert.pem     /etc/ipsec.d/certs/

cp -r client.pem          /etc/ipsec.d/private/

注意,本章节创建和签名证书的过程中,使用的DNCN外其他必须一致,例如,–dn “C=com, O=nsshell, CN=Client…”,创建p12证书时使用的caname需要和ca证书的CN值一致。

将上面得到的ca证书(ca.cert.pem)、客户证书(client.pem, client.cert.pem)、p12证书(client.cert.p12)打包发给客户端用户安装、建立VPN链接。

5.配置/etc/ipsec.conf 配置文件

  config setup
	  strictcrlpolicy=yes
	  uniqueids = no
  conn windows7
     keyexchange=ikev2
     ike=aes256-sha1-modp1024!
     rekey=no
     leftdns = 8.8.8.8,8.8.4.4
     rightdns = 8.8.8.8,8.8.4.4
     left=%defaultroute
     leftauth=pubkey
     leftsubnet=0.0.0.0/0
     leftca = "C=com, O=nsshell, CN=Nsshell VPN CA"
     leftcert=server.cert.pem
     leftid=104.236.76.215
     right=%any
     rightauth=eap-radius
     rightsourceip=10.0.0.0/24(自己分配内存池,但该内存池要加到服务器的路由表)
     rightsendcert=never
     eap_identity=%any
     auto=add

说明:

conn位于配置文件的全局区,后面紧紧跟的是该VPN服务器的

名称,

keyexchange=ikev2: 指定使用的密钥交换协议是ikev1

left=%defaultroute: 远端服务器的ip地址是任意的

leftauth=pubkey : 表示远程服务器数据加密方式是证书

leftca = "C=com, O=nsshell, CN=Nsshell VPN CA":是CA证书dn后的内容

leftcert=server.cert.pem:服务器的证书

leftid=104.236.76.215:VPN 服务器的IP 地址或域名

right=psk  表示本地客户端的数据加密方式的预共享密钥

right=%any: 表示客户端的ip地址是任意的

rightauth=eap-radius:表示客户端的认证方式是radius 认证方式

 rightsourceip=10.0.0.0/24: 为客户端分配ip地址池,可以指定

fragmentation=yes:开启对 iOS 拆包的重组支持。

eap_identity=%any:表示客户端的名字是任意的

auto 定义 strongswan 启动时该连接的行为start 是启动; route 是添加路由表,有数据通过就启动; add 是添加连接类型但不启动; ignore 是当它不存在。默认是 ignore。看起来似乎是 route 比较好,但问题是我们服务器端不能预分配虚拟 IP,所以服务器端一般用的都是 add。而客户端文本配置可以选择 start。

注意:(conn 关键字的所在的内容与配置的真正内容即(keyexchange所在的内容不对齐,最好(keyexchange开头一下的内容起始行用TAB键补齐)))

6.配置/etc/strongswan.conf 文件

charon{
    load_modular=yes
duplicheck.enable=no
compress=yes
ipsec_use_ip_as_domain=true
filelog{
/var/log/strongswan.charon.log{
time_format=%b %e %T
default=2
append=no
flush_line=yes
  }
}
plugins{
include strongswan.d/charon/*.conf
 eap-radius{
 class_group=yes
eap-start=no
servers{
103.195.150.156{
address=103.195.150.156(radius 服务器ip地址)
secret=654321(radius  服务器密码)
nas_identifer=ipsec-gateway
sockets=20
}
}
 }
dns1=8.8.8.8
dns2=8.8.4.4
nbns1=8.8.8.8(for windows)
nbns2=8.8.4.4(for windows)
}

7.配置/etc/ipsec.secrets

vi  /etc/ipsec.secrets

# /etc/ipsec.secrets - strongSwan IPsec secrets file
:   RSA server.pem

保存退出

8.配置 /etc/strongswan.d/charon-logging.conf 

vi /etc/strongswan.d/charon-logging.conf 


charon {

    # Section to define file loggers, see LOGGER CONFIGURATION in
    # strongswan.conf(5).
    filelog {

        #  is the full path to the log file.
        #  {
            # Loglevel for a specific subsystem.
            #  = 
            # If this option is enabled log entries are appended to the existing
            # file.
            # append = yes
              append = no
            # Default loglevel.
            # default = 1
              default =2
            # Enabling this option disables block buffering and enables line
            # buffering.
            # flush_line = no
           flush_line =yes
            # Prefix each log entry with the connection name and a unique
            # numerical identifier for each IKE_SA.
            ike_name = yes
            # Prefix each log entry with a timestamp. The option accepts a
            # format string as passed to strftime(3).
            time_format =%b %e %T
         }
    }
    # Section to define syslog loggers, see LOGGER CONFIGURATION in
    # strongswan.conf(5).
    syslog {
        # Identifier for use with openlog(3).
        # identifier =
        #  is one of the supported syslog facilities, see LOGGER
        # CONFIGURATION in strongswan.conf(5).
          {
            # Loglevel for a specific subsystem.
            #  = 
            # Default loglevel.
             default = 2
            # Prefix each log entry with the connection name and a unique
            # numerical identifier for each IKE_SA.
            ike_name =yes
         }
    }
}

日志信息在/var/log,查看日志信息  tail -200 strongswan.charon.log

首次启动: ipsec start

以后启动: ipsec restart 

二.系统配置

打开你系统的转发功能,修改/etc/sysctl.conf文件

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

net.ipv6.conf.all.forwarding=1

保存退出,执行下面命令:

sysctl –p

配置防火墙

iptables 配置方法

将下面几条规则加入 iptables 规则中, 适当使用 -I 参数替换 -A 参数, 确保所有的项目位置都在拒绝项前面.

#开放端口

iptables -A INPUT -p udp --dport 500 -j ACCEPT

iptables -A INPUT -p udp --dport 4500 -j ACCEPT

#启用ip伪装

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

#添加转发

iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT(10.0.0.0/24为为客户端分配的ip地址池)

#保存规则

service iptables save

#重启服务

service iptables  restart

三.Windows 配置

1.下载IKEV2.bat 并以管理员身份运行

2.双击client.cert.p12 文件

strongswan + freeradius 配置 for windows_第1张图片


选择本机计算机,并选择下一步

strongswan + freeradius 配置 for windows_第2张图片


选择证书,并点击下一步

strongswan + freeradius 配置 for windows_第3张图片



输入密码,选择下一步


strongswan + freeradius 配置 for windows_第4张图片


按上图操作点击确定


 strongswan + freeradius 配置 for windows_第5张图片


注意:上述步骤图1,选择当前用户再执行一次,其余步骤都一样

3.点击完成,证书安装完毕

4.如下图所示为电脑配置图:

1).配置IKEV2

打开设置—>选择网络和Internet 在左菜单里面选择VPN—>添加VPN

 strongswan + freeradius 配置 for windows_第6张图片

strongswan + freeradius 配置 for windows_第7张图片


点击报存

2)打开控制面板->网络共享中心->更改适配器

选择配置的VPN 右键选择属性


strongswan + freeradius 配置 for windows_第8张图片



选择红色标书内容,并确定,点击链接遍成功

 

strongswan + freeradius 配置 for windows_第9张图片



建立连接之后无法访问网络,还需要设置

网络控制面板->网络和Internet->网络和共享中心->更改适配器

双击创建的VPN 选择属性


strongswan + freeradius 配置 for windows_第10张图片


选择上面红色标志区域,点击属性

strongswan + freeradius 配置 for windows_第11张图片



选择高级

strongswan + freeradius 配置 for windows_第12张图片


如上图所示的红色标注区域:

在远程网络上使用默认网关打钩号,取消选择自动跳跃,接口跃点数填大于15的数,最后点击确定,便可连接外网





你可能感兴趣的:(VPN,Windows)