一键安装:
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 #重复日志记录限
- 文章链接: https://blog.zhangcun.store/2022/09/30/openvpn-da-jian/
- 版权声明: 本网站所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
你的赏识是我前进的动力
支付宝
微信
