OpenVPN配置文件说明
;local a.b.c.d
定义openvpn监听的IP地址,如果是服务器单网卡的也可以不注明,但是服务器是多网卡的建议注明。
port 1194
定义openvpn监听的的端口,默认为1194端口。
proto tcp
;proto udp
定义openvpn使用的协议,默认使用UDP。如果是生产环境的话,建议使用TCP协议。
dev tun
;dev tap
定义openvpn运行时使用哪一种模式,openvpn有两种运行模式一种是tap模式,一种是tun模式。
tap模式也就是桥接模式,通过软件在系统中模拟出一个tap设备,该设备是一个二层设备,同时支持链路层协议。
tun模式也就是路由模式,通过软件在系统中模拟出一个tun路由,tun是ip层的点对点协议。
具体使用哪一种模式,需要根据自己的业务进行定义。
ca ca.crt
定义openvpn使用的CA证书文件,该文件通过build-ca命令生成,CA证书主要用于验证客户证书的合法性。
cert vpnilanni.crt
定义openvpn服务器端使用的证书文件。
key vpnilanni.key
定义openvpn服务器端使用的秘钥文件,该文件必须严格控制其安全性。
dh dh2048.pem
定义Diffie hellman文件。
server 10.8.0.0 255.255.255.0
定义openvpn在使用tun路由模式时,分配给client端分配的IP地址段。
ifconfig-pool-persist ipp.txt
定义客户端和虚拟ip地址之间的关系。特别是在openvpn重启时,再次连接的客户端将依然被分配和断开之前的IP地址。
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
定义openvpn在使用tap桥接模式时,分配给客户端的IP地址段。
;push “route 192.168.10.0 255.255.255.0”
向客户端推送的路由信息,假如客户端的IP地址为10.8.0.2,要访问192.168.10.0网段的话,使用这条命令就可以了。
;client-config-dir ccd
这条命令可以指定客户端IP地址。
使用方法是在/etc/openvpn/创建ccd目录,然后创建在ccd目录下创建以客户端命名的文件。比如要设置客户端 ilanni为10.8.0.100这个IP地址,只要在 /etc/openvpn/ccd/ilanni文件中包含如下行即可:
ifconfig-push 10.8.0.200 255.255.255.0
push “redirect-gateway def1 bypass-dhcp”
这条命令可以重定向客户端的网关,在进行翻墙时会使用到。
;push “dhcp-option DNS 208.67.222.222”
向客户端推送的DNS信息。
假如客户端的IP地址为10.8.0.2,要访问192.168.10.0网段的话,使用这条命令就可以了。如果有网段的话,可以多次出现push route关键字。同时还要配合iptables一起使用。
client-to-client
这条命令可以使客户端之间能相互访问,默认设置下客户端间是不能相互访问的。
duplicate-cn
定义openvpn一个证书在同一时刻是否允许多个客户端接入,默认没有启用。
keepalive 10 120
定义活动连接保时期限
comp-lzo
启用允许数据压缩,客户端配置文件也需要有这项。
;max-clients 100
定义最大客户端并发连接数量
;user nobody
;group nogroup
定义openvpn运行时使用的用户及用户组。
persist-key
通过keepalive检测超时后,重新启动VPN,不重新读取keys,保留第一次使用的keys。
persist-tun
通过keepalive检测超时后,重新启动VPN,一直保持tun或者tap设备是linkup的。否则网络连接,会先linkdown然后再linkup。
status openvpn-status.log
把openvpn的一些状态信息写到文件中,比如客户端获得的IP地址。
log openvpn.log
记录日志,每次重新启动openvpn后删除原有的log信息。也可以自定义log的位置。默认是在/etc/openvpn/目录下。
;log-append openvpn.log
记录日志,每次重新启动openvpn后追加原有的log信息。
verb 3
设置日志记录冗长级别。
;mute 20
重复日志记录限额
以上就是openvpn服务器端server.conf配置文件的内容。
———–客户端配置文件说明
client
定义这是一个client,配置从server端pull拉取过来,如IP地址,路由信息之类,Server使用push指令推送过来。
dev tun
定义openvpn运行的模式,这个地方需要严格和Server端保持一致。
proto tcp
定义openvpn使用的协议,这个地方需要严格和Server端保持一致。
remote 192.168.1.8 1194
设置Server的IP地址和端口,这个地方需要严格和Server端保持一致。
如果有多台机器做负载均衡,可以多次出现remote关键字。
;remote-random
随机选择一个Server连接,否则按照顺序从上到下依次连接。该选项默认不启用。
resolv-retry infinite
始终重新解析Server的IP地址(如果remote后面跟的是域名),保证Server IP地址是动态的使用DDNS动态更新DNS后,Client在自动重新连接时重新解析Server的IP地址。这样无需人为重新启动,即可重新接入VPN。
nobind
定义在本机不邦定任何端口监听incoming数据。
persist-key
persist-tun
ca ca.crt
定义CA证书的文件名,用于验证Server CA证书合法性,该文件一定要与服务器端ca.crt是同一个文件。
cert laptop.crt
定义客户端的证书文件。
key laptop.key
定义客户端的密钥文件。
ns-cert-type server
Server使用build-key-server脚本生成的,在x509 v3扩展中加入了ns-cert-type选项。防止client使用他们的keys + DNS hack欺骗vpn client连接他们假冒的VPN Server,因为他们的CA里没有这个扩展。
comp-lzo
启用允许数据压缩,这个地方需要严格和Server端保持一致。
verb 3
设置日志记录冗长级别。