>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
ubuntu18
apt-get install openvpn easy-rsa libssl-dev openssl
Service - OpenVPN | Ubuntu
https://ubuntu.com/server/docs/service-openvpn
ubuntu 22.04搭建OpenVPN服务器_ubuntu vpn_躲猫猫的喵喵的博客-CSDN博客
https://blog.csdn.net/wfjdemmye/article/details/131486127
查看安装软件的详细安装信息
dpkg --list openvpn
dpkg -L easy-rsa
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GD"
export KEY_CITY="ShanTou City"
export KEY_ORG="STU"
export KEY_EMAIL="qfuqin@163.com"
export KEY_OU="University"
export KEY_NAME="server"
export EASYRSA_CRL_DAYS=3650
export EASYRSA_CERT_EXPIRE=3650
tar -xf EasyRSA-3.0.8.tgz #解压证书生成工具
cd EasyRSA-3.0.8/ #进入工具目录
./easyrsa init-pki #创建一个新的 PKI 和 CA
./easyrsa build-ca nopass #创建不需要密码的新CA
./easyrsa gen-req server nopass #创建不需要密码的服务器证书 此处server 为证书名字
./easyrsa sign server server # 此处第二个server 为上一步的证书名字
./easyrsa gen-dh #创建交换密钥
./easyrsa gen-crl server nopass
cp pki/dh.pem /etc/openvpn/
cp pki/ca.crt /etc/openvpn/
cp pki/issued/server.crt /etc/openvpn/
cp pki/private/server.key /etc/openvpn/
cp pki/crl.pem /etc/openvpn/
cd /etc/openvpn/
openvpn --genkey --secret ta.key
ln -s /usr/share/doc/openvpn/examples/sample-config-files /etc/openvpn/sample-config-files
ln -s /usr/share/doc/openvpn/examples/sample-config-files /etc/openvpn/sample-config-files
vi /etc/openvpn/server.conf
local 0.0.0.0
port 1194
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-GCM
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
Openvpn 分配固定IP
修改server.conf 添加一行:
client-config-dir /etc/openvpn/ip
添加客户端固定IP
cat > /etc/openvpn/ip/client
ifconfig-push 10.8.0.6 255.255.255.0
cd /etc/openvpn
/usr/sbin/openvpn --config /etc/openvpn/server.conf
顺便把客户端证书生成
./easyrsa gen-req client nopass #创建不需要密码的客户端证书 此处client 为证书名字
生成的文件
req: /usr/share/easy-rsa/pki/reqs/client.req
key: /usr/share/easy-rsa/pki/private/client.key
./easyrsa sign client client # 此处第二个client 为上一步的证书名字
生成的文件
Certificate created at: /usr/share/easy-rsa/pki/issued/client.crt
客户端文件打包
rm -rf /etc/openvpn/c
mkdir /etc/openvpn/c
cp /usr/share/easy-rsa/pki/private/client.key /etc/openvpn/c
cp /usr/share/easy-rsa/pki/issued/client.crt /etc/openvpn/c
cp /usr/share/easy-rsa/pki/ca.crt /etc/openvpn/c
cp /etc/openvpn/ta.key /etc/openvpn/c
cd /etc/openvpn
tar -zcvf test230822-1.tar.gz ./c
docker cp 3a333541c8a1:/etc/openvpn/test230818-1.tar.gz /etc/openvpn/
client
dev tun
proto tcp
remote 139.224.225.186 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-GCM
verb 3
windows客户端下载
中国科学技术大学超级计算中心OpenVPN系统
https://scc.ustc.edu.cn/vpn/readme.html
打包完整的服务端!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
cd /etc/openvpn
tar -zcvf openvpn-server-bak.tar.gz /etc/openvpn
tar -xzvf openvpn-server-bak.tar.gz -C /
okokok!!!!!!!!!!!!!!!!
systemctl enable openvpn@server
systemctl disable openvpn@server
systemctl start openvpn@server
systemclt status openvpn@server
okokok!!!!!!!!!!!!!!!!!!
/etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
okokok!!!!!!!!!!!!!!!!!!!
DROP改成ACCEPT vim /etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"
ufw disable
ufw status
ufw enable
ufw allow 1194/tcp
echo 1 > /proc/sys/net/ipv4/ip_forward
dns设置
vi /etc/resolv.conf
防火墙
iptables-save > /a/rules.v4
iptables-restore < /a/rules.v4
安装
apt-get install iptables-persistent
iptables-legacy-save > /etc/iptables/rules.v4
iptables-legacy-restore < /etc/iptables/rules.v4
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens33 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
okok!!!!!!!!!!!!!!!!
iptables -t nat -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
如果没设置默认网关可以用下面的
#iptables -t nat -A POSTROUTING -s 0/0 -j MASQUERADE
okok!!!!!!!!!!
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 172.19.99.26 -p tcp --dport 99 -j DNAT --to 10.8.0.6:80
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 80 -j SNAT --to 172.19.99.26:99
test
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d 139.224.225.186 -p tcp --dport 99 -j DNAT --to 10.8.0.6:80
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 80 -j SNAT --to 139.224.225.186
test!!!!!!!!!!!!!!
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2000 -j DNAT --to 10.8.0.6:8080
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 8080 -j SNAT --to 192.168.0.25:2000
神泣端口
2020-->30800
2021-->30810
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2020 -j DNAT --to 10.8.0.2:8000
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8000 -j SNAT --to 192.168.0.25:2020
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2022 -j DNAT --to 10.8.0.2:8002
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8002 -j SNAT --to 192.168.0.25:2022
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2020 -j DNAT --to 10.8.0.2:8000
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8000 -j SNAT --to 192.168.0.25:2020
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2021 -j DNAT --to 10.8.0.2:9000
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 9000 -j SNAT --to 192.168.0.25:2021
iptables -t nat -A PREROUTING -d 192.168.0.25 -p tcp --dport 2022 -j DNAT --to 10.8.0.2:8800
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8800 -j SNAT --to 192.168.0.25:2022
121.37.187.195
iptables -t nat -A PREROUTING -d 121.37.187.195 -p tcp --dport 2020 -j DNAT --to 10.8.0.2:8000
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8000 -j SNAT --to 121.37.187.195:2020
iptables -t nat -A PREROUTING -d 121.37.187.195 -p tcp --dport 2021 -j DNAT --to 10.8.0.2:9000
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 9000 -j SNAT --to 121.37.187.195:2021
iptables -t nat -A PREROUTING -d 121.37.187.195 -p tcp --dport 2022 -j DNAT --to 10.8.0.2:8800
iptables -t nat -A POSTROUTING -d 10.8.0.2 -p tcp --dport 8800 -j SNAT --to 121.37.187.195:2022
用阿里云或腾讯云香港轻量应用服务器做传奇微端的方法-架设技术分享 https://www.108pc.com/thread-4353-1-1.html
wget --no-check-certificate -qO InstallNET.sh 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh' && bash InstallNET.sh -dd 'http://down.80host.com/iso/dd/WinSrv2008x64-Chinese_datacenter_sp1_vl_kvm_xen.vhd.gz'
dock!!!!!
iptables -t nat -A PREROUTING -d 172.19.99.26 -p tcp --dport 2020 -j DNAT --to 10.8.0.6:30800
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 30800 -j SNAT --to 172.19.99.26:2020
iptables -t nat -A PREROUTING -d 172.19.99.26 -p tcp --dport 2021 -j DNAT --to 10.8.0.6:30810
iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 30810 -j SNAT --to 172.19.99.26:2021
通过docker搭建openvpn - 吴昊博客
https://blog.whsir.com/post-2809.html
iptables -t nat -F
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
okok!!!!!!!!!!
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens33 -j MASQUERADE
iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 192.168.8.134
test
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 139.224.225.186
您的公共接口是在此命令的输出中找到的跟在单词"dev"之后的字符串。例如,此结果显示名为 的接口eth0,它在下面突出显示:
ip route list default
Output
default via 159.65.160.1 dev eth0 proto static
/etc/ufw/before.rules
*nat
:POSTROUTING ACCEPT [0:0]
Allow traffic from OpenVPN client to eth0(changeto the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -jMASQUERADE #这里为配置文件设置的虚拟网段
COMMIT
iptables -A INPUT -j REJECT iptables -A FORWARD -j REJECT
有的VPS比较奇怪,我们需要再加点料iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source 114.138.164.131 --to-source后面跟你VPS的IP
okokok!!!!!!!!!!!!!!!
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT
okokok!!!!!!!!!!!!!!
#iptables-save > /etc/network/iptables.up.rules
iptables-save > /etc/network/interfaces
iptables -t nat -L #查看nat规则
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j MASQUERADE #针对10.0.1.0(虚拟的vpn网段)这个网段进行地址转换
iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o ens33 -j MASQUERADE
MASQUERADE,地址伪装,在iptables中有着和SNAT相近的效果,但也有一些区别,但使用SNAT的时候,出口ip的地址范围可以是一个,也可以是多个,例如:
如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3的ip然后发出去
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3
如下命令表示把所有10.8.0.0网段的数据包SNAT成192.168.5.3/192.168.5.4/192.168.5.5等几个ip然后发出去
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o eth0 -j SNAT --to-source 192.168.5.3-192.168.5.5
test!!!!!!!!!!!!!!
iptables -t nat -A POSTROUTING -s 10.8.0.0/255.255.255.0 -o ens33 -j MASQUERADE
开启转发:echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0(外网网卡) -j SNAT --to(外网地址)
备用:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE
备用:iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
映射内部web: iptables -t nat -A PREROUTING -d (外网地址) -p tcp --dport 80 -j DNAT --to 10.1.120.251
自动启动
okokok!!!!!!!!!!!!!!!!!!!!!!!!!
1.检查系统目录/lib/systemd/system/rc-local.service
#######################################
/etc/rc.local
#!/bin/bash
添加 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
chmod 777 /etc/rc.local
#######################################
2.创建/etc/rc.local脚本文件,并写入想要运行的脚本程序
(可以先写个示例验证一下)
#! /bin/bash
这里在/usr/local里面创建文件夹是想看是否有执行的权限
事实证明是有的
mkdir /usr/local/temp
echo "test auto bootstrap" > /usr/local/temp/1.log
3.给rc.local执行的权限
sudo chmod +x /etc/rc.local
4.启用服务
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
cat /usr/share/doc/easy-rsa/README.Debian
./easyrsa init-pki
./easyrsa build-ca nopass
./easyrsa --subject-alt-name="DNS:www.example.net,DNS:secure.example.net" build-server-full alttest nopass
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ls pki/issued/
vpnarigens.crt
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ls pki/private/
ca.key vpnarigens.key
客户端
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ./easyrsa build-client-full airgens nopass
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ls pki/issued/
airgens.crt vpnarigens.crt
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ls pki/private/
airgens.key ca.key vpnarigens.key
root@ccyy-VMware-Virtual-Platform:/usr/share/easy-rsa# ./easyrsa gen-dh
DH parameters of size 2048 created at /usr/share/easy-rsa/pki/dh.pem
cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
/usr/sbin/openvpn --daemon --config /etc/openvpn/server.conf
/usr/sbin/openvpn --config /etc/openvpn/server.conf
生成ta.key
openvpn --genkey --secret ta.key
systemctl status openvpn@server
--ifconfig-pool-persist
openssl dhparam -out dh1024.pem 1024
sudo nano /etc/openvpn/server.conf
port 1194 # OpenVPN使用的端口号
proto udp # 使用UDP协议
dev tun # 使用TUN设备
ca /etc/openvpn/ca.crt # CA证书路径
cert /etc/openvpn/server.crt # 服务器证书路径
key /etc/openvpn/server.key # 服务器私钥路径
dh /etc/openvpn/dh.pem # Diffie-Hellman参数路径
server 10.8.0.0 255.255.255.0 # 分配给客户端的IP地址池
ifconfig-pool-persist ipp.txt # IP地址分配持久化文件路径
push "redirect-gateway def1" # 将所有客户端流量通过VPN转发
push "dhcp-option DNS 8.8.8.8" # 指定DNS服务器
client-to-client # 允许客户端之间通信
keepalive 10 120 # 心跳设置
tls-auth ta.key 0 # 使用TLS-Auth进行身份验证
user nobody # OpenVPN运行用户
group nogroup # OpenVPN运行组
persist-key # 保留密钥文件打开
persist-tun # 保留TUN/TAP设备打开
log-append /var/log/openvpn.log # 日志文件路径
status /var/log/openvpn-status.log # 状态文件路径
verb 2 # 日志详细级别
sudo mkdir /etc/openvpn/keys
cd /etc/openvpn/keys
sudo openssl dhparam -out dh.pem 2048
sudo openssl genrsa -out ca.key 2048
sudo openssl req -new -x509 -key ca.key -out ca.crt -days 365
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr
sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
sudo openvpn --genkey --secret ta.key
/etc/sysctl.conf
net.ipv4.ip_forward=1
sudo sysctl -p
sudo systemctl start openvpn@server
sudo ufw allow 1194/udp
启动问题
root@ccyy-VMware-Virtual-Platform:/etc/openvpn# /usr/sbin/openvpn --config /etc/openvpn/vpn1.conf
2023-08-13 14:19:29 WARNING: --topology net30 support for server configs with IPv4 pools will be removed in a future release. Please migrate to --topology subnet as soon as possible.
打开
topology subnet
启动问题
DEPRECATED OPTION: --cipher set to 'AES-256-CBC' but missing in --data-ciphers (AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305). OpenVPN ignores --cipher for cipher negotiations.
解决
cipher AES-128-GCM
启动问题
WARNING: Compression for receiving enabled. Compression has been used in the past to break encryption. Sent packets are not compressed unless "allow-compression yes" is also set.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
server.conf
duplicate-cn #允许一套配置同时多人使用
编辑 server.conf
服务端口
port 1194
使用的传输协议
proto tcp
路由模式,桥接模式用dev tap
dev tun
证书路径
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
默认虚拟局域网网段,不要和实际的局域网冲突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
192.168.1.0 是我的 OpenVPN 服务器所在在局域网的网段
如果你的局域网不是这个,那这里需要修改成你的网段
push "route 192.168.1.0 255.255.255.0"
如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
这里如果设置了 tls-auth 则客户端也要设置,而且要跟服务器端对应,服务端为0,客户端则为 1
我这里注释掉了,因为我客户端没有使用 tls-auth
;tls-auth keys/ta.key 0 # This file is secret
;key-direction 0
clients we want to allow.
max-clients 100
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log /var/log/openvpn/openvpn.log
log-append /var/log/openvpn/openvpn.log
verb 3
如果上面配置了传输方式为 TCP, 则此处应该注释掉,否则会产生冲突
;explicit-exit-notify 1
这里配置使用用户名和密码登录的支持,可以取代使用秘钥和证书登录
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
这里非常重要,如果你启用了该选项,你就只需要通过用户名和密码登录了
但是如果你注释了该选项,那你必须使用 用户名 + 密码 + 证书 才能登录成功,缺一不可。
;verify-client-cert none
username-as-common-name
script-security 3
第三步,启动 OpenVPN 服务
/etc/init.d/openvpn start
设置开机启动
systemctl enable openvpn@server
第一步,开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sed -i '/net.ipv4.ip_forward/s/#//' /etc/sysctl.conf
sysctl -p
第二步,配置 iptables
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
然后我们保存 iptables 设置,并在开机自动加载配置,初始化。这里可以通过 iptables-persistent 来快速实现
sudo apt-get install iptables-persistent
保存规则
sudo service netfilter-persistent save
下次开机启动的时候就可以看到 iptables 规则已经自动加载
$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:openvpn /* openvpn */
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
关闭 ufw 防火墙
ufw disable
第三步,启动 OpenVPN 服务
/etc/init.d/openvpn start
设置开机启动
systemctl enable openvpn@server
五、创建客户端配置文件 client.ovpn (用于客户端软件使用)
首先复制一份 client.conf 模板命名为 client.ovpn
mkdir ~/openvpn-client
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/openvpn-client/client.ovpn
然后修改 client.ovpn, vim /etc/openvpn/client.ovpn
client
这里设置跟服务端一样
dev tun
proto tcp
OpenVPN 服务端 IP 和端口
remote 14.153.76.90 1194
resolv-retry infinite
nobind
persist-key
persist-tun
这里设置证书和秘钥
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
如果服务端使用 tls-auth, 则这里也要启用
;tls-auth ta.key 1
comp-lzo
verb 3
用来存放用户名和密码的文件路径,这样在连接的时候就不需要手动输入用户名密码了
auth-user-pass pass.txt
#######################################
configure: error: ssl is required but missing
以下是在Ubuntu 18.04上搭建OpenVPN服务的步骤:
- 安装OpenVPN和easy-rsa
sudo apt-get update
sudo apt-get install openvpn easy-rsa
- 配置易于RSA
将OpenVPN提供的示例文件夹复制到一个新的位置:
mkdir ~/easy-rsa
cp -r /usr/share/easy-rsa/* ~/easy-rsa/
cd ~/easy-rsa
编辑vars文件来设置配置选项:
nano vars
找到以下行并将其更新为以下内容:
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
保存并关闭文件。
然后运行以下命令来初始化PKI:
source ./vars
./clean-all
- 生成CA证书和服务器证书
在此步骤中,您将创建CA并生成服务器证书和密钥:
./build-ca
./build-key-server server
按照提示输入值。
- 为客户端生成证书
对于每个客户端,请运行以下命令来生成证书和密钥:
./build-key client1
按照提示输入值。
- 配置OpenVPN服务
在此步骤中,您将创建OpenVPN服务器配置文件:
sudo nano /etc/openvpn/server.conf
添加以下行:
port 1194
proto udp
dev tun
ca ~/easy-rsa/keys/ca.crt
cert ~/easy-rsa/keys/server.crt
key ~/easy-rsa/keys/server.key
dh ~/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist /var/log/openvpn/ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
verb 3
这将为OpenVPN创建一个UDP服务器监听器,使用10.8.0.0 / 24子网分配客户端IP地址。保存并关闭文件。
- 配置IP转发
需要开启IP转发运行以下命令
sudo sysctl -w net.ipv4.ip_forward=1
配置iptables:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- 启动OpenVPN
sudo systemctl start openvpn@server
- 为客户端提供证书
您需要向每个客户端提供以下文件:
ca.crt
client1.crt
client1.key
这些文件位于~/easy-rsa/keys文件夹中。您可以将它们复制到其他位置以便于向客户端提供它们。
- 使用OpenVPN连接
在Windows上,您可以使用OpenVPN Connect客户端连接到OpenVPN服务器。 下载和安装OpenVPN Connect客户端,然后将以下文件复制到C:\ Program Files \ OpenVPN \ config:
ca.crt
client1.crt
client1.key
然后运行OpenVPN Connect客户端以连接到服务器。
2、 在NDA Server 上打开内核转发
[root@centos7 ~]# echo 1 >/proc/sys/net/ipv4/ip_forward
3、 在内网的机器上添加内网的网关,外网添加外网对应的网关
route add default gw 192.168.146.130 #内网
route add default gw 172.18.250.98 #外网
4、 在NDA Server上做SNAT源地址转换规则
iptables -t nat -A POSTROUTING -s 192.168.146.0/24 -j SNAT
--to-source172.18.250.98