debian12搭建OpenVPN服务器
前言
最近需要在debian12
上搭建OpenVPN
服务器,很简单,但是为了后续使用,记录一下踩坑过程。
安装及配置过程
安装easy-rsa
创建证书等
更新系统。
apt update
apt upgrade -y
安装easy-rsa
。
apt install easy-rsa -y
Easy-RSA
用于生成 SSL/TLS
证书,供 OpenVPN
使用。
make-cadir /opt/easy-rsa
cd /opt/easy-rsa
结果如下:
按照自己的需求修改vars
文件。
在 vars
文件修改完成后,执行以下命令来初始化 PKI
:
./easyrsa init-pki
结果如下:
生成 CA
证书:
./easyrsa build-ca
结果如下:
生成 OpenVPN
服务器的证书:
./easyrsa build-server-full server nopass
结果如下:
生成OpenVPN
客户端证书:
./easyrsa build-client-full client1 nopass
结果如下:
生成 Diffie-Hellman
参数,用于加密交换:
./easyrsa gen-dh
结果如下:
安装openvpn
服务器
安装openvpn
服务器
apt install openvpn -y
安装成功之后,复制 OpenVPN
示例配置文件到 /etc/openvpn/
目录。
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn/
修改配置文件/etc/openvpn/server.conf
,这里我们只需要修改以下几项即可,其他选项的具体意义可根据自己修改。
port 1194
proto udp
dev tun
ca /opt/easy-rsa/pki/ca.crt
cert /opt/easy-rsa/pki/issued/server.crt
key /opt/easy-rsa/pki/private/server.key
dh /opt/easy-rsa/pki/dh.pem
server 10.8.0.0 255.255.255.0
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
verb 3
comp-lzo yes
启动并启用 OpenVPN
服务器:
systemctl start openvpn@server
systemctl enable openvpn@server
结果如下:
至此openvpn
的服务段搭建完毕,接下来需要配置防火墙,放行相关服务。
确保允许OpenVPN
使用的端口(例如,1194),并且启用了IP
转发。如果没有安装ufw
,使用如下命令安装。
apt install ufw -y
然后配置防火墙。
ufw allow 1194/tcp
ufw allow OpenSSH
ufw enable
编辑 /etc/sysctl.conf
文件,确保取消注释 net.ipv4.ip_forward=1
这一行,然后执行。
sysctl -p
使用 ufw
,还需要配置NAT
规则。在 /etc/ufw/before.rules
文件中添加以下内容:
*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.8.0.0/8 ! -d 10.8.0.0/8 -j MASQUERADE
COMMIT
如下:
然后重新加载 ufw
配置:
ufw reload
安装openvpn
客户端
windows客户端安装
从openvpn官网下载客户端工具,下载之后默认安装就行。
安装成功之后复制之前用easy-rsa
创建的客户端证书拷贝到默认安装目录的config
目录下。
本例中的文件所在目录为
然后创建virtvpn.ovpn
文件,内容如下:
client
dev tun
proto udp
remote 192.168.5.92 1194
resolv-retry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
verb 3
persist-key
comp-lzo
其中remote
后面的IP
改成自己OpenVPN
服务器的IP
地址,然后直接连接即可。
可以通过ping
或者ssh连接测试VPN
的连通性。
linux客户端安装
安装linux
客户端。
apt install openvpn -y
同样复制下面三个文件到/etc/openvpn
目录下。
创建/etc/openvpn/client.conf
文件,内容如下:
client
dev tun
proto udp
remote 192.168.5.92 1194
resolv-retry infinite
nobind
ca ca.crt
cert client1.crt
key client1.key
verb 3
persist-key
comp-lzo
保存之后可以启动客户端了。
systemctl start openvpn@client
如果要开机自启动,使用
systemctl enable openvpn@client
启动成功之后,通过ping测试连通性。