搭建OpenVPN服务,并实现客户端登陆时要求输入系统/etc/passwd里的账户名密码进行验证:
yum install -y epel-release
yum install -y openvpn easy-rsa ##安装OpenVpn及相关依赖
cp -r /usr/share/easy-rsa/ /etc/openvpn/
cd /etc/openvpn/easy-rsa/3.0.8/
./easyrsa init-pki ##初始化 PKI 目录结构,所有生成的文件将存储在该目录中。
./easyrsa build-ca ##生成自签名的根 CA 证书,用于对 PKI 中的其他证书进行签名。
./easyrsa gen-req server nopass ##为服务器证书生成证书签名请求CSR,用于保护服务器的连接。nopass 选项创建一个没有密码的私钥,以方便使用。
./easyrsa sign-req server server ##使用 CA 证书签名服务器 CSR,并创建服务器证书。
./easyrsa gen-req client nopass ##为客户端证书生成证书签名请求CSR,用于保护客户端的连接。nopass 选项创建一个没有密码的私钥,以方便使用。
./easyrsa sign-req client client ##使用CA 证书签名客户端 CSR,并创建客户端证书。
注:也可是使用如下方式替代上述4条命令,作用效果相同。
./easyrsa build-server-full server nopass
./easyrsa build-client-full client nopass
openssl dhparam -out /etc/openvpn/dh.pem 2048 ##使用 OpenSSL 工具生成 Diffie-Hellman 参数,用于OpenVpn 中用于生成共享密钥,以加密和解密数据流。
vi /etc/openvpn/server.conf ##编辑创建server.conf
port 1194
proto udp4
dev tun
ca /etc/openvpn/easy-rsa/3.0.8/pki/ca.crt
cert /etc/openvpn/easy-rsa/3.0.8/pki/issued/server.crt
key /etc/openvpn/easy-rsa/3.0.8/pki/private/server.key
dh /etc/openvpn/dh.pem
server 10.8.0.0 255.255.255.0 ##指定OpenVpn服务端给客户端分配的IP地址池
ifconfig-pool-persist ipp.txt
push "route 192.168.10.0 255.255.255.0" ##推送内网路由给客户端
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 114.114.114.114"
client-to-client
keepalive 10 120
persist-key
persist-tun
verb 3
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so login
username-as-common-name
systemctl start openvpn@server.service ##启动OpenVpn服务
systemctl enable openvpn@server.service ##开机自启OpenVpn服务
systemctl status openvpn@server.service ##查看OpenVpn服务状态
journalctl -xeu openvpn@server ##如遇到OpenVpn服务无法启动,可查看具体原因
firewall-cmd --add-service=openvpn --permanent ##服务端防火墙放行openvpn服务
firewall-cmd --reload ##重启防火墙服务后生效
useradd zhangsan ##在OpenVpn服务端创建用户,用户客户端登陆使用
passwd zhangshan ##在OpenVpn服务端为用户zhangsan创建密码,用户客户端登陆使用
ll /usr/lib64/openvpn/plugins/ ##server.conf配置文件里调用openvpn-plugin-auth-pam.so模块,从而实现客户端能够使用服务端本地的账户名和密码进行验证
总用量 28
-rw-------. 1 root root 0 4月 1 23:04 ipp.txt
-rwxr-xr-x. 1 root root 15104 3月 18 2022 openvpn-plugin-auth-pam.so
-rwxr-xr-x. 1 root root 10944 3月 18 2022 openvpn-plugin-down-root.so
vi /etc/openvpn/client.ovpn ##客户端配置
client
dev tun
proto udp4
remote x.x.x.x 1194 ##x.x.x.x为服务端的公网ip地址
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
auth-user-pass
auth-nocache
从服务端下载如下4个文件到客户端,客户端安装openvpn软件后,打开client.ovpn即可。