加载中…
个人资料
看看
看看
  • 博客等级:
  • 博客积分:0
  • 博客访问:30,798
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

OpenVPN 2.0样例配置文件

(2007-02-02 08:47:29)
分类: OpenVPN
OpenVPN 2.0 配置文件例子

sample-config-files/server.conf
#################################################
# OpenVPN 2.0 多客户的服务端的配置文件例子. #
# #
# 这一配置文件是OpenVPN的多个客户端<->一个服务 #
# 端的服务端的配置文件. #
# #
# OpenVPN也支持一台机器<->一台机器的配置(更多信 #
# 息参看网站上的Example页面)。 #
# #
# 这一配置文件在Windows下和Linux/BSD系统上都能 #
# 运行。在Windows下路径名要加引号并且要使用双反 #
# 斜杠, 例如:"C:\\Program Files\\OpenVPN #
# \\config\\foo.key" #
# #
# 注释以'#'或':'开头 #
#################################################

# OpenVPN在哪一个本地IP地址上监听?(可选)
;local a.b.c.d

# OpenVPN在哪一个TCP/UDP端口上监听?
# 如果在一台机器上运行多个OpenVPN,每个OpenVPN使用
# 一个不同的端口。需要在防火墙上打开这一端口。
port 1194

# TCP还是UDP服务端?
;proto tcp
proto udp

# "dev tun"创建一个路由的IP隧道,
# "dev tap"创建一个以太网隧道。
# 如果你使用以太网桥并且已创建了一个tap0虚拟网卡,
# 并且tap0虚拟网卡和你的以太网卡已桥接,则使用"dev tap0"。
# 如果你想控制VPN的访问策略,则必须为TUN/TAP接口
# 创建防火墙规则。
# 在非Windows系统,可以给出明确的单元数字,例如tun0。
# 在Windows下,使用"dev-node"。
# 在大多数系统下,如果没有部分或全部禁止TUN/TAP接口的
# 防火墙,VPN将不能正常工作。
;dev tap
dev tun

# 如果有多个网卡,在Windows下需要网络连接中的TAP-Win32
# 虚拟网卡。在XP SP2或更高版本上,可能需要禁止
# TAP虚拟网卡上的防火墙。非Windows系统不需要这些操作。
;dev-node MyTap

# SSL/TLS根证书(ca),证书(cert),私钥(key)。
# 服务端和每个客户端必须有它们自己的证书和
# 私钥文件。服务端和客户端使用同一个ca文件。
#
# 可以到"easy-rsa"目录查看用来生成RSA证书和
# 私钥的脚本文件。记住对服务端和每个客户端
# 要使用不同(unique)的Common Name。
#
# 可以使用任意的X509秘钥管理系统。
# OpenVPN也能使用PKCS #12格式的秘钥文件
# (参看man page的"pkcs13"指令)。
ca ca.crt
cert server.crt
key server.key # 这一文件应该保密

# Diffie hellman参数。
# 用如下方法生成自己的diffie helman文件:
# openssl dhparam -out dh1024.pem 1024
# 如果你使用2048位的密钥,则将1024替换为2048.
dh dh1024.pem

# 配置为服务器模式,并且提供一个VPN子网让OpenVPN服务端
# 从其中为客户端分配IP地址。服务端自己的IP地址将是
# 10.8.0.1,剩下的分配给客户端。每个客户端都能访问
# 10.8.0.1的服务端。
# 如果你使用以太网桥,则将这一行注释掉。更多信息请查阅
# man page。
server 10.8.0.0 255.255.255.0

# 这个文件里维护一个client<->虚拟IP地址关联的
# 记录。如果OpenVPN关闭或重启,重新连接的客户端
# 能够从IP地址池中获得先前得到的虚拟IP地址。
ifconfig-pool-persist ipp.txt

# 配置服务端模式为以太网桥。
# 必须首先使用操作系统的桥接功能将TAP接口和以太网NIC接口
# 桥接。然后在桥接接口上设置IP地址和子网掩码,这里使用
# 10.8.0.4/255.255.255.0。最后,必须在这个子网中为连
# 接的客户端留出一个IP地址范围(10.8.0.50到10.8.0.100)。
# 如果没有使用以太网桥方式,将这一行保留为注释。
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# 为客户端设置路由允许它们到达服务器后面的其它私网。
# 这些私网也必须将OpenVPN的客户端地址池(10.8.0.0/255.255.255.0)
# 路由回OpenVPN服务端。
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

# 为了给指定的客户端分配指定的IP地址,或者
# 客户端后面有一个私网也要访问VPN,使用子目录
# "ccd"作为客户端特定(client-specific)配置文件
# (更多信息查看man page).

