OpenVPN部署

一、服务端安装

1.安装open

安装epel仓库

yum install epel-release

安装easy-RSA

yum install easy-rsa
yum list installed easy-rsa

安装open服务端

yum install open
yum list installed open

如果在线无法安装,可以通过离线文件进行安装

yum localinstall open-2.4.12-1.el7.x86_64.rpm

2.配置EASY-RSA 3.0

在/etc/open文件夹下面创建easy-rsa文件夹,并把相关文件复制进去

mkdir /etc/open/easy-rsa
cp -r /usr/share/easy-rsa/3/* /etc/open/easy-rsa/
cp -r /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/open/easy-rsa/vars

3.创建OpenVPN相关的密钥

需要创建CA密钥、server端密钥、client端密钥,DH和CRL密钥、TLS认证钥匙。(因为用户名密码登录,所以client端密钥可以不用)

cd /etc/open/easy-rsa/

(1)CA证书(/etc/open/easy-rsa/pki/ca.crt)

创建服务端和客户端密钥之前,需要初始化PKI目录

./easyrsa init-pki

OpenVPN部署_第1张图片
创建ca.crt文件

./easyrsa build-ca nopass

OpenVPN部署_第2张图片

(2)server端密钥(/etc/open/easy-rsa/pki/issued/server1.crt)

创建服务器密钥名称为server1.key,添加nopass 选项,是指不需要为密钥添加密码。

./easyrsa gen-req server1 nopass

OpenVPN部署_第3张图片
用CA证书签署server1密钥

./easyrsa sign-req server server1

OpenVPN部署_第4张图片

(3)client端密钥(/etc/open/easy-rsa/pki/issued/client1.crt)

创建客户端密钥名称为client1.key

./easyrsa gen-req client1 nopass

OpenVPN部署_第5张图片
用CA证书签署client1密钥

./easyrsa sign-req client client1

OpenVPN部署_第6张图片

(4)DH密钥

根据之前创建的vars配置文件生成2048位的密钥

./easyrsa gen-dh

OpenVPN部署_第7张图片

(5)TLS认证密钥

创建TLS认证密钥

open --genkey --secret /etc/open/easy-rsa/ta.key

(6)CRL密钥(/etc/open/easy-rsa/pki/crl.pem)

CRL(证书撤销列表)密钥用于撤销客户端密钥。如果服务器上有多个客户端证书,希望删除某个密钥,那么只需使用./easyrsa revoke NAME这个命令撤销即可。
生成CRL密钥

./easyrsa gen-crl

OpenVPN部署_第8张图片

4.复制证书文件

复制ca证书、ta.key和server端证书及密钥到/etc/open/server文件夹里

cp -p pki/ca.crt /etc/open/server
cp -p pki/issued/server1.crt /etc/open/server
cp -p pki/private/server1.key /etc/open/server
cp -p ta.key /etc/open/server

复制ca证书、ta.key和client端证书及密钥到/etc/open/client文件夹里

cp -p pki/ca.crt /etc/open/client/
cp -p pki/issued/client1.crt /etc/open/client/
cp -p pki/private/client1.key /etc/open/client/
cp -p ta.key /etc/open/client/

复制dh.pem、crl.pem到/etc/open/client文件夹里

cp pki/dh.pem /etc/open/server
cp pki/crl.pem /etc/open/server

5.修改OpenVPN配置文件

复制模板到主配置文件夹里面

cp -p /usr/share/doc/open-2.4.12/sample/sample-config-files/server.conf /etc/open/server

修改配置文件

cd /etc/open/server/
cp server.conf server.conf.bak
cat server.conf.bak | grep '^[^#|^;]' > server.conf

OpenVPN部署_第9张图片

6.配置用户名密码登录

创建用户管理目录

mkdir -p /etc/open/server/user

在主配置文件中增加如下内容:

vim /etc/open/server/server.conf
auth-user-pass-verify /etc/open/checkpsw.sh via-env client-cert-not-required username-as-common-name script-security 3

OpenVPN部署_第10张图片
编辑checkpsw.sh文件

vim /etc/open/checkpsw.sh
chmod 700 /etc/open/server/user/checkpsw.sh
chown open:open /etc/open/server/user/checkpsw.sh

OpenVPN部署_第11张图片
配置账号密码

vim /etc/open/psw-file

设置psw-file权限

chmod 600 /etc/open/server/user/psw-file
chown open:open /etc/open/server/user/psw-file

7.配置网络策略

将目的网段推送到客户端侧

client-to-client
push "route 192.168.255.1 255.255.255.255"
push "route 192.168.255.2 255.255.255.255"

8.配置日志存放目录

创建日志存放目录

mkdir -p /var/log/open/
chown -R open:open /var/log/open

9.开启转发

修改内核模块

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
sysctl -p

修改防火墙

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  port protocol="udp" port="xxxxx" accept"
firewall-cmd --reload

10.启动服务并开机启动

启动服务

systemctl enable --now open-server@server

检查一下服务是否启动

systemctl status [email protected]
netstat -tunalp | grep xxxxx

11.防火墙策略

将open的隧道接口加入到firewalld中的trusted域,确保隧道内的数据包可以不受限制

firewall-cmd --permanent --zone=trusted --add-interface=tun0

二、客户端安装

双击打开client.o文件,或着拖放到客户端界面中,点击OK确定导入
OpenVPN部署_第12张图片
勾选Save password,填写用户名和密码。并点击CONNECT连接
OpenVPN部署_第13张图片
勾选Don’t show again for this profile,并点击CONTINUE继续
OpenVPN部署_第14张图片
出现这个界面就表示连接成功。
OpenVPN部署_第15张图片

三、新增用户

在/etc/open/server/user/psw-file中新增用户即可,格式为:
用户名[空格]密码

密码使用pwgen生成随机密码

pwgen -ncy1 10

你可能感兴趣的:(linux)