内容发布更新时间 : 2025/1/10 4:36:11星期一 下面是文章的全部内容请认真阅读。
openvpn中server.conf和client.conf配置文件详解
(一),服务器端配置server.conf
port 1194
#申明使用的端口,默认1194 proto tcp ;protoudp
#申明使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议 ;dev tap //二层设备
devtun //能路由的设备
#申明使用的设备可选tap和tun,tap是二层设备,支持链路层协议。tun是ip层的点对点协议
ca /etc/openvpn/easy-rsa/keys/ca.crt
#OpenVPN使用的ROOT CA,使用build-ca生成的,用于验证客户是证书是否合法
cert /etc/openvpn/easy-rsa/keys/centos.crt #Server使用的证书文件
key /etc/openvpn/easy-rsa/keys/centos.key
#Server使用的证书对应的key,注意文件的权限,防止被盗
dh /etc/openvpn/easy-rsa/keys/dh2048.pem # 迪菲·赫尔曼密钥
auth-user-pass-verify /etc/openvpn/sbwml.sh via-env #openvpn客户端以账号,密码的方式登陆验证账户信息主要sbwml.sh脚本,里面有密码文件的路径设置(文件的账户,密码同占一行,之间用空格隔开。)
client-cert-not-required
#只使用用户名密码方式验证登录,如果不加,则代表需要证书和用户名密码双重验证登录!
username-as-common-name
#多用户同时登陆时可用同一账户
ifconfig-pool-persist ipp.txt
#防止openvpn重新启动后“忘记”Client曾经使用过的IP地址
server 10.8.0.0 255.255.255.0等行push “route 10.8.0.0 255.255.255.0″
#把这条路由发送给客户端,客户连接成功后自动加入路由表,省略了下一跳地址: 10.8.0.1
使用push指令在连接时推送到客户端来
push “route 10.8.0.0 255.255.255.0″
#把这条路由发送给客户端,客户连接成功后自动加入路由表,省略了下一跳地址: 10.8.0.1 当客户拔上opnvpn后,可以在系统里看到路由
push \
#使Client的默认网关指向VPN,让Client的所有Traffic都通过VPN走
push \push “dhcp-option DNS 8.8.4.4”
#将dns服务器推送到客户端,如果没有,当使用openvpn时无法解析域名
duplicate-cn
#如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA,换句话说,允许多客户端同CA或common name同时登陆如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
client-to-client
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
keepalive 10 120
#keepalive指令将导致类似于ping命令的消息被来回发送,以便于服务器端和客户端知道对方何时被关闭,每10秒钟ping一次,如果120秒内都没有收到对方的回复,则表示远程连接已经关闭。
comp-lzo
#对数据进行压缩,注意Server和Client一致
persist-key persist-tun
# 持久化选项可以尽量避免访问那些在重启之后由于用户权限降低而无法访问的某些资源 ;user nobody ;group nobody
# 在完成初始化工作之后,降低OpenVPN守护进程的权限是个不错的主意,该指令仅限于非Windows系统中使用。
status openvpn-status.log
# 输出一个简短的状态文件,用于显示当前的连接状态,该文件每分钟都会清空并重写一次。
log /var/log/openvpn.log
#记录日志,每次重新启动openvpn后删除原有的log信息
log-append openvpn.log
和log一致,每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后
tls-authta.key 0 # 该文件应该保密
# 出于SSL/TLS之外更多的安全考虑,创建一个\防火墙\可以帮助抵御DoS攻击和UDP端口淹没攻击。 # 你可以使用以下命令来生成:
# openvpn --genkey --secret ta.key
# 服务器和每个客户端都需要拥有该密钥的一个拷贝。 # 第二个参数在服务器端应该为'0',在客户端应该为'1'。
verb 3
# 为日志文件设置适当的冗余级别(0~9)。冗余级别越高,输出的信息越详细。 # 0 表示静默运行,只记录致命错误。 # 4 表示合理的常规用法。
# 5 和 6 可以帮助调试连接错误。
# 9 表示极度冗余,输出非常详细的日志信息
;mute 20
# 重复信息的沉默度。
# 相同类别的信息只有前20条会输出到日志文件中。
;max-clients 100
# 允许并发连接的客户端的最大数量
mode server
#OpenVPN工作在Server模式,可以支持多client同时动态接入
tls-server
#使用TLS加密传输,本端为Server,Client端为tls-client
ifconfig 10.8.0.1 10.8.0.2 #设置本地tun设备的地址
ifconfig-pool 10.8.0.4 10.8.0.251
#说明OpenVPN使用的地址池(用于分配给客户),分别是起始地址、结束地址
(二)客户端的配置文件
Linux或Unix下使用扩展名为.conf Windows下使用的是.ovpn,并把需要使用的keys复制到配置文件所在目录以window为例:应该需要client.ovpn、ca.crt、client1.crt、client1.key、ta.key
# 申明我们是一个client,配置从server端pull过来,如IP地址,路由信息之类“Server使用push指令push过来的”