# #号和;号开头的都是注释 # 设置监听 IP,默认是监听所有 IP #local 116.6.45.23 #Openvpn 服务器监听端口 port 2194 # 设置用 TCP 还是 UDP 协议? ;proto tcp proto udp # 设置创建 tun 的路由 IP 通道,还是创建 tap 的以太网通道 # 路由 IP 容易控制,所以推荐使用它;但如果如 IPX 等必须 # 使用第二层才能通过的通讯,则可以用 tap 方式,tap 也 # 就是以太网桥接 dev tun # 配置 VPN 使用的网段,OpenVPN 会自动提供基于该网段的 DHCP # 服务,但不能和任何一方的局域网段重复,保证唯一 # server 端 ip 默认会设为.1 的地址。 server 10.9.0.0255.255.255.0 # 为客户端创建对应的路由,以另其通达公司网内部服务器 # 但记住,公司网内部服务器也需要有可用路由返回到客户端 push "route 172.18.2.0 255.255.255.0" # 维持一个客户端和 virtual IP 的对应表,以方便客户端重新 # 连接可以获得同样的 IP ifconfig-pool-persist /usr/local/etc/ipp.txt # 用 OpenVPN 的 DHCP 功能为客户端提供指定的 DNS、WINS 等 push "dhcp-option DNS 172.18.2.23" push "dhcp-option DNS 202.96.128.86" # 这里是重点,必须指定 SSL/TLS root certificate (ca), # certificate(cert), and private key (key) # ca 文件是服务端和客户端都必须使用的,但不需要 ca.key # 服务端和客户端指定各自的.crt 和.key # 请注意路径,可以使用以配置文件开始为根的相对路径, # 也可以使用绝对路径 # 请小心存放.key 密钥文件 ca /usr/local/etc/keys/ca.crt cert /usr/local/etc/keys/server.crt key /usr/local/etc/keys/server.key # 指定 Diffie hellman parameters. dh /usr/local/etc/keys/dh1024.pem #用于吊销客户证书 crl-verify /usr/local/etc/keys/vpncrl.pem #增强安全性 # Generate with: # openvpn --genkey --secret ta.key # # The server and each client must have # a copy of this key. # The second parameter should be 0 # on the server and 1 on the clients. tls-auth /usr/local/etc/keys/ta.key 0 # 设置服务端检测的间隔和超时时间 每 10 秒 ping 一次,如果 120 秒没有回应则认为对方已经 down keepalive 10120 # 使用 lzo 压缩的通讯,服务端和客户端都必须配置 comp-lzo # 输出短日志,每分钟刷新一次,以显示当前的客户端 status /var/log/openvpn-status.log #设置日志要记录的级别。 #0 只记录错误信息。 #4 能记录普通的信息。 #5 和 6 在连接出现问题时能帮助调试 #9 是极端的,所有信息都会显示,甚至连包头等信息都显示(像 tcpdump) verb 4 #相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中。 mute 20 # 让 OpenVPN 以 nobody 用户和组来运行(安全) user nobody group nobody # The persist options will try to avoid # accessing certain resources on restart # that may no longer be accessible because # of the privilege downgrade. # 重启时仍保留一些状态 persist-key persist-tun ###################其他参数 ######################################
# 为特定的客户端指定 IP 或指定路由,该路由通常是客户端后面的 # 内网网段,而不是服务端连接的网段 # ccd 是/etc/openvpn 下的目录,其中建有希望限制的客户端 Common # Name 为文件名的文件,并通过下面的命令写入固定 IP 地址 # 例如 Common Name 为 client1,则在/etc/openvpn/ccd/client1 写有: # ifconfig-push 10.9.0.1 10.9.0.2 client-config-dir /usr/local/etc/ccd # 若客户端希望所有的流量都通过 VPN 传输,则可以使用该语句 # 其会自动改变客户端的网关为 VPN 服务器,推荐关闭 # 一旦设置,请小心服务端的 DHCP 设置问题 ;push "redirect-gateway" # 如果您希望有相同 Common Name 的客户端都可以登陆 # 也可以注释下面的语句,推荐每个客户端都使用不用的 Common Name # 常用于测试 ;duplicate-cn # 设置最大用户数 #max-clients 3 # 打开管理界面,可以定义监控的 IP 和端口 management localhost 7505 # 缺省日志会记录在系统日志中,但也可以导向到其他地方 # 建议调试的使用先不要设置,调试完成后再定义 ;log /var/log/openvpn/openvpn.log ;log-append /var/log/openvpn/openvpn.log # 配置为以太网桥模式,但需要使用系统的桥接功能 # 这里不需要使用 ;server-bridge 10.8.0.4255.255.255.010.8.0.5010.8.0.100 #记录日志,每次重新启动 openvpn 后删除原有的 log 信息 log /var/log/openvpn.log #和 log 一致,每次重新启动 openvpn 后保留原有的 log 信息,新信息追加到文件最后 ;log-append openvpn.log #定义运行 openvpn 的用户 user nobody group nobody #Run script or shell command cmd to validate client #virtual addresses or routes. 具体查看 manual ;learn-address ./script #其它的一些需要 PUSH 给 Client #用于记录某个 Client 获得的 IP 地址,类似于 dhcpd.lease 文件, #防止 openvpn 重新启动后“忘记”Client 曾经使用过的 IP 地址 ifconfig-pool-persist ipp.txt #Bridge 状态下类似 DHCPD 的配置,为客户分配地址,由于这里工作在路由模式,所以不使用 ;server-bridge 10.8.0.4255.255.255.010.8.0.5010.8.0.100 # 随机选择一个 Server 连接,否则按照顺序从上到下依次连接 ;remote-random # 始终重新解析 Server 的 IP 地址(如果 remote 后面跟的是域名) , # 保证 Server IP 地址是动态的使用 DDNS 动态更新 DNS 后,Client 在自动重新连接时重新解析 Server 的 IP 地址 # 这样无需人为重新启动,即可重新接入 VPN resolv-retry infinite # 在本机不邦定任何端口监听 incoming 数据,Client 无需此操作,除非一对一的 VPN 有必要 nobind # 如果你使用 HTTP 代理连接 VPN Server,把 Proxy 的 IP 地址和端口写到下面 # 如果代理需要验证,使用 http-proxy server port [authfile] [auth-method] # 其中 authfile 是一个 2 行的文本文件,用户名和密码各占一行,auth-method 可以省略,详 细信息查看 Manual ;http-proxy-retry # retry on connection failures ;http-proxy [proxy server] [proxy port #] # Server 使用 build-key-server 脚本什成的,在 x509 v3 扩展中加入了 ns-cert-type 选项 # 防止 VPN client 使用他们的 keys + DNS hack 欺骗 vpn client 连接他们假冒的 VPN Server # 因为他们的 CA 里没有这个扩展 ns-cert-type server a.定义 tun 为使用路由方式的 VPN b.小心处理证书的路径,.key 文件要保存好,特别是 ca.key。 (ca.key 不需要在 OpenVPN 中用到,可以另外保存) 注意,每个虚拟 tun 网卡都是成对的,只有 inet addr 标识的才是用于 VPN 通讯。并且必须在/30 网段