openVPN搭建

天远科技  发表于:2020-02-03  分类:PHP相关  阅读(6936)  赞同55

新冠来袭,公司只能通过网络办公,公司的svn、内部管理系统以及同局域网办公是当务之急,公司没有相关的网络设备于是只能用一台linux来下网关设备,部署openVPN,linux服务器两块网卡一块接外网,一块接内网,打通内部办公系统,openVPN在linux安装如下(linux是发行版是centos6,2.6内核)

1、安装openvpn+easyrsa

yum install -y epel-release automake lzo-devel openssl-devel pam-devel openssl lzo pam pkgconfig makecache

yum install -y openvpn easy-rsa

2、复制相关文件

cp /usr/share/doc/easy-rsa-3.0.6/vars.example /etc/openvpn/easy-rsa/vars

cp -r /usr/share/easy-rsa/3.0.6/* /etc/openvpn/easy-rsa/

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

3、编辑vars文件

vi /etc/openvpn/easy-rsa/vars,内容如下

set_var EASYRSA "$PWD"
set_var EASYRSA_PKI "$EASYRSA/pki"
set_var EASYRSA_DN "cn_only"
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "ZHEJIANG"
set_var EASYRSA_REQ_CITY "TONGXIANG"
set_var EASYRSA_REQ_ORG "TYNT.CN"
set_var EASYRSA_REQ_EMAIL "admin@tynt.cn"
set_var EASYRSA_REQ_OU "admin"
set_var EASYRSA_KEY_SIZE 2048
set_var EASYRSA_ALGO rsa
set_var EASYRSA_CA_EXPIRE 3650
set_var EASYRSA_CERT_EXPIRE 3650
set_var EASYRSA_NS_SUPPORT "no"
set_var EASYRSA_NS_COMMENT "admin"
set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types"
set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf"
set_var EASYRSA_DIGEST "sha256"

4、创建证书

cd /etc/openvpn/easy-rsa

./easyrsa init-pki      #目录初始化

4.1 创建ca根证书
./easyrsa build-ca      #创建根证书,输入2次pem密码,并记住(我输入的是tynt)

出现Common Name 输入名称,如openvpn-ca,回车后生成ca根证书

4.2 创建服务端证书

 ./easyrsa gen-req server nopass

出现Common Name 输入tyntServer,回车显示生成了2个文件server.key和server.req

4.3 签署服务端证书

./easyrsa sign server server   #回车后输入yes,当显示ca.key:时输入ca根证书的密码,这里是tynt

4.4 创建Diffie-Hellman,确保key穿越不安全网络的命令

./easyrsa gen-dh   #等一段时间后显示created at /etc/openvpn/easy-rsa/pki/dh.pem

4.5 生成ta秘钥文件
 openvpn --genkey --secret /etc/openvpn/easy-rsa/ta.key

5、创建客户端证书

 mkdir /home/charles_li/client   #我这里用户名是charles_li,根据你自己的来放目录

cd /home/charles_li/client

cp -r /usr/share/easy-rsa/3.0.6/* ./
5.1 初始化

 ./easyrsa init-pki

5.2 创建客户端证书

./easyrsa gen-req client   #出现Common Name 输入client,回车会创建2个文件 client.key和client.req

5.3 导入签约证书

cd /etc/openvpn/easy-rsa/
./easyrsa import-req /root/client/pki/reqs/client.req client

5.4 签约证书
./easyrsa sign client client   #回车后输入yes,出现ca.key:输入tynt。

6、拷贝相关文件

6.1 拷贝服务端文件
cp pki/ca.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/dh.pem /etc/openvpn/
cp /etc/openvpn/easy-rsa/ta.key /etc/openvpn/

6.2 拷贝客户端文件
cp pki/ca.crt /home/charles_li/client/
cp pki/issued/client.crt /home/charles_li/client/
cp /home/charles_li/client/pki/private/client.key /home/charles_li/client/
cp /etc/openvpn/easy-rsa/ta.key /home/charles_li/client/

7、编辑服务端配置文件
vi /etc/openvpn/server.conf 

port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 172.16.0.0 255.255.255.0"
push "dhcp-option DNS 114.114.114.114"
push "dhcp-option DNS 8.8.8.8"
client-to-client
duplicate-cn
keepalive 10 120
tls-auth /etc/openvpn/ta.key 0
cipher AES-256-CBC
comp-lzo
max-clients 100
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
9、配置iptables

ifconfig查看下网卡的情况,我这边eth0是内网 172.16.0.201 ,eth1是外网IP,输入

iptables -A INPUT -p UDP --dport 1194 -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source 192.168.0.226

查看下情况
iptables -nL -t nat

保存iptables
service iptables save

10、配置转发

echo 1 > /proc/sys/net/ipv4/ip_forward

vi /etc/sysctl.conf    #改 net.ipv4.ip_forward=1

sysctl -p

11、启动服务端
openvpn /etc/openvpn/server.conf &
查看udp端口情况可以使用

netstat -lnptu
============以上服务端搭建完成===============

客户端使用(windows)

下载客户端openvpn-gui,同时下载服务器上保存的客户端的几个文件ca.crt,client.req,client.key,ta.key

安装完openvpn后将4个文件拷贝到安装目录的config下面,同时新建并编辑clients.ovpn,内容如下:

client
dev tun
proto udp
remote 公司外网IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3

保存


双击启动文件或者 bin里的openvpn-gui.exe,启动后任务栏有个小图标,右键选项-高级,里面有个配置文件
文件夹栏目,选择到C:\Program Files\OpenVPN\config,确定,点击链接就可以链接上公司的VPN了


博文分类

线

在线联系
点击这里给我发消息
点击这里给我发消息
关注我们