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

相关推荐
老马啸西风2 小时前
v0.29.1 敏感词性能优化之内部类+迭代器内部类
性能优化·开源·nlp·github·敏感词
杨杨杨大侠3 小时前
第5章:实现Spring Boot集成
java·github·eventbus
杨杨杨大侠3 小时前
第6章:高级特性与性能优化
java·github·eventbus
HelloGitHub4 小时前
这款开源调研系统越来越“懂事”了
前端·开源·github
ruanCat4 小时前
配置 github workflow 工作流文件,实现仓库自动更新 github page 站点
github
绝无仅有5 小时前
面试总结之Nginx 经验常见问题汇总第二篇
后端·面试·github
绝无仅有5 小时前
面试实战总结之Nginx配置经验第一篇
后端·面试·github
掘金安东尼5 小时前
Chrome 17 岁了——我们的浏览器简史
前端·javascript·github
至善迎风16 小时前
版本管理系统与平台(权威资料核对、深入解析、行业选型与国产平台补充)
git·gitee·gitlab·github·svm
fengfuyao98517 小时前
诊断并修复SSH连接Github时遇到的“connection closed“错误
运维·ssh·github