企业内网神器OpenVPN( 二 )

三、OpenVPN服务端配置文件

以下为默认配置文件说明信息
#server.conf文件中以#或;开头的行都为注释[root@server ~]# grep -Ev "^#|^$" /etc/openvpn/server.conf;local a.b.c.d#本机监听IP,默认为本机所有IPport 1194#端口;proto tcp#协议,生产推荐使用TCPproto udp #默认协议;dev tap#创建一个以太网隧道,以太网使用tap,一个tap设备允许完整的以太网帧通过Openvpn隧道,可提供非ip协议的支持,比如IPX协议和AppleTalk协议,tap等同于一个以太网设备,它操作第二层数据包如以太网数据帧 。dev tun#创建一个路由IP隧道,生产推存使用tun.互联网使用tun,一个tun设备大多时候,被用于基于IP协议的通讯 。tun模拟了网络层设备,操作第三层数据包比如IP数据封包 。;dev-node MyTap#TAP-Win32适配器 。非windows不需要配置ca ca.crt#ca证书文件cert server.crt#服务器证书文件key server.key#服务器私钥文件dh dh2048.pem#dh参数文件;topology subnetserver 10.8.0.0 255.255.255.0#客户端连接后分配IP的地址池,服务器默认会占用第一个IP 10.8.0.1将做为客户端的网关ifconfig-pool-persist ipp.txt#为客户端分配固定IP,不需要配置,建议注释;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100#配置网桥模式,不需要配置,建议注释;server-bridge;push "route 192.168.10.0 255.255.255.0"#给客户端生成的到达服务器后面网段的静态路由,下一跳为openvpn服务器的10.8.0.1;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#运行外部脚本,创建不同组的iptables规则,无需配置;push "redirect-gateway def1 bypass-dhcp" #启用后,客户端所有流量都将通过VPN服务器,因此生产一般无需配置此项;push "dhcp-option DNS 208.67.222.222"#推送DNS服务器,不需要配置;push "dhcp-option DNS 208.67.220.220";client-to-client#允许不同的client直接通信,不安全,生产环境一般无需要配置;duplicate-cn#多个用户共用一个证书,一般用于测试环境,生产环境都是一个用户一个证书,无需开启keepalive 10 120#设置服务端检测的间隔和超时时间,默认为每10秒ping一次,如果 120 秒没有回应则认为对方已经downtls-auth ta.key 0 #访止DoS等攻击的安全增强配置,可以使用以下命令来生成:openvpn --genkey --secret ta.key #服务器和每个客户端都需要拥有该密钥的一个拷贝 。第二个参数在服务器端应该为’0’,在客户端应该为’1’cipher AES-256-CBC#加密算法;compress lz4-v2#启用Openvpn2.4.X新版压缩算法;push "compress lz4-v2"#推送客户端使用新版压缩算法,和下面的comp-lzo不要同时使用;comp-lzo#旧户端兼容的压缩配置,需要客户端配置开启压缩,openvpn2.4.X等新版可以不用开启;max-clients 100#最大客户端数;user nobody#运行openvpn服务的用户和组;group nobodypersist-key#重启VPN服务时默认会重新读取key文件,开启此配置后保留使用第一次的key文件,生产环境无需开启persist-tun#启用此配置后,当重启vpn服务时,一直保持tun或者tap设备是up的,否则会先down然后再up,生产环境无需开启status openvpn-status.log #openVPN状态记录文件,每分钟会记录一次;logopenvpn.log#第一种日志记录方式,并指定日志路径,log会在openvpn启动的时候清空日志文件,不建议使用;log-append openvpn.log#第二种日志记录方式,并指定日志路径,重启openvpn后在之前的日志后面追加新的日志,生产环境建议使用verb 3#设置日志级别,0-9,级别越高记录的内容越详细,0 表示静默运行,只记录致命错误,4 表示合理的常规用法,5 和 6 可以帮助调试连接错误 。9 表示极度冗余,输出非常详细的日志信息;mute 20#相同类别的信息只有前20条会输出到日志文件中explicit-exit-notify 1#通知客户端,在服务端重启后自动重新连接,仅能用于udp模式,tcp模式不需要配置即可实现断开重新连接,且开启此项后tcp配置后将导致openvpn服务无法启动,所以tcp时必须不能开启此项
以下为实验环境配置文件信息
[root@server ~]# cat /etc/openvpn/server.conf# 指定默认端口号port 1194# 指定vpn使用的协议为tcp,生产环境推荐使用proto tcp# 创建一个路由IP隧道,生产环境推荐使用tundev tun# 指定证书文件ca/etc/openvpn/certs/ca.crt# 指定服务器证书文件cert/etc/openvpn/certs/server.crt# 指定服务器私钥文件key/etc/openvpn/certs/server.key# 指定dh参数文件dh/etc/openvpn/certs/dh.pem# 指定客户端连接后分配ip的地址池,服务器默认会占用第一个ip作为网关server 10.8.0.0 255.255.255.0# 推送路由信息到客户端,以允许客户端能够连接到服务器背后的其他私有子网push "route 172.30.0.0 255.255.255.0"# 设置服务端检测的间隔和超时时间,10秒ping一次,120秒没回应则认为对方downkeepalive 10 120# 加密算法cipher AES-256-CBC# 启用openvpn新版压缩算法compress lz4-v2# 推送客户端使用新版压缩算法,不能和comp-lzo同时使用push "compress lz4-v2"# 最大客户端数max-clients 2048# 运行openvpn服务的用户和组user openvpngroup openvpn# openvpn状态记录文件,每分钟记录一次status/var/log/openvpn/openvpn-status.log# 指定日志路径,生产环境建议使用log-append/var/log/openvpn/openvpn.log# 设置日志级别,数字越大记录的内容越详细verb 3# 相同类别信息只有前20条会输出到日志文件中mute 20--------------------------'以上为server.conf配置'-----------------------------[root@server ~]# getent passwd openvpn[root@server ~]# mkdir -p /var/log/openvpn/[root@server ~]# chown openvpn.openvpn /var/log/openvpn


推荐阅读