深入 OpenVPN 的配置 前面已经比较详细的说明了OpenVPN 的使用和配置,但在实际使用中,可能还会遇到很多网络上的问题,今天就再举几个例子说明一下。 一、案例1 针对不同的客户端指定不同的等级和权限。通常的方法是: 1、每个客户端分配不同的IP 地址; 2、利用防火墙对不同的IP 地址进行控制; 例如: 引用 1、公司内部网段是 10.66.4.0/24; 2、所有人允许访问Email 服务器为 10.66.4.4,但不能访问其他服务器; 3、特定的客户组允许访问Samba 服务器为 10.66.4.12,不能访问其他服务器; 4、管理员能访问所有公司内网服务器。 根据上述的要求,我们可以对 OpenVPN 服务端进行配置:(而不需要修改客户端配置文件) 引用 server.conf 增加: #10.8.0.0 是给所有 VPN 客户端的IP 段; server 10.8.0.0 255.255.255.0 #10.8.1.0 是给管理员分配的IP 段; server 10.8.1.0 255.255.255.0 #10.8.2.0 就是给特定用户组分配的IP 段; server 10.8.2.0 255.255.255.0 #下面是定义服务器读取特殊客户端配置文件的目录为ccd; client-config-dir ccd 通过上面的配置,今后我们就可以对指定的客户进行特殊的定义了。配置文件应该放在ccd 目录下: 引用 ccd/sysadmin1: ifconfig-push 10.8.1.1 10.8.1.2 引用 ccd/contractor1: ifconfig-push 10.8.2.1 10.8.2.2 引用 ccd/contractor2: ifconfig-push 10.8.2.5 10.8.2.6 ※注意: 1、文件名就是客户的Common Name,OpenVPN 是根据该名称来获得指定客户端的; 2、客户端的IP 地址不是任意指定的,由于 Windows 的TAP 驱动必须采用/30 网段的IP,为兼容该协议,应从特定的IP 地址中选择,而且是成组出现的;(可参考第一份文章附录介绍) 那最后,剩下的就是用iptables 防火墙做限制即可:(假设PLOICY为Deny) iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ACCEPT iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPT iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.66.4.12 -j ACCEPT 二、案例 2 让客户端内部子网可与服务端内部网互通,其实也就是实现点对点互连了。 引用 要求如下: 1、客户端的子网网段必须唯一; 2、客户端的Common Name要唯一,而且不能在服务器的配置文件中配置有 duplicate-cn; 3、客户端打开 IP Forw...