# 例子:假定客户端证书的common name是"Thelonius"
# 并且在它后面有一个子网,比如192.168.40.128/255.255.255.248.
# 首先,将这几行的注释去掉:
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# 然后在ccd目录下创建文件Thelonious,
# Thelonious文件中添加如下一行:
# iroute 192.168.40.128 255.255.255.248
# 这将允许Thelonious的子网访问VPN.
# 这个例子仅能在路由模式下工作而不能是桥接模式,
# 也就是说,使用的是"dev tun"和"server"指令。

# 例子:假定你想给分配Thelonious一个固定的VPN地址
# 10.9.0.1。首先将以下几行的注释去掉:
;client-config-dir ccd
;route 10.9.0.0 255.255.255.252
# 然后在ccd/Thelonious文件中添加如下一行:
# ifconfig-push 10.9.0.1 10.9.0.2

# 如果想为不同的客户组指定不同的防火墙规则,有如下
# 两种方法:
# (1) 为每个客户组运行一个OpenVPN daemons,为每
# 一个group/daemon设置适合的TUN/TAP接口防火墙规则。
# (2) (高级)创建一个脚本使之在响应不同客户端的访问时动态改变防火墙。
# learn-address脚本的更多信息请参阅man page。
;learn-address ./script

# 这一指令使所有的客户端重定向它们的默认网关为通过VPN,
# If enabled, this directive will configure
# all clients to redirect their default
# network gateway through the VPN,
#
# 从而使所有的IP流量(IP traffic)象网页浏览、DNS搜索
# (DNS lookup)等都通过VPN(为使这一指令正常工作,
# OpenVPN服务端可能需要NAT TUN/TAP接口到internet的连接)。
# (The OpenVPN server machine may need to NAT
# the TUN/TAP interface to the internet in
# order for this to work properly).
#
# 警告:如果客户端的本地DHCP服务器包通过隧道路由,
# 则可能中止客户端的网络配置。
# CAVEAT: May break client's network config if
# client's local DHCP server packets get routed
# through the tunnel.
#
# 解决:确保能够通过更明确的路由到达客户
# 端的本地DHCP服务器而不是默认的路由0.0.0.0/0.0.0.0.
# Solution: make sure client's local DHCP server
# is reachable via a more specific route than the
# default route of 0.0.0.0/0.0.0.0.
;push "redirect-gateway"


# 某些Windows的网络设置可以push给客户端,
# 比如DNS、WINS服务器地址。
# Certain Windows-specific network settings
# can be pushed to clients, such as DNS
# or WINS server addresses.
#
# 警告: http://openvpn.net/faq.html#dhcpcaveats
;push "dhcp-option DNS 10.8.0.1"
;push "dhcp-option WINS 10.8.0.1"

# 取消这一指令的注释将允许不同的客户端能够互相看到。
# 缺省情况下,客户端仅能看到服务端。要使所有的客户端
# 仅能看到服务端,还需要正确设置服务端TUN/TAP接口的
# 防火墙。
;client-to-client

# 如果多个客户端使用相同的证书/私钥或者common name连接,
# 则去掉这一行的注释。
# 推荐仅仅为测试目的使用。对于产品而言,每个客户端应该有
# 它自己的证书/私钥对。
#
# 如果你没有为每个客户端生成证书/私钥对,客户端没有
# 自己的独特的common name,则去掉这一注释。
;duplicate-cn

# keepalive指令在连接上发送和回发象ping一样的消息。
# 从而使一边知道另一边什么时候掉线。
# The keepalive directive causes ping-like
# messages to be sent back and forth over
# the link so that each side knows when
# the other side has gone down.
#
# 每10秒钟ping一次,如果在120秒内没有收到对端
# 的ping包,则认为对端已掉线。
keepalive 10 120

# 在SSL/TLS之外提供别处的安全措施,创建一个"HMAC防火墙"
# 来阻止DoS攻击和UDP端口扫描(port flooding)。
#
# 生成:
# openvpn --genkey --secret ta.key
#
# 服务端和每个客户端都必须有一份这个秘钥的拷贝。
# 第二个参数在服务端是‘0’,在客户端是‘1’。
;tls-auth ta.key 0 # 这一文件应当保密

# 选择一种加密方法,
# 这一配置项也必须拷贝到客户端的配置文件。
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES

# 在VPN连接上便能压缩。
# 如果你在这儿使能了压缩,则必须在客户
# 端的配置文件中便能这一项。
comp-lzo

# 允许同时连接的客户端最大数量。
;max-clients 100

