Openvpn 搭建
发表于:2022-09-30 |
一键安装:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
cd easyrsa && ./easyrsa init-pki //清理pki 证书目录并配置一个密码

./easyrsa gen-req server nopass //创建服务端证书

./easyrsa sign server server //签约服务端证书

./easyrsa gen-dh 创建 Diffie-Hellman

openvpn --genkey --secret keys/ta.key 可选,主要用于防御DoS、UDP淹没等恶意攻击

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf //开启转发

iptables -t nat -A POSTROUTING -s 10.40.8.0/24 -j MASQUERADE// 创建nat规则

其它功能集成部分在脚本中 包括吊销和创建客户端证书

local 172.16.227.43

#定义openvpn监听的IP地址,如果是服务器单网卡的也可以不注明,但是服务器是多网卡的建议注明。

port 6666

#定义openvpn监听的的端口,默认为1194端口。

proto tcp

#定义openvpn使用的协议,默认使用UDP。如果是生产环境的话,建议使用TCP协议。

dev tun

#定义openvpn运行时使用哪一种模式,openvpn有两种运行模式一种是tap模式,一种是tun模式。

#tap模式也就是桥接模式,通过软件在系统中模拟出一个tap设备,该设备是一个二层设备,同时支持链路层协议。

ca /etc/openvpn/certs/ca.crt

#定义openvpn使用的CA证书文件,该文件通过build-ca命令生成,CA证书主要用于验证客户证书的合法性。

cert /etc/openvpn/certs/server.crt

#定义openvpn服务器端使用的证书文件。

key /etc/openvpn/certs/server.key

#定义openvpn服务器端使用的秘钥文件,该文件必须严格控制其安全性。

dh /etc/openvpn/certs/dh.pem

#定义Diffie hellman文件。

ifconfig-pool-persist /etc/openvpn/ipp.txt

#定义客户端和虚拟ip地址之间的关系。特别是在openvpn重启时,再次连接的客户端将依然被分配和断开之前的IP地址。

server 10.8.0.2 255.255.255.0

#定义openvpn在使用tun路由模式时,分配给client端分配的IP地址段。

push "route 192.168.10.0 255.255.255.0"

#向客户端推送的路由信息,假如客户端的IP地址为10.8.0.2,要访问192.168.10.0网段的话,使用这条命令就可以了。

client-config-dir /etc/openvpn/ccd

#这条命令可以指定客户端IP地址。

#使用方法是在/etc/openvpn/创建ccd目录,然后创建在ccd目录下创建以客户端命名的文件。比如要设置客户端 wang为10.8.0.100这个IP地址,只要在 /etc/openvpn/ccd/wang文件中包含如下行即可:

#ifconfig-push 10.8.0.100 10.8.0.101 前面的IP是给客户端的,后面的IP是服务端保留的,分配的地址都是30位掩码

push "redirect-gateway def1 bypass-dhcp"

#此条开启后VPN将代理所有流量,建议不开,此条不开 以下两条也不用开

push "dhcp-option DNS 223.5.5.5" #向客户端推送DNS信息

push "dhcp-option DNS 223.6.6.6"

client-to-client #使客户端之间能相互访问,默认设置下客户端间是不能相互访问的。

keepalive 20 120 #定义活动连接保时期限

comp-lzo #启用允许数据压缩,客户端配置文件也需要有这项。

#duplicate-cn #定义openvpn一个证书在同一时刻是否允许多个客户端接入,默认没有启用。

user openvpn #运行用户

group openvpn #运行组

persist-key #通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys。

persist-tun #通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的。否则网络连接,会先linkdown然后再linkup。

status openvpn-status.log #把openvpn的一些状态信息写到文件中,比如客户端获得的IP地址。

log-append openvpn.log #记录日志,每次重新启动openvpn后追加原有的log信息。

verb 1 #设置日志记录冗长级别,日志级别0-9,等级越高,记录越多

mute 20 #重复日志记录限
上一篇:
docker启动失败(can't create unix socket /var/run/docker.sock: is a directory)
下一篇:
Jenkins plugin for building Maven 2/3 jobs