/etc/open***/server.conf配置文件相关说明
#Open×××应该监听本机的哪些IP地址?#该命令是可选的,如果不设置,则默认监听本机的所有IP地址。;local a.b.c.d#open***默认端口,建议修改port 1194 #默认启用udp,如果想让Open×××服务端监听一个TCP端口而不是UDP端口,#使用proto tcp而不是proto udpproto tcp;proto udp # 指定Open×××创建的通信隧道类型。# "dev tun"将会创建一个路由IP隧道,# "dev tap"将会创建一个以太网隧道。##如果你是以太网桥接模式,并且提前创建了一个名为"tap0"的与以太网接口进行桥接的虚拟接口,#则你可以使用"dev tap0"## 如果你想控制×××的访问策略,你必须为TUN/TAP接口创建防火墙规则。## 在非Windows系统中,你可以给出明确的单位编号(unit number),例如"tun0"。# 在Windows中,你也可以使用"dev-node"。# 在多数系统中,除非你部分禁用或者完全禁用了TUN/TAP接口的防火墙,否则×××将不起作用。;dev tapdev tun# 如果你想配置多个隧道,你需要用到网络连接面板中TAP-Win32适配器的名称(例如"MyTap")。# 在XP SP2或更高版本的系统中,你可能需要有选择地禁用掉针对TAP适配器的防火墙# 通常情况下,非Windows系统则不需要该指令。;dev-node MyTap# 设置SSL/TLS根证书(ca)、证书(cert)和私钥(key)。# 每个客户端和服务器端都需要它们各自的证书和私钥文件。# 服务器端和所有的客户端都将使用相同的CA证书文件。ca /etc/open***/easy-rsa/2.0/keys/ca.crtcert /etc/open***/easy-rsa/2.0/keys/server.crtkey /etc/open***/easy-rsa/2.0/keys/server.key # 该文件应该保密# 指定迪菲·赫尔曼参数。# 你可以使用如下名称命令生成你的参数:# openssl dhparam -out dh1024.pem 1024# 如果你使用的是2048位密钥,使用2048替换其中的1024。dh /etc/open***/easy-rsa/2.0/keys/dh2048.pemtopology subnet #如不启用,默认会自动划分子网#这里配置的是***为客户端分配地址的网段,#如果你想使用不同于10.8.0.0/24的一个虚拟IP地址范围,则修改 server项。#记住这一虚拟IP地址范围必须是在你的网络上没有使用的,我选择默认。# 如果你使用的是以太网桥接模式,请注释掉该行。更多信息请查看官方手册页面。server 10.8.0.0 255.255.255.0# 指定用于记录客户端和虚拟IP地址的关联关系的文件。# 当重启Open×××时,再次连接的客户端将分配到与上一次分配相同的虚拟IP地址ifconfig-pool-persist ipp.txt# 该指令仅针对以太网桥接模式。# 首先,你必须使用操作系统的桥接能力将以太网网卡接口和TAP接口进行桥接。# 然后,你需要手动设置桥接接口的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# 该指令仅针对使用DHCP代理的以太网桥接模式,# 此时客户端将请求服务器端的DHCP服务器,从而获得分配给它的IP地址和DNS服务器地址。# 在此之前,你也需要先将以太网网卡接口和TAP接口进行桥接。# 注意:该指令仅用于Open×××客户端,并且该客户端的TAP适配器需要绑定到一个DHCP客户端上。;server-bridge#推送路由信息到客户端,以允许客户端能够连接到服务器背后的其他私有子网。#(简而言之,就是允许客户端访问×××服务器自身所在的其他局域网)#记住,这些私有子网也要将Open×××客户端的地址池(10.8.0.0/255.255.255.0)反馈回Open×××服务器。;push "route 192.168.10.0 255.255.255.0";push "route 192.168.20.0 255.255.255.0"# 为指定的客户端分配指定的IP地址,或者客户端背后也有一个私有子网想要访问×××,# 那么你可以针对该客户端的配置文件使用ccd子目录。# (简而言之,就是允许客户端所在的局域网成员也能够访问×××)# 举个例子:假设有个Common Name为"Thelonious"的客户端背后也有一个小型子网想要连接到×××,#该子网为192.168.40.128/255.255.255.248。# 首先,你需要去掉下面两行指令的注释:;client-config-dir ccd;route 192.168.40.128 255.255.255.248# 然后创建一个文件ccd/Thelonious,该文件的内容为:# iroute 192.168.40.128 255.255.255.248#这样客户端所在的局域网就可以访问×××了。# 注意,这个指令只能在你是基于路由、而不是基于桥接的模式下才能生效。# 比如,你使用了"dev tun"和"server"指令。# 再举个例子:假设你想给Thelonious分配一个固定的IP地址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)运行多个Open×××守护进程,每个进程对应一个群组,并为每个进程(群组)启用适当的防火墙规则。# (2) (进阶)创建一个脚本来动态地修改响应于来自不同客户的防火墙规则。# 关于learn-address脚本的更多信息请参考官方手册页面。;learn-address ./script#如果启用该指令,所有客户端的默认网关都将重定向到×××,#这将导致诸如web浏览器、DNS查询等所有客户端流量都经过×××。# (为确保能正常工作,Open×××服务器所在计算机可能需要在TUN/TAP接口#与以太网之间使用NAT或桥接技术进行连接)#push “redirect-gateway def1 bypass-dhcp"#改成:push "redirect-gateway def1" push "redirect-gateway def1" # 某些具体的Windows网络设置可以被推送到客户端,例如DNS或WINS服务器地址。# 下列地址来自opendns.com提供的Public DNS 服务器。push "dhcp-option DNS 202.96.134.133";push "dhcp-option DNS 208.96.128.166"#如果想让连接的客户端可以通过×××互相访问,将client-to-client的注释去掉。# 默认情况下客户端只能访问服务端。打开可能效率高一点。;client-to-client# 如果多个客户端可能使用相同的证书/私钥文件或Common Name进行连接,# 那么你可以取消该指令的注释。# 建议该指令仅用于测试目的。对于生产使用环境而言,每个客户端都应该拥有自己的证书和私钥。# 如果你没有为每个客户端分别生成Common Name唯一的证书/私钥,# 你可以取消该行的注释(但不推荐这样做)。;duplicate-cn# keepalive指令将导致类似于ping命令的消息被来回发送,# 以便于服务器端和客户端知道对方何时被关闭。# 每10秒钟ping一次,如果120秒内都没有收到对方的回复,则表示远程连接已经关闭。keepalive 10 120# 出于SSL/TLS之外更多的安全考虑,创建一个"HMAC 防火墙"可以帮助抵御DoS***和UDP端口淹没***。# 你可以使用以下命令来生成:## Generate with:# open*** --genkey --secret ta.key## 服务器和每个客户端都需要拥有该密钥的一个拷贝。# 第二个参数在服务器端应该为'0',在客户端应该为'1'。;tls-auth ta.key 0 # 该文件应该保密# 选择一个密码加密算法。# 该配置项也必须复制到每个客户端配置文件中。;cipher BF-CBC # Blowfish (默认);cipher AES-128-CBC # AES;cipher DES-EDE3-CBC # Triple-DES# 数据压缩算法,服务器端和客户端要一致comp-lzo# 允许并发连接的客户端的最大数量;max-clients 100#用于运行open***的用户#如果你使用的是Linux、BSD或Unix,则可以将user nobody和group nobody 的注释去掉以增强安全性。;user nobody;group nobody# 持久化选项可以尽量避免访问那些在重启之后由于用户权限降低而无法访问的某些资源。persist-keypersist-tun# 输出一个简短的状态文件,用于显示当前的连接状态,该文件每分钟都会清空并重写一次。status open***-status.log#启用日志#你可以使用log或者log-append来改变这种默认情况。# "log"方式在每次启动时都会清空之前的日志文件。# "log-append"这是在之前的日志内容后进行追加。# 你可以使用两种方式之一(但不要同时使用)。#我选择追加的方式,目录/usr/local/open***/log/下;log open***.log;log-append open***.loglog-append /usr/local/open***/log/open***.log# 为日志文件设置适当的冗余级别(0~9)。冗余级别越高,输出的信息越详细。## 0 表示静默运行,只记录致命错误。# 4 表示合理的常规用法。# 5 和 6 可以帮助调试连接错误。# 9 表示极度冗余,输出非常详细的日志信息。verb 3# 重复信息的沉默度。# 相同类别的信息只有前20条会输出到日志文件中。;mute 20
/etc/open***/server.conf简易配置可直接使用
port 1194 #建议修改proto tcpdev tunca /etc/open***/easy-rsa/2.0/keys/ca.crt cert /etc/open***/easy-rsa/2.0/keys/server.crtkey /etc/open***/easy-rsa/2.0/keys/server.keydh /etc/open***/easy-rsa/2.0/keys/dh2048.pemtopology subnet#这里配置的是***为客户端分配地址的网段,根据需要修改server 10.8.0.0 255.255.255.0 #推送路由信息到客户端,以允许客户端能够连接到服务器背后的其他私有子网。#(简而言之,就是允许客户端访问×××服务器自身所在的其他局域网)#多条请写多条命令;push "route 192.168.10.0 255.255.255.0";push "route 192.168.20.0 255.255.255.0"ifconfig-pool-persist ipp.txtkeepalive 10 120comp-lzopersist-keypersist-tunstatus open***-status.logverb 3
二:设置内核转发
[root@zcdoit ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 0 改为 net.ipv4.ip_forward = 1 #如配置文件没有,则新增加[root@zcdoit ~]# sysctl -p
三:启动open***服务
#在后台启动open***服务[root@zcdoit ~]# /usr/local/open***/sbin/open*** --config /etc/open***/server.conf &