# OpenVPN初始化后降低OpenVPN daemon的优先级是
# 个好主意。
# 可以在非Windows系统下去掉以下两行的注释。
;user nobody
;group nobody

# persist选项避免重启时访问那些由于级别降低
# 已不能访问的资源。
# 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

# 将当前连接输出到一个状态文件,每分钟将前面
# 的内容清空更新一次。
# Output a short status file showing
# current connections, truncated
# and rewritten every minute.
status openvpn-status.log

# 默认状态下,日志信息输出到syslog(如果OpenVPN在Winows下
# 作为一个服务运行,日志保存在"\Program Files\OpenVPN\log")。
# 使用log或者log-append覆盖默认设置。"log"在OpenVPN启动时
# 将日志文件清空,"log-append"则在日志文件末尾追加。
# 使用它们中的一个,两个不能同时使用。
;log openvpn.log
;log-append openvpn.log

# 设置日志文件的冗余级别。
#
# 0 安静,仅输出致命错误
# 4 通常使用
# 5和6 可以帮助诊断连接问题,
# 9 输出冗余信息最多
verb 3

# 重复消息安静。
# 相同的消息最多输出20条到日志。
;mute 20


sample-config-files/client.conf
##############################################
# OpenVPN3.0连接多客户端服务器的客户端配置 #
@ 文件例子。 #
# #
# 这一配置文件可以被多个客户端使用,但是每个 #
# 客户端应该有自己的证书和私药钥文件。 #
# #
# 在Windows下将这一文件加上.ovpn扩展名 #
##############################################

# 指明是客户端,并且能从服务端接受一些配置文件参数。
# and that we will be pulling certain config
# file directives from the server.
client

# 使用和服务端相同的设置。
# 在大多数系统下,如果没有禁止TUN/TAP接口的防火墙,
# 则VPN不能正常工作。
;dev tap
dev tun

# 如果有多个网卡,在Windows网络连接面板中需要
# 名为TAP-Win32的网卡。在XP SPW下,可能需要禁止
# TAP网卡的防火墙。
;dev-node MyTap

# 连接到TCP还是UDP服务器?和服务器的设置相同。
;proto tcp
proto udp

# 服务器的名字/IP地址和端口号。可以有多个
# remote条目以平抑服务器负载。
# You can have multiple remote entries
# to load balance between the servers.
remote my-server-1 1194
;remote my-server-2 1194

# 从remote列表中随机挑选一个服务器以平衡负载。
# 否则按列出的服务器顺序依次尝试连接。
# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random

# 总是尝试解析OpenVPN服务器的名字。
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.
# 对于象笔记本这样不是一直连接internet的机子特别有用。
resolv-retry infinite

# 大多数客户端并不需要绑定一个特定的本地端口。
nobind

# 初始化后降低优先级(仅限于非Windows系统)
;user nobody
;group nobody

# 重启时仍保留一些状态。
# Try to preserve some state across restarts.
persist-key
persist-tun

# 如果你是通过HTTP代理连接OpenVPN服务器的,将代理
# 服务器的IP地址和端口写在这里。如果你的代理服务器
# 要求认证请参看man page。
;http-proxy-retry # 连接失败时重试
;http-proxy [proxy server] [proxy port #]

# 无线网络通常产生很多重复的包,设置这一标志
# 取消重复包告警。
# Set this flag to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS参数。
# 更多描述参看服务端的配置文件。
# 最好每个客户端使用一个独立的 .crt/.key文件对。
# It's best to use a separate .crt/.key file pair
# for each client.
# ca文件可以被所有客户端使用。
ca ca.crt
cert client.crt
key client.key

# 通过检查服务器证书的nsCertType域是否设置为
# "server"来验证服务器证书。这是防范这里
# http://openvpn.net/howto.html#mitm讨论的攻击的
# 一种重要措施。
# 要使用这一特性,需要使生成的服务器证书的nsCertType
# 域设置为"server"。easy-rsa目录下的build-key-server脚本
3 已经做了这项工作。
;ns-cert-type server

# 如果在服务端使用了tls-auth秘钥,那么每一个
# 客户端也必须使用这一秘钥。
;tls-auth ta.key 1

# 选择一种加密方法,如果这一选项在服务端使用了,
# 则也必须在这里指定相同的加密方法。.
;cipher x

# 在VPN连接上使能压缩。
# 不要使能这一选项除非在服务端配置文件中也
# 使能了这一选项。
comp-lzo

# 设置日志文件的冗余级别
# Set log file verbosity.
verb 3

# 触发安静模式的重复消息的个数
# Silence repeating messages
;mute 20

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有