免费注册
帮助文档(华北一、二)

  • 1、安装openvpn

    我们这边用yum安装,当然你也可以自己编译安装(从这个页面下载:http://openvpn.net/index.php/download.html)。

     # yum install -y openvpn easy-rsa

    2、配置服务器

    A. 初始化服务器

     

    # cp /usr/share/doc/openvpn-2.3.6/sample/sample-config-files/server.conf /etc/openvpn/

    # cp -r /usr/share/easy-rsa/2.0/* /etc/openvpn/

    注:(openvpn-2.3.6这个目录是以当前openvpn版本命名的)

    B. 配置PKI

     

    # cd /etc/openvpn/

    # vim vars

    找到"export KEY_SIZE=”这行,根据情况把1024改成2048或者4096

    再定位到最后面,会看到类似下面这样的:

     

    export KEYCOUNTRY="US"

    export KEYPROVINCE="CA"

    export KEYCITY="SanFrancisco"

    export KEYORG="Fort-Funston"

    export <KEY_EMAIL="me@myhost.mydomain">

    这个自己根据情况改一下,不改也可以运行。其实不改vars这个文件,vpn也可以跑起来。

    例如:

     

    export KEYCOUNTRY="CN"

    export KEYPROVINCE="BJ"

    export KEYCITY="Beijing"

    export KEYORG="xxx"

    export <KEY_EMAIL="xxx@xxx.cn">

    注:在后面生成服务端CA证书时,这里的配置会作为缺省配置。

    做SSL配置文件软链

     # ln -s openssl-1.0.0.cnf openssl.cnf

    修改vars文件可执行并调用

     # chmod +x vars

    3、产生证书

    A. 产生CA证书

     # source ./vars

    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/keys

    注:也就是如果执行./clean-all,就会清空/etc/openvpn/keys下所有文件。

    开始配置证书:

    ● 清空原有证书

     # ./clean-all

    注:下面这个命令在第一次安装时可以运行,以后在添加完客户端后慎用,因为这个命令会清除所有已经生成的证书密钥,和上面的提示对应。

    ● 生成服务器端CA证书

     # ./build-ca

    注:由于之前做过缺省配置,这里一路回车即可。

    B. 产生服务器证书

     # ./build-key-server openvpn.example.com

    生成服务器端密钥证书, 后面这个openvpn.example.com就是服务器名,也可以自定义,可以随便起,但要记住,后面要用到。

    C. 生成DH验证文件

     # ./build-dh

    生成diffie hellman参数,用于增强openvpn安全性(生成需要漫长等待),让服务器飞一会。

    D. 生成客户端证书

     

    # ./build-key client1

    # ./build-key client2

    (名字任意,建议写成你要发给的人的姓名,方便管理)

    注:这里与生成服务端证书配置类似,中间一步提示输入服务端密码,其他按照缺省提示一路回车即可。

    E. 生成ta.key文件

     # openvpn --genkey --secret /etc/openvpn/keys/ta.key

    F.编辑服务配置文件

     # vim /etc/openvpn/server.conf

    注:可按照默认模板配置,本例为自定义配置文件:

     

    # 设置监听IP,默认是监听所有IP

    ;local a.b.c.d

    # 设置监听端口,必须要对应的在防火墙里面打开

    port 1194

    # 设置用TCP还是UDP协议?

    ;proto tcp

    proto tcp

    # 设置创建tun的路由IP通道,还是创建tap的以太网通道,由于路由IP容易控制,所以推荐使用tunnel;

    # 但如果如IPX等必须使用第二层才能通过的通讯,则可以用tap方式,tap也就是以太网桥接

    ;dev tap

    dev tun

    # 这里是重点,必须指定SSL/TLS root certificate (ca),

    # certificate(cert), and private key (key)

    # ca文件是服务端和客户端都必须使用的,但不需要ca.key

    # 服务端和客户端指定各自的.crt和.key

    # 请注意路径,可以使用以配置文件开始为根的相对路径,

    # 也可以使用绝对路径

    # 请小心存放.key密钥文件

    ca keys/ca.crt

    cert keys/openvpn.example.com.crt

    key keys/openvpn.example.com.key # This file should be kept secret

    # 指定Diffie hellman parameters.

    (默认是2048,如果生成ca的时候修改过dh参数“export KEY_SIZE”则改为对应的数字)

    dh keys/dh2048.pem

    # 配置VPN使用的网段,OpenVPN会自动提供基于该网段的DHCP服务,但不能和任何一方的局域网段重复,保证唯一

    server 10.20.0.0 255.255.255.0

    # 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP

    ifconfig-pool-persist ipp.txt

    # 为客户端创建对应的路由,以另其通达公司网内部服务器

    # 但记住,公司网内部服务器也需要有可用路由返回到客户端

    ;push "route 192.168.20.0 255.255.255.0"

    push "route 10.X.0.0 255.255.0.0"  (X按照机房网段修改)

    # 若客户端希望所有的流量都通过VPN传输,则可以使用该语句

    # 其会自动改变客户端的网关为VPN服务器,推荐关闭

    # 一旦设置,请小心服务端的DHCP设置问题

    ;push "redirect-gateway def1 bypass-dhcp"

    # 用OpenVPN的DHCP功能为客户端提供指定的DNS、WINS等

    ;push "dhcp-option DNS 208.67.222.222"

    ;push "dhcp-option DNS 208.67.220.220"

    # 默认客户端之间是不能直接通讯的,除非把下面的语句注释掉

    client-to-client

    # 下面是一些对安全性增强的措施

    # For extra security beyond that provided by SSL/TLS, create an "HMAC firewall"

    # to help block DoS attacks and UDP port flooding.

    #

    # Generate with:

    # openvpn --genkey --secret ta.key

    #

    # The server and each client must have a copy of this key.

    # The second parameter should be 0 on the server and 1 on the clients.

    ; tls-auth ta.key 0 # This file is secret

    (这句要注释掉)

    # 使用lzo压缩的通讯,服务端和客户端都必须配置

    comp-lzo

    # 输出短日志,每分钟刷新一次,以显示当前的客户端

    status /var/log/openvpn/openvpn-status.log

    # 缺省日志会记录在系统日志中,但也可以导向到其他地方

    # 建议调试的使用先不要设置,调试完成后再定义

    log         /var/log/openvpn/openvpn.log

    log-append  /var/log/openvpn/openvpn.log

    # 设置日志的级别

    #

    # 0 is silent, except for fatal errors

    # 4 is reasonable for general usage

    # 5 and 6 can help to debug connection problems

    # 9 is extremely verbose

    verb 3

    创建日志目录:

     # mkdir -p /var/log/openvpn/

    4、启动服务

     # service openvpn start

    或者

     # /etc/init.d/openvpn start

    如果遭遇启动失败的情况,可以在配置文件中加上一行log-append openvpn.log

    再尝试启动,然后到/var/log/openvpn/检查openvpn.log文件来查看错误发生原因。

    最后将openvpn配置开机启动

     # chkconfig openvpn on

    开启路由转发功能

     # vim /etc/sysctl.conf

    找到net.ipv4.ip_forward = 0

    把0改成1

     # sysctl -p

    设置iptables(这一条至关重要,通过配置nat将vpn网段IP转发到server内网)

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

    设置openvpn端口通过:

     

    # iptables -A INPUT -p TCP --dport 1194 -j ACCEPT

    # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    保存iptable设置:

     # service iptables save

    5、开通防火墙端口

    在后台,“防火墙管理”,选中您服务器应用的防火墙,点击编辑。

    点击“添加规则”,增加如下TCP 1194,然后“保存”。


文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家