ubuntu22安装配置openvpn

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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服务的步骤:

  1. 安装OpenVPN和easy-rsa

sudo apt-get update

sudo apt-get install openvpn easy-rsa

  1. 配置易于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

  1. 生成CA证书和服务器证书

在此步骤中,您将创建CA并生成服务器证书和密钥:

./build-ca

./build-key-server server

按照提示输入值。

  1. 为客户端生成证书

对于每个客户端,请运行以下命令来生成证书和密钥:

./build-key client1

按照提示输入值。

  1. 配置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地址。保存并关闭文件。

  1. 配置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

  1. 启动OpenVPN

sudo systemctl start openvpn@server

  1. 为客户端提供证书

您需要向每个客户端提供以下文件:

ca.crt

client1.crt

client1.key

这些文件位于~/easy-rsa/keys文件夹中。您可以将它们复制到其他位置以便于向客户端提供它们。

  1. 使用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

相关推荐
王解6 小时前
Jest项目实战(4):将工具库顺利迁移到GitHub的完整指南
单元测试·github
油泼辣子多加6 小时前
2024年11月4日Github流行趋势
github
梓羽玩Python8 小时前
推荐一款用了5年的全能下载神器:Motrix!全平台支持,不限速下载网盘文件就靠它!
程序员·开源·github
小牛itbull14 小时前
ReactPress:重塑内容管理的未来
react.js·github·reactpress
鱼满满记1 天前
1.6K+ Star!GenAIScript:一个可自动化的GenAI脚本环境
人工智能·ai·github
梦魇梦狸º1 天前
腾讯轻量云服务器docker拉取不到镜像的问题:拉取超时
docker·容器·github
Huazie1 天前
一篇搞定 Hexo Diversity 主题接入!支持多主题自由切换!
javascript·github·hexo
草明2 天前
Nginx 做反向代理,一个服务优先被使用,当无法提供服务时才使用其他的备用服务
运维·nginx·github
马里嗷2 天前
Puppeteer - 掌控浏览器自动化的开源利器
后端·github