openvnn搭建

#关闭防火墙及selinux
#添加epel源
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
#安装证书生成工具
yum -y install easy-rsa
#创建证书环境目录
mkdir -p /opt/easy-rsa
#复制对应文件到证书目录
cp -a /usr/share/easy-rsa/3.0.8/* /opt/easy-rsa/
cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example /opt/easy-rsa/vars
#编辑vars证书配置
echo '''
set_var EASYRSA_DN      "cn_only"
set_var EASYRSA_REQ_COUNTRY     "CN"
set_var EASYRSA_REQ_PROVINCE    "BEIJING"
set_var EASYRSA_REQ_CITY        "BEIJING"
set_var EASYRSA_REQ_ORG         "httt"
set_var EASYRSA_REQ_EMAIL       "IT@qq.com"
set_var EASYRSA_NS_SUPPORT      "yes"'''>>/opt/easy-rsa/vars 
#切换目录至证书环境目录进行初始化
cd /opt/easy-rsa
./easyrsa init-pki
#创建根证书
./easyrsa build-ca
#创建server端证书和key(nopass表示不需要加密)
./easyrsa gen-req server nopass
#给server端证书签名
./easyrsa sign server server
#创建Diffie-Hellman文件,密钥交换时的Diffie-Hellman算法
./easyrsa gen-dh
#创建client端证书和key(nopass表示不需要加密)
./easyrsa gen-req client nopass
#给client端证书签名
./easyrsa sign client client
#安装openvpn
yum install -y openvpn
#创建TLS认证密钥
openvpn --genkey --secret /etc/openvpn/pki/ta.key
#创建新的配置文件/etc/openvpn/server.conf
vi /etc/openvpn/server.conf
#拷贝证书到配置文件指定的目录
cp -a /opt/easy-rsa/pki/ca.crt /etc/openvpn/pki/
cp -a /opt/easy-rsa/pki/issued/server.crt /etc/openvpn/pki/
cp -a /opt/easy-rsa/pki/private/server.key /etc/openvpn/pki/
cp -a /opt/easy-rsa/pki/dh.pem /etc/openvpn/pki/
#启动服务器并加入开机自启
systemctl start openvpn@server
systemctl enable openvpn@server
#开启路由转发
echo 'iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE'>/etc/rc.local
echo 'iptables -vnL -t nat'>/etc/rc.local

创建根证书时需要输入密码密码随意,此处定义为test1

给server端证书签名时需要在第一处输入yes第二处输入根证书密码

给client端证书签名时需要在第一处输入yes第二处输入根证书密码

openvpn配置文件

#监听本机端口
port 1194
#指定采用的传输协议,可选tcp或udp
proto tcp
#指定创建的通信隧道类型,可选tun或tap
dev tun
#指定CA证书的文件路径
ca pki/ca.crt
#指定服务器端的证书文件路径
cert pki/server.crt
#指定服务器端的私钥文件路径
key pki/server.key
#指定迪菲赫尔曼参数的文件路径,也就是交换证书
dh pki/dh.pem
#给客户端分配地址池,注意:不能和VPN服务器内网网段有相同
server 10.8.0.0 255.255.255.0
#允许客户端访问内网网段
push "route 172.16.0.0 255.255.255.0"
push "route 192.168.100.0 255.255.255.0"
push "route 192.168.0.0 255.255.255.0"
#服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址"第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP"
ifconfig-pool-persist ipp.txt
#存活时间,10秒ping一次,120如未收到响应则视为断线
keepalive 10 120
#最多允许100个客户端连接
max-clients 100
#日志记录位置
status openvpn-status.log
#openvpn版本
verb 3
#允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接
client-to-client
#openvpn日志记录位置
log /var/log/openvpn.log
#通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys
persist-key
#检测超时后,重新启动VPN,一直保持tun是linkup的.否则网络会先linkdown然后再linkup
persist-tun
#开启TLS-auth,使用ta.key防御攻击.服务器端的第二个参数值为0,客户端的为1
tls-auth /etc/openvpn/pki/ta.key 0

开启用户认证

posted @   摸鱼划水  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示