openvpn基本搭建
内容纲要

前言

环境

Hostname Ipaddress 系统版本 用途
vpnserver 120.46.135.141 centos7.6 vpn服务器 公网
vpnclient1 随便 (两个客户端不能通信信就行) centos7.6 客户端
vpnclient2 随便 centos7.6 客户端2

操作:

vpnserver:服务器

yum install rpm-build gcc lsof net-tools -y
yum install -y pam-devel*
yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
yum -y install epel-release
yum install -y pkcs11-helper pkcs11-helper-devel

确认已经安装完成:

rpm -qa lzo lzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel

下载安装包:openvpn-2.2.2.tar.gz

rpmbuild -tb openvpn-2.2.2.tar.gz
ls /root/rpmbuild/RPMS/x86_64
rpm -ivh /root/rpmbuild/RPMS/x86_64/openvpn-2.2.2-1.x86_64.rpm

配置OpenVPN服务(vpnserver)

初始化KPI

cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0

vim vars
export KEY_COUNTRY="CN"
export KEY_PROVINCE="SH"
export KEY_CITY="SHANGHAI"
export KEY_ORG="wu2700222"
export KEY_EMAIL="wu2700222@126.com"

上述参数的值可以自定义设置,对配置无影响

生成服务端的证书

清除并删除keys目录下的所有key

cd /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0
ln -s openssl-1.0.0.cnf openssl.cnf
ll openssl*
source ./vars
./clean-all

生成CA证书,一直回车完成就可以:

./build-ca

生成服务器证书:vpnserver是server端的证书名字

遇到交互输入 y

会在keys目录中保存vpnserver.key 、vpnserver.csr 、vpnserver.crt的文件

./build-key-server vpnserver

创建vpn登陆用户的秘钥与证书

遇到交互输入y

会生成vpnclient.key 、vpnclient.csr 、vpnclient.crt

./build-key vpnclient

如果创建用户证书时报错,可以将keys整个目录删除,然后从source
./vars这一步开始重新操作(慎重,否则之前在keys目录里的用户数据就会都删除)

生成Diffie Hellman参数

./build-dh

执行了./build-dh后,会在 keys 目录下生成 dh 参数文件 dh1024.pem。该文件客户端验证的时候会用到

将/usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys 目录下的所有文件复制到
/etc/openvpn下:

cp -a /usr/share/doc/openvpn-2.2.2/easy-rsa/2.0/keys/* /etc/openvpn/

复制openvpn服务端配置文件 server.conf 到 /etc/openvpn/ 目录下:

cp -a /usr/share/doc/openvpn-2.2.2/sample-config-files/server.conf /etc/openvpn/

cd 到 /etc/openvpn/

查看server.conf文件的配置

改成如下

安全组开放相应端口

;local a.b.c.d
local 0.0.0.0
port 5000
;proto tcp
proto tcp
;dev tap
dev tun
;dev-node MyTap
ca ca.crt
cert vpnserver.crt
key vpnserver.key  
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
;server-bridge
push "route 10.0.0.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
;learn-address ./script
;push "redirect-gateway def1 bypass-dhcp"
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
client-to-client
duplicate-cn
keepalive 10 120
;tls-auth ta.key 0 # This file is secret
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
comp-lzo
;max-clients 100
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
;log-append  openvpn.log
verb 3
;mute 20

开启路由转发


vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

添加iptables规则,确保服务器可以转发数据包到外网:

yum install -y iptables iptables-services

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
service iptables save
systemctl restart iptables
iptables -t nat -L

启动OpenVPN

openvpn server.conf

lsof -i:5000

/etc/openvpn/openvpn.log 日志文件

然后在/etc/openvpn/下编写vpnclient用户的config.ovpn客户端配置文件

vim /tmp/config.ovpn

client
dev tun
proto tcp
remote 120.46.135.141 5000
resolv-retry infinite
nobind
mute-replay-warnings
ca  ca.crt
cert vpnclient.crt
key vpnclient.key
comp-lzo

然后将ca.crt、config.ovpn、vpnclient.crt、vpnclient.csr、vpnclient.key这五个文件放到vpnclient用户所在的虚拟机上

在vpnclient1:虚拟机其他客户机一样

 yum install -y epel-release
 yum install -y openvpn
 openvpn config.ovpn

结果

会分配给客户一个ip
然后用所分配的ip进行操作
有问题下方留言
2022-12-11 02:24:05 星期日

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