采用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.conf4、启动服务
# 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端做相应的修改:
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
- ;local a.b.c.d #侦听IP,默认是所有IP
- port 1194 #侦听端口,默认1194
- ;proto tcp
- proto tcp #协议这里选择TCP协议
- ;dev tap
- dev tun
- ;dev-node MyTap
- ca ca.crt
- cert server.crt
- key server.key
- dh dh2048.pem
- ;topology subnet
- server 10.196.0.0 255.255.255.0 #设置VPN客户端获取到的IP段(但不能和任何一方的局域网段重复,保证唯一)
- ifconfig-pool-persist ipp.txt ## 维持一个客户端和virtual IP的对应表,以方便客户端重新连接可以获得同样的IP
- ;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
- ;server-bridge
- ;push "route 192.168.10.0 255.255.255.0"
- ;push "route 192.168.20.0 255.255.255.0"
- push "route 192.168.0.0 255.255.255.0" #内部网络的IP段,若有多段,可以加多行。
- ;push "route 192.168.41.0 255.255.255.0"
- ;client-config-dir ccd
- ;route 192.168.40.128 255.255.255.248
- ;client-config-dir ccd
- ;route 10.9.0.0 255.255.255.252
- ;learn-address ./script
- ;push "redirect-gateway def1 bypass-dhcp" #若客户端希望所有的流量都通过VPN传输,则可以使用该语句,其会自动改变客户端的网关为VPN服务器,推荐关闭。
- ;push "redirect-gateway def1 bypass-dhcp"
- push "dhcp-option DNS 114.114.114.114" #用OpenVPN的DHCP功能为客户端提供指定的DNS、WINS等
- ;push "dhcp-option DNS 208.67.220.220"
- client-to-client #允许客户端与客户端连接。
- ;duplicate-cn #是否允许多个客户端使用同一个证书连接服务端
- keepalive 10 120
- ;tls-auth ta.key 0 # This file is secret
- ;cipher BF-CBC # Blowfish (default)
- ;cipher AES-128-CBC # AES
- ;cipher DES-EDE3-CBC # Triple-DES
- comp-lzo
- ;max-clients 100
- ;user nobody
- ;group nobody
- persist-key
- persist-tun
- status openvpn-status.log
- log openvpn.log #日志
- ;log-append openvpn.log
- verb 3 #日志级别
- ;mute 20
# 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端做相应的修改:
- client
- dev tun
- proto tcp
- remote xxx.xxx.xxx.xxx 1194 #VPN服务器的IP与端口
- ca ca.crt #如下三个文件需要从服务器生成的证书拷贝到客户端,并且名称对应。
- cert xxx.crt
- key xxx.key
- # tls-auth ta.key 0
- comp-lzo
- user nobody (仅供非 windows 客户端配置,windows 请用“;”注释掉)
- group nobody (仅供非 windows 客户端配置,windows 请用“;”注释掉)
- persist-key
- persist-tun
编辑回复