Linux 部署 OpenVPN server

参考文件

OpenVPN 安装文档
OpenVPN 配置文件
OpenVPN 证书配置
OpenVPN 安全加固 | OpenVPN

openvpn --genkey --secret ta.key

这个key需要通过安全通道同时复制到server和client上,可以跟.key.crt同目录。
In the server configuration, add:

tls-auth ta.key 0

In the client configuration, add:

tls-auth ta.key 1

一、安装openvpn

yum install openvpn

二、配置server端配置文件

复制sample配置文件

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

复制ca, cert, key, and dh到openvpn/目录

cp pki/ca.crt /etc/openvpn/
cp pki/issued/DR_RHA.crt /etc/openvpn/
cp pki/private/DR_RHA.key /etc/openvpn/
cp pki/dh.pem /etc/openvpn/

创建 ta.key,在密钥同目录下,执行:

openvpn --genkey --secret ta.key

修改 /etc/openvpn/server/server.conf 配置:

# 设置监听地址
local 0.0.0.0
# 修改端口,进行加固
port 11294
# 设置密钥等文件的路径
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key  # This file should be kept secret
dh /etc/openvpn/dh.pem
# 设置vpn网段
server 172.16.99.0 255.255.255.0
# 设置路由
push "route 172.16.99.0 255.255.255.0"
push "route 10.99.0.0 255.255.0.0"
# 设置开启 ta.key
tls-auth /etc/openvpn/ta.key 0
# 增加PAM认证配置
# plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
plugin openvpn-plugin-auth-pam.so login
# 增加客户端证书配置
verify-client-cert none
OpenVPN 设置PAM认证

1)设置pam认证
使用 openvpn-plugin-auth-pam.so 插件进行PAM认证

[root@VM-201-9-centos server]# ls /usr/lib64/openvpn/plugins/
openvpn-plugin-auth-pam.so  openvpn-plugin-down-root.so

2)取消客户端证书要求
默认,使用 auth-user-pass-verify or a username/password-checking plugin 会开启双因素认证:client-certificate and username/password authentication。
也可以禁用客户端证书,仅强制用户名/密码身份验证。虽然从安全角度来看不鼓励,但是方便啊~

  1. 客户端配置
    添加 auth-user-pass 到客户端配置文件

该模式下,客户端仅需要 ca.crtta.key 文件,用于加密

开启内核包转发

临时:

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

长期:

sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p

配置路由

How To Guide: Set Up & Configure OpenVPN Client/server VPN | OpenVPN
把VPN网段添加到路由,允许转发

iptables -t nat -A POSTROUTING -s 172.16.99.0/24 -o eth0 -j MASQUERADE

三、启动server端openvpn服务

使用 Systemd 启动 OpenVPN 服务

最后面的server由来:server.conf去除.conf作为服务名

systemctl status openvpn-server@server

设置自动启动

systemctl enable openvpn-server@server

四、客户端配置

1)安装客户端软件,自己想办法。
2)下载 /usr/share/doc/openvpn-2.4.11/sample/sample-config-files/client.conf到本地,windows系统重命名为 yourclientname.ovpn
3)如果选择省事、不使用证书,则下载 ca.crt、ta.key到目录;
如果选择使用证书,还要下载客户端证书、密钥。

修改配置文件:

# 配置OpenVPN服务器地址、端口
remote your_openvpn_ip 11294
# 注销证书和密钥
#cert client.crt
#key client.key
# 追加配置 auth with user/pass
auth-user-pass

五、客户端连接

最好选择管理员启动,否则可能会导致本地路由写入失败。

你可能感兴趣的:(Linux 部署 OpenVPN server)