Zumpyx's Blog

OpenVPN 笔记

vpnnetwork

因为某些原因,导致渗透环境与靶机不在同一网段,因此为了方便某些操作,例如反弹 Shell,利用 OpenVPN 桥接建立隧道。

密钥

首先下载工具:https://github.com/OpenVPN/easy-rsa.git

git clone https://github.com/OpenVPN/easy-rsa.git
# 服务端与客户端分别生成
cp -r easy-rsa/easyrsa3 easyrsa3-client
cp -r easy-rsa/easyrsa3 easyrsa3-server

生成 reqs

# 服务端
cd easyrsa3-server
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req server nopass
cd ..
# 客户端
cd easyrsa3-client
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa gen-req client nopass
cd ..

交换reqs

mv easyrsa3-client/pki/reqs/client.req client.req
mv easyrsa3-server/pki/reqs/server.req easyrsa3-client/pki/reqs/server.req
mv client.req easyrsa3-server/pki/reqs/client.req

导入reqs,生成Diffie-Hellman对

# 服务端
cd easyrsa3-server
./easyrsa import-req pki/reqs/client.req client
./easyrsa sign server server
./easyrsa gen-dh
cd ..
# 客户端
cd easyrsa3-client
./easyrsa import-req pki/reqs/server.req server
./easyrsa sign client client
./easyrsa gen-dh
cd ..

提取出密钥

mkdir keys-server keys-client
# 服务端
cp easyrsa3-server/pki/dh.pem keys-server/openvpn-keys
cp easyrsa3-server/pki/private/*.key keys-server/openvpn-keys
cp easyrsa3-server/pki/issued/*.crt keys-server/openvpn-keys
# 客户端
cp easyrsa3-client/pki/dh.pem keys-client/openvpn-keys
cp easyrsa3-client/pki/private/*.key keys-client/openvpn-keys
cp easyrsa3-client/pki/issued/*.crt keys-client/openvpn-keys
# 交换 ca.crt
cp easyrsa3-client/pki/ca.crt keys-server
cp easyrsa3-server/pki/ca.crt keys-client

配置文件

  • Server
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz keys-server/
cd keys-server
gzip -d server.conf.gz
vim server.conf
  • Client
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/openvpn-keys
cd ~/openvpn-keys
vi client.conf