openvpn 部署

Centos7 搭建openvpn

openVPN可以软件实现通过认证后进行对内网设备操作。


安装阶段

添加源

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装openvpn

yum -y install openvpn easy-rsa

生成openvpn 必要文件

如果安装的easy-rsa-3.0的版本,针对3.0生成证书,执行的步骤如下:

复制文件

cp -r /usr/share/easy-rsa/ /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa/
\rm 3 3.0
cd 3.0.3/
find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars

生成证书

创建一个新的PKI和CA

cd /etc/openvpn/easy-rsa/3.0.3
./easyrsa init-pki  #创建空的pki
./easyrsa build-ca nopass #创建新的CA,不使用密码

创建服务端证书

./easyrsa gen-req server nopass

签约服务端证书

./easyrsa sign server server    # 这里需要输入“yes”

创建 Diffie-Hellman

./easyrsa gen-dh

到这里服务端的证书就创建完了,然后创建客户端的证书。

创建客户端证书

复制文件

cp -r /usr/share/easy-rsa/ /etc/openvpn/client/easy-rsa
cd /etc/openvpn/client/easy-rsa/
\rm 3 3.0
cd 3.0.3/
find / -type f -name "vars.example" | xargs -i cp {} . && mv vars.example vars

生成证书

扫描二维码关注公众号,回复: 2226876 查看本文章
cd /etc/openvpn/client/easy-rsa/3.0.3
./easyrsa init-pki #创建新的pki
./easyrsa gen-req dalin nopass  #客户证书名为大林,木有密码

签约客户端证书

cd /etc/openvpn/easy-rsa/3.0.3/
./easyrsa import-req /etc/openvpn/client/easy-rsa/3.0.3/pki/reqs/dalin.req dalin
./easyrsa sign client dalin # 需要输入:“yes”

整理证书

现在所有的证书都生成完了,整理一下

服务端所需的文件

mkdir /etc/openvpn/certs
cd /etc/openvpn/certs/  
cp /etc/openvpn/easy-rsa/3.0.3/pki/dh.pem .  
cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt .
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/server.crt .
cp /etc/openvpn/easy-rsa/3.0.3/pki/private/server.key .

客户端所需的文件

mkdir /etc/openvpn/client/dalin/
cp /etc/openvpn/easy-rsa/3.0.3/pki/ca.crt /etc/openvpn/client/dalin/
cp /etc/openvpn/easy-rsa/3.0.3/pki/issued/dalin.crt /etc/openvpn/client/dalin/
cp /etc/openvpn/client/easy-rsa/3.0.3/pki/private/dalin.key /etc/openvpn/client/dalin/

这三个客户端的文件用来验证,需要下载下来使用,顺便提一下再添加用户在./easyrsa gen-req这里开始就行了, 像是吊销用户证书的命令都自己用./easyrsa --help去看吧,GitHub 项目地址

服务器配置文件

vim /etc/openvpn/server.conf
local 192.168.1.113
port 1194
proto tcp
dev tun

ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server.crt
key /etc/openvpn/certs/server.key
dh /etc/openvpn/certs/dh.pem

ifconfig-pool-persist /etc/openvpn/ipp.txt

server 17.166.221.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 223.5.5.5"
push "dhcp-option DNS 223.6.6.6"
client-to-client
 
keepalive 20 120
comp-lzo
#duplicate-cn

user openvpn
group openvpn

persist-key                              
persist-tun
status openvpn-status.log    
log-append openvpn.log    
verb 1
mute 20

启动服务

systemctl start openvpn@server

服务端其他配置

配置iptables转发

iptables -t nat -A POSTROUTING -s 17.166.221.0/24 -j MASQUERADE   #NAT

开启转发

vim /etc/sysctl.conf 
# 添加内容:net.ipv4.ip_forward = 1
sysctl -p

客户端配置

编辑客户端配置文件

vim client.ovpn # 添加内容如下
client
proto udp
dev tun
remote 36.0.0.0 1194

ca ca.crt
cert dalin.crt
key dalin.key

resolv-retry infinite
nobind
mute-replay-warnings

keepalive 20 120
comp-lzo
user openvpn
group openvpn

persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3

参考博客

https://blog.rj-bai.com/post/136.html

https://blog.rj-bai.com/post/132.html

猜你喜欢

转载自www.cnblogs.com/40kuai/p/9330990.html