搭建OPENVPN服务

回复 收藏
采用yum方式安装1、先安装epel源
2、安装openvpn
# yum install openvpn easy-rsa -y
2、配置服务器
2.1 初始化服务端
# cp /usr/share/doc/openvpn-2.3.9/sample/sample-config-files/server.conf /etc/openvpn/
# mkdir -p /etc/openvpn/easy-rsa/keys
# cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
注:(openvpn-2.3.9这个目录是以当前openvpn版本命名的)
2.2配置PKI
# cd /etc/openvpn/easy-rsa
# vim vars
找到”export KEY_SIZE=”这行,根据情况把1024改成2048或者4096
再定位到最后面,会看到类似下面这样的
export KEY_COUNTRY=”US”
export KEY_PROVINCE=”CA”
export KEY_CITY=”SanFrancisco”
export KEY_ORG=”Fort-Funston”
export KEY_EMAIL=”me@myhost.mydomain
这个自己根据情况改一下,不改也可以运行。其实不改vars这个文件,vpn也可以跑起来。
例如:
export KEY_COUNTRY=”CN”
export KEY_PROVINCE=”SH”
export KEY_CITY=”Shanghai”
export KEY_ORG=”xxx”
export KEY_EMAIL=”xxx@xxx.cn
注:在后面生成服务端ca证书时,这里的配置会作为缺省配置
做SSL配置文件软链:
# ln -s openssl-1.0.0.cnf openssl.cnf
修改vars文件可执行并调用
# chmod +x vars
3、产生证书
3.1、产生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
注:由于之前做过缺省配置,这里一路回车即可
3.2、产生服务器证书
# ./build-key-server server
生成服务器端密钥证书, 后面这个server就是服务器名,也可以自定义,可以随便起,但要记住,后面要用到。一路回车,后面两处按y保存。
3.3、生成DH验证文件
# ./build-dh
生成diffie hellman参数,用于增强openvpn安全性(生成需要漫长等待),让服务器飞一会。
3.4、生成客户端证书
# ./build-key chenqi
(名字任意,建议写成你要发给的人的姓名,方便管理)
注:这里与生成服务端证书配置类似,中间一步提示输入服务端密码,其他按照缺省提示一路回车即可。
3.5、拷贝服务端证书、秘钥等
# cd /etc/openvpn/easy-rsa/keys/
# cp dh2048.pem ca.crt server.crt server.key /etc/openvpn/
客户端证书秘钥:ca.crt chenqi.crt chenqi.key(客户端配置文件会用到)
3.6、编辑服务配置文件
# vim /etc/openvpn/server.conf
  1. ;local a.b.c.d                #侦听IP,默认是所有IP
  2. port 1194                     #侦听端口,默认1194
  3. ;proto tcp
  4. proto tcp                     #协议这里选择TCP协议
  5. ;dev tap
  6. dev tun
  7. ;dev-node MyTap
  8. ca ca.crt
  9. cert server.crt
  10. key server.key
  11. dh dh2048.pem
  12. ;topology subnet
  13. server 10.196.0.0 255.255.255.0                #设置VPN客户端获取到的IP段(但不能和任何一方的局域网段重复,保证唯一)
  14. ifconfig-pool-persist ipp.txt                  ## 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP
  15. ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
  16. ;server-bridge
  17. ;push "route 192.168.10.0 255.255.255.0"
  18. ;push "route 192.168.20.0 255.255.255.0"
  19. push "route 192.168.0.0 255.255.255.0"               #内部网络的IP段,若有多段,可以加多行。
  20. ;push "route 192.168.41.0 255.255.255.0"
  21. ;client-config-dir ccd
  22. ;route 192.168.40.128 255.255.255.248
  23. ;client-config-dir ccd
  24. ;route 10.9.0.0 255.255.255.252
  25. ;learn-address ./script
  26. ;push "redirect-gateway def1 bypass-dhcp"     #若客户端希望所有的流量都通过VPN传输,则可以使用该语句,其会自动改变客户端的网关为VPN服务器,推荐关闭。
  27. ;push "redirect-gateway def1 bypass-dhcp"
  28. push "dhcp-option DNS 114.114.114.114"       #用OpenVPN的DHCP功能为客户端提供指定的DNS、WINS等
  29. ;push "dhcp-option DNS 208.67.220.220"
  30. client-to-client             #允许客户端与客户端连接。
  31. ;duplicate-cn                 #是否允许多个客户端使用同一个证书连接服务端
  32. keepalive 10 120
  33. ;tls-auth ta.key 0 # This file is secret
  34. ;cipher BF-CBC        # Blowfish (default)
  35. ;cipher AES-128-CBC   # AES
  36. ;cipher DES-EDE3-CBC  # Triple-DES
  37. comp-lzo
  38. ;max-clients 100
  39. ;user nobody
  40. ;group nobody
  41. persist-key
  42. persist-tun
  43. status openvpn-status.log
  44. log         openvpn.log            #日志
  45. ;log-append  openvpn.log
  46. verb 3                   #日志级别
  47. ;mute 20
4、启动服务
# service openvpn start
5、开启路由转发功能
# vim /etc/sysctl.conf
找到net.ipv4.ip_forward = 0
把0改成1
# sysctl -p
设置iptables
#iptables -F
#iptables -X
(这一条至关重要,通过配置nat将vpn网段IP转发到server内网)
# iptables -t nat -A POSTROUTING -s 10.196.0.0/24 -o eth0 -j MASQUERADE                   #这个IP段要和配置文件里的定义的IP段一样。
设置openvpn端口通过:
# iptables -A INPUT -p TCP –dport 11194 -j ACCEPT
# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
保存iptable设置:
# service iptables save
6、客户端设置(WINDOWS)
进入客户端OpenVPN目录,将sample-config下的client.ovpn文件复制到config目录,
client端做相应的修改:
  1. client
  2. dev tun
  3. proto tcp
  4. remote xxx.xxx.xxx.xxx 1194        #VPN服务器的IP与端口      
  5. ca ca.crt                          #如下三个文件需要从服务器生成的证书拷贝到客户端,并且名称对应。
  6. cert xxx.crt
  7. key xxx.key
  8. # tls-auth ta.key 0
  9. comp-lzo
  10. user nobody (仅供非 windows 客户端配置,windows 请用“;”注释掉)
  11. group nobody   (仅供非 windows 客户端配置,windows 请用“;”注释掉)
  12. persist-key
  13. persist-tun




2016-01-31 14:18 举报
已邀请:

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: