IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    OpenVPN配置静态密钥(static-key)验证

    天明发表于 2014-12-24 11:50:00
    love 0

    由于OpenVPN的证书方式采用了TLS握手机制,而TLS已经受到严重干扰(不论是TCP还是UDP),已不能在在国内使用。但OpenVPN还可以采用静态密钥(static-key)的方式,相对于证书方式,static-key不需要TLS握手,不易被干扰,缺点也显而易见,那就是只能配置一对一的网络,如果要配置一对多的网络,需要启动多个OpenVPN进程。

    一、服务端设置

    生成static-key,并在配置文件中启用之

    $ openvpn --genkey --secret static.key

    然后把static.key和主配置文件放入同一目录

    $ vim /etc/openvpn/server.conf  #配置主配置文件如下
    dev tun
    port 8899
    ;proto tcp-server
    ifconfig 10.152.10.1 10.152.10.2
    secret static.key
      
    keepalive 10 60
    comp-lzo
    persist-key
    persist-tun
    status /var/log/openvpn/openvpn-status.log
    log /var/log/openvpn/openvpn.log
    verb 4
    push "redirect-gateway def1 bypass-dhcp"

    由于OpenVPN默认使用UDP的方式传输,如果想改用TCP方式,需要加上“proto tcp-server”一行(这里未启用,已经使用分号注释掉了);这里我去掉了push dns的配置项,因为客户端总是无法接收到PUSH过来的dns option,原因未知,所以干脆把DNS写进客户端的配置文件算了。

    $ iptables -t nat -A POSTROUTING -s 10.152.10.0/24 -j SNAT --to-source 公网ip
    $ /etc/init.d/iptables save
    $ /etc/init.d/iptables restart
     
    启动OpenVPN服务
    $ /usr/sbin/openvpn --config /etc/openvpn/server.conf > /dev/null 2>&1 &

    二、客户端设置

    仅需要把client.ovpn和static.key文件放入OpenVPN的config目录中即可

    编辑客户端配置文件(一般为.ovpn结尾)

    remote 公网IP 8899
    dev tun
    ;proto tcp-client
    ifconfig 10.152.10.2 10.152.10.1
    secret static.key
    comp-lzo
    verb 3
    redirect-gateway def1
    dhcp-option DNS 203.80.96.9
    dhcp-option DNS 168.95.192.1

    如果服务端启用了TCP传输,那么也需要启用“proto tcp-client”一行(这里未启用),这里我添加了一个香港加一个台湾的DNS,为了保证访问正常。



沪ICP备19023445号-2号
友情链接