千家信息网

OpenV PN 配置范例及配置文件说明

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,一、配置文件参考样例1、Easy-***配置范例1). easy-*** 证书认证 ***server的配置如下:[root@master open***]# grep -P -v "^(#|;|$)
千家信息网最后更新 2026年10月31日OpenV PN 配置范例及配置文件说明

一、配置文件参考样例

1、Easy-***配置范例

1). easy-*** 证书认证 ***server的配置如下:

[root@master open***]# grep -P -v "^(#|;|$)" server.conf

local 202.102.1.1

port 1194

proto udp

dev tap

ca ca.crt

cert ***server.crt

key ***server.key # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

2). easy-*** 证书认证 ***client的配置如下:

[root@slave2 open***]# grep -P -v "^(;|#|$)" client.conf

client

dev tap

proto udp

remote ***.example.com 1194 #此FQDN必须对应***server外网网卡的IP

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

comp-lzo

verb 3


1). easy-*** 用户名密码认证 ***server的配置如下:

[root@master open***]# grep -P -v "^(;|#|$)" server.conf

auth-user-pass-verify /etc/open***/checkpsw.sh via-env

client-cert-not-required #本行表示不需要验证客户端证书,如果没有本行客户端必须提供证书

username-as-common-name

local 202.102.1.1

port 1194

proto udp

dev tap

ca ca.crt

cert ***server.crt

key ***server.key # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

keepalive 10 120

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

[root@master open***]# ll checkpsw.sh psw-file

-rwxr-x--- 1 nobody nobody 1191 9月 1 09:57 checkpsw.sh

-r-------- 1 nobody nobody 37 9月 1 09:59 psw-file

说明:以下两个文件的属主、属组必须是nobody; psw-file文件的权限必须是400

[root@master open***]# cat checkpsw.sh

#!/bin/sh

########################################################

# checkpsw.sh (C) 2004 Mathias Sundman

#

# This script will authenticate Open*** users against

# a plain text file. The passfile should simply contain

# one row per user with the username first followed by

# one or more space(s) or tab(s) and then the password.

PASSFILE="/etc/open***/psw-file"

LOG_FILE="/var/log/open***-password.log"

TIME_STAMP=`date "+%Y-%m-%d %T"`

########################################################

if [ ! -r "${PASSFILE}" ]; then

echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}

exit 1

fi

CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`

if [ "${CORRECT_PASSWORD}" = "" ]; then

echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}

exit 1

fi

if [ "${password}" = "${CORRECT_PASSWORD}" ]; then

echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}

exit 0

fi

echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}

exit 1

[root@master open***]# cat psw-file

robin123

marry123

#用户名密码


2). easy-*** 用户名密码认证 ***client的配置如下:

[root@slave2 open***]# grep -P -v "^(#|;|$)" client.conf

client

auth-user-pass

dev tap

proto udp

remote ***.example.com 1194

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

comp-lzo

verb 3


2、Site-to-Site ***配置范例

1). site-to-site ***server 的配置文件如下:

[root@master open***]# grep -P -v "^(;|#|$)" server.conf

local 202.102.1.1

port 1194

proto udp

dev tun

ca ca.crt

cert ***server.crt

key ***server.key # This file should be kept secret

dh dh2024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

push "route 192.168.1.0 255.255.255.0"

client-config-dir ccd

route 192.168.2.0 255.255.255.0

client-to-client

keepalive 10 120

tls-auth ta.key 0 # This file is secret

cipher BF-CBC # Blowfish (default)

comp-lzo

user nobody

group nobody

persist-key

persist-tun

status open***-status.log

verb 3

[root@master open***]#open*** --genkey --secret ta.key

[root@master open***]#mkdir /etc/open***/ccd/

[root@master open***]#echo "iroute 192.168.2.0 255.255.255.0" > /etc/open***/ccd/slave2.example.com

说明:其中/etc/open***/ccd/slave2.example.com的文件名必须是*** client 证书中的common name 。


2). site-to-site ***client 的配置文件如下:

[root@slave2 open***]# grep -P -v "^(;|#|$)" client.conf

client

dev tun

proto udp

remote ***.example.com 1194 #此FQDN必须对应***server外网网卡的IP

resolv-retry infinite

nobind

user nobody

group nobody

persist-key

persist-tun

ca ca.crt

cert client.crt

key client.key

ns-cert-type server

tls-auth ta.key 1

comp-lzo

verb 3


二、配置文件参数说明

# 号和;号开头的都是注释

local 202.102.1.1 # 设置监听 IP,默认是监听所有 IP

port 2194 #Open*** 服务器监听端口

;proto tcp

proto udp # 设置用 TCP 还是 UDP 协议?

dev tun # 设置创建 tun 的路由 IP 通道,还是创建 tap 的以太网通道;

#路由 IP 容易控制,所以推荐使用它;但如果如 IPX 等必须;

#使用第二层才能通过的通讯,则可以用 tap 方式,tap 也就是以太网桥接

server 10.9.0.0 255.255.255.0 # 配置 *** 使用的网段,Open*** 会自动提供基于该网段的 DHCP

# 服务,但不能和任何一方的局域网段重复,保证唯一

# server 端 ip 默认会设为.1 的地址。


push "route 172.18.2.0 255.255.255.0" # 为客户端创建对应的路由,以令其通达公司网内部服务器

# 但记住,公司网内部服务器也需要有可用路由返回到客户端

ifconfig-pool-persist /usr/local/etc/ipp.txt # 维持一个客户端和 virtual IP 的对应表,以方便客户端重新

# 连接可以获得同样的 IP

push "dhcp-option DNS 172.18.2.23" # 用 Open*** 的 DHCP 功能为客户端提供DNS、WINS 等

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/dh2024.pem


crl-verify /usr/local/etc/keys/***crl.pem #用于吊销客户证书


#增强安全性

# Generate with:

# open*** --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 10 120

comp-lzo # 使用 lzo 压缩的通讯,服务端和客户端都必须配置

status /var/log/open***-status.log # 输出短日志,每分钟刷新一次,以显示当前的客户端

#设置日志要记录的级别。

#0 只记录错误信息。

#4 能记录普通的信息。

#5 和 6 在连接出现问题时能帮助调试

#9 是极端的,所有信息都会显示,甚至连包头等信息都显示(像 tcpdump)

verb 4

mute 20 #相同信息的数量,如果连续出现 20 条相同的信息,将不记录到日志中。

# 让 Open*** 以 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/open*** 下的目录,其中建有希望限制的客户端 Common

# Name 为文件名的文件,并通过下面的命令写入固定 IP 地址

# 例如 Common Name 为 client1,则在/etc/open***/ccd/client1 写有:

# ifconfig-push 10.9.0.1 10.9.0.2

client-config-dir /usr/local/etc/ccd

# 若客户端希望所有的流量都通过 *** 传输,则可以使用该语句

# 其会自动改变客户端的网关为 *** 服务器,推荐关闭

# 一旦设置,请小心服务端的 DHCP 设置问题

;push "redirect-gateway"

# 如果您希望有相同 Common Name 的客户端都可以登陆

# 也可以注释下面的语句,推荐每个客户端都使用不用的 Common Name

# 常用于测试

;duplicate-cn

# 设置最大用户数

#max-clients 3

# 打开管理界面,可以定义监控的 IP 和端口

management localhost 7505

# 缺省日志会记录在系统日志中,但也可以导向到其他地方

# 建议调试的使用先不要设置,调试完成后再定义

;log /var/log/open***/open***.log

;log-append /var/log/open***/open***.log

# 配置为以太网桥模式,但需要使用系统的桥接功能

# 这里不需要使用

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

#记录日志,每次重新启动 open*** 后删除原有的 log 信息

log /var/log/open***.log

#和 log 一致,每次重新启动 open*** 后保留原有的 log 信息,新信息追加到文件最后

;log-append open***.log

#定义运行 open*** 的用户

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 文件,

#防止 open*** 重新启动后"忘记"Client 曾经使用过的 IP 地址

ifconfig-pool-persist ipp.txt

#Bridge 状态下类似 DHCPD 的配置,为客户分配地址,由于这里工作在路由模式,所以不使用

;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100

# 随机选择一个 Server 连接,否则按照顺序从上到下依次连接

;remote-random

# 始终重新解析 Server 的 IP 地址(如果 remote 后面跟的是域名) ,

# 保证 Server IP 地址是动态的使用 DDNS 动态更新 DNS 后,Client 在自动重新连接时重新解析 Server 的

IP 地址

# 这样无需人为重新启动,即可重新接入 ***

resolv-retry infinite

# 在本机不邦定任何端口监听 incoming 数据,Client 无需此操作,除非一对一的 *** 有必要

nobind

# 如果你使用 HTTP 代理连接 *** 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 选项

# 防止 *** client 使用他们的 keys + DNS hack 欺骗 *** client 连接他们假冒的 *** Server

# 因为他们的 CA 里没有这个扩展

ns-cert-type server

a.定义 tun 为使用路由方式的 ***

b.小心处理证书的路径,.key 文件要保存好,特别是 ca.key。

(ca.key 不需要在 Open*** 中用到,可以另外保存)

注意,每个虚拟 tun 网卡都是成对的,只有 inet addr 标识的才是用于 *** 通讯。并且必须在/30 网段

客户 客户端 文件 配置 服务 信息 地址 路由 用户 证书 日志 网段 密码 服务器 用户名 端口 路径 监听 认证 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网金融 科技创新 互联网科技公司名称 联恩商钥互联网科技有限公司 全球顶尖互联网科技公司 互联网5g黑科技有哪些 消费医药和互联网科技 互联网新科技动漫ppt素材 东莞新华互联网科技学校 互联网科技创新的路径 高科技互联网发展前景如何 国大互联网教育科技有限公司薪资 小米互联网科技园入驻 上海钢联属于互联网科技股吗 伍佰万互联网科技怎么赚钱 深圳互联网科技的发展 张召忠谈中国互联网科技 互联网时代高科技布局 安徽零酒互联网科技有限公司 互联网对科技影响 瑞安市蟠桃会互联网科技有限公司 互联网科技有限公司 北京路客互联网科技有限公司 科技互联网公司装修 北京互联网科技公司 狮子座互联网科技 中国互联网金融科技基金 科技伦理 互联网公司 江苏南京365互联网科技 江苏苏星互联网科技有限公司 上海乐五互联网科技有限公司
0