服务器内网openvpn部署

一、背景:

1、需要远程办公,连接到公司内网,打开相应的内网资源

2、需要访问服务器内网,进行连接服务器等操作

二、安装步骤:

1、服务端部署步骤:

1、安装openvpn及依赖
yum install openvpn easy-rsa lzo lzo-devel openssl openssl-devel -y
ls /etc/openvpn/                 //openvpn服务安装的所在目录
ls /usr/share/easy-rsa/        //easy-rsa安装的所在目录
2、创建服务器证书和CA根证书
find / -name "vars.example" -type f              //知道证书参数模版
cd /usr/share/easy-rsa/3.0.3/
cp /usr/share/doc/easy-rsa-3.0.3/vars.example vars //生成证书的一些默认参数在里面设置
vim vars      //修改默认参数,如下
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "Beijign"
set_var EASYRSA_REQ_CITY        "Beijing"
set_var EASYRSA_REQ_ORG         "Linux"
set_var EASYRSA_REQ_EMAIL       "asa@163.com"
set_var EASYRSA_REQ_OU          "1T"
./easyrsa init-pki        //生成新的pki目录结构
./easyrsa build-ca  nopass    //创建CA根证书,不需要密码,回车。(得到ca.crt)
./easyrsa gen-req vpnserver  nopass       //生成密钥对和证书请求文件,不需要密码,回车。(得到vpnserver.req、vpnserver.key)
./easyrsa sign server vpnserver    //用根证书CA与vpnserver.req文件签名,生成服务端证书。(得到vpnserver.crt)
./easyrsa gen-dh      //创建Diffie Hellman参数
cp -R 3.0.3/ /root/     //将3.0.3/目录复制到桌面,等会会用到
3、创建客户端证书:
cd /usr/share/easy-rsa/3.0.3/ && rm -rf  pki/   //需要删除旧的pki,重新创建
./easyrsa init-pki
./easyrsa gen-req client nopass      //生成密钥对和证书请求文件,不需要密码,回车。(得到client.req、client.key)
//刚才我们是用根证书CA签名生成服务器证书vpnserver.crt,现在以CA根证书和vpnserver.crt证书签名得到client.crt
cp pki/reqs/client.req /root/Desktop/3.0.3/pki/reqs/
cp pki/private/client.key /root/Desktop/3.0.3/pki/private/
cd /root/3.0.3/
./easyrsa sign client client    //成功生成证书client.crt
完成以上步骤服务器端需要的文件有:ca.crt 、dh.pem 、vpnserver.crt 、vpnserver.key
客户端需要的文件有:ca.crt 、client.key 、client.crt
4、修改config配置文件(此配置以用户名密码方式认证的)
//先将证书放到/etc/openvpn/server下待会儿好用
cd /root/3.0.8
cp pki/{ca.crt,dh.pem} /etc/openvpn/server/
cp pki/private/vpnserver.key /etc/openvpn/server/
cp pki/issued/vpnserver.crt /etc/openvpn/server/
find / -name "server.conf" -type f      //查找配置文件所在位置
cp /usr/share/doc/openvpn-2.4.5/sample/sample-config-files/server.conf  /etc/openvpn/server/  //复制配置文件到这里来
cd /etc/openvpn/server/  && vim server.conf  //编辑配置文件(下边为服务端配置文件)
5、nat转换操作
iptables -t nat -A POSTROUTING -s 10.3.8.0/22 -o eth0 -j MASQUERADE 将源地址10.3.8.0的网段都走vpn网卡
6、启动openvpn服务:
openvpn --config /etc/openvpn/server/server.conf --daemon
port 1194   #####端口号
proto udp       #####协议
dev tun
ca /etc/openvpn/server/ca.crt
cert /etc/openvpn/server/vpnserver.crt
key /etc/openvpn/server/vpnserver.key
dh /etc/openvpn/server/dh.pem
auth-user-pass-verify /etc/openvpn/server/checkpsw.sh via-env
verify-client-cert none  #用户密码
username-as-common-name #用户登陆的用户名就是Common Name
server 10.3.8.0 255.255.255.0  #vpn生成的ip,不能与服务器ip冲突
ifconfig-pool-persist ipp.txt    #记录客户端分配的ip
push "route 10.0.8.0 255.255.255.0"   #要访问服务器的真实ip地址 ,服务器本机地址或网段
相当于在客户端加 ip  r a 10.8.0.5 via  192.168.17.1(此配置会给客户端自动下发这条路由策略,而不用手动在客户端配置)
或者加
push "redirect-gateway def1 bypass-dhcp" (所有流量都走vpn网卡,加了这个上边就不用加手动路由了)
push "dhcp-option DNS 8.8.8.8"  推送客户端dns
push "dhcp-option DNS 114.114.114.114"
keepalive 10 120
tls-auth /etc/openvpn/server/ta.key 0  ####防DDOS攻击,服务器端0,客户端必须配置为 1
cipher AES-256-CBC
comp-lzo ###对数据进行压缩
persist-key
persist-tun
status openvpn-status.log ###输出一个简短的状态文件,用于显示当前的连接状态,该文件每分钟都会清空并重写一次。
log         openvpn.log
verb 3
explicit-exit-notify 1   # 此选项开启只能使用udp协议
script-security 3   #适用密码验证为3
duplicate-cn  ###一个用户可以连多个终端,如果不打开的话一个用户只能连接一个终端,建议不打开,保证安全,及避免服务器压力过高
client-to-client ###可以让客户端之间互访直接通过openvpn程序转发
#client-config-dir /etc/openvpn/server/ccd ####指定目录dir存放客户端自定义配置文件

 2、openvpn客户端部署

安装openvpn

yum -y install openssl-devel libnl libnl-devel pam-devel net-tools

cd /root # tar zxvf openvpn-2.4.4.tar.gz -C /usr/src/ # cd /usr/src/openvpn-2.4.4/

 ./configure --prefix=/usr/local/openvpn # make && make install

客户端安装,到这里就结束了

登录到openvpn服务器,将秘钥文件下载到客户端的/usr/local/openvpn/etc目录

客户端编辑拨号文件

# vim /usr/local/openvpn/etc/client.ovpn

内容修改如下:

client

dev tap

proto udp

remote 139.9.119.142 1194

resolv-retry infinite

nobind

persist-key

persist-tun

ca /usr/local/openvpn/etc/ca.crt

cert /usr/local/openvpn/etc/client.crt

key /usr/local/openvpn/etc/client.key

ns-cert-type server

comp-lzo

verb 3

etc的目录文件如下:

[root@localhost etc]# ll 总用量 20 -rw-r--r-- 1 root root 1757 2月   8 09:24 ca.crt -rw-r--r-- 1 root root 5426 2月   8 09:24 client_linux.crt -rw-r--r-- 1 root root 1704 2月   8 09:24 client_linux.key -rw-r--r-- 1 root root  189 2月   8 09:24 client.ovpn

启动客户端

# /usr/local/openvpn/sbin/openvpn --config /usr/local/openvpn/etc/client.ovpn

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值