我正在build立一个有很多小设备的VPNnetworking(运行OpenWRT)。 在我的使用情况下,设备都是由一个数字标识,我希望他们的IP地址匹配他们的ID(例如:设备号码6将有一个IP在XXX6)。
我知道client-config-dir和ifconfig-push但我不能使用它们,因为我的所有设备使用相同的证书( duplicate-cn已启用)。 这是一个要求,因为为每个设备生成一个证书将是太约束(而且,如果我们添加一个设备在系统中,我们不想改变VPN服务器的configuration)
是否可以在客户端configuration文件中设置IP地址? 我没有发现有关该特定主题的文档中的任何内容……而我所尝试的所有内容都没有成功。
基本上,我想到的是以下几点:
您应该可以使用ifconfig-pool-persistconfiguration选项来执行此操作。 您可以预先configuration文件,并设置seconds = 0告诉OpenVPN只读取文件。
我们使用它来确保同一用户在通过VPN连接时被分配相同的IP用于审计目的。
从手册页 :
–ifconfig-pool-persist file [seconds]以秒为间隔(默认值= 600)持续/不执行ifconfig-pool数据,以及程序启动和closures。 此选项的目标是在客户端(由其通用名称表示)和从ifconfig-pool分配给它们的虚拟IP地址之间提供长期关联。 保持长期联系对于客户是有利的,因为它允许他们有效地使用–persist-tun选项。
文件是逗号分隔的ASCII文件,格式为,。
如果秒数= 0,文件将被视为只读。 如果您想将文件视为configuration文件,这非常有用。
请注意,基于过去的通用名称和IP地址之间的关联,此文件中的条目仅由OpenVPN作为build议处理。 他们不保证给定的通用名称将永远收到给定的IP地址。 如果你想保证分配,使用–ifconfig-push
我有一些configuration像@jas_raj的问题。 现在我正在做下一个:
1)在/ etc / openvpn中新build一个文件夹。 例如“ dir ”
2)server.conf添加行“ client-config-dir dir / ”
3)在“目录”里面,你需要创build一个新的文件,其名称与你在cert **中写的相同,并input:
ifconfig-push IP MASK
例如: ifconfig-push 10.0.0.10 255.0.0.0
假设我们正在build立一个公司的VPN,我们想为3个不同类别的用户build立单独的访问策略:
System administrators -- full access to all machines on the network Employees -- access only to Samba/email server Contractors -- access to a special server only
我们将采取的基本方法是:(a)将每个用户类别分成它自己的虚拟IP地址范围;(b)通过设置locking客户端虚拟IP地址的防火墙规则来控制对机器的访问。
在我们的例子中,假设我们有可变数量的雇员,但是只有一个系统pipe理员和两个承包商。 我们的IP分配方法是将所有员工放入一个IP地址池,然后为系统pipe理员和承包商分配固定的IP地址。
请注意,这个例子的先决条件之一是你有一个运行在OpenVPN服务器机器上的软件防火墙,它使你能够定义特定的防火墙规则。 对于我们的例子,我们将假设防火墙是Linux的iptables。
首先,根据用户类创build一个虚拟IP地址图:
Class Virtual IP Range Allowed LAN Access Common Names Employees 10.8.0.0/24 Samba/email server at 10.66.4.4 [variable] Sys Admins 10.8.1.0/24 Entire 10.66.4.0/24 subnet sysadmin1 Contractors 10.8.2.0/24 Contractor server at 10.66.4.12 contractor1, contractor2
接下来,让我们把这个地图转换成OpenVPN服务器configuration。 首先,确保你已经按照上述步骤使所有客户端都可以使用10.66.4.0/24子网(虽然我们将configuration路由以允许客户端访问整个10.66.4.0/24子网,但是我们会强制使用防火墙规则来实现上述策略表的访问限制)。
首先,为我们的tun接口定义一个静态单元号,以便我们稍后可以参考我们的防火墙规则:
dev tun0
在服务器configuration文件中,定义员工IP地址池:
server 10.8.0.0 255.255.255.0
为系统pipe理员和承包商IP范围添加路由:
route 10.8.1.0 255.255.255.0 route 10.8.2.0 255.255.255.0
因为我们将为特定的系统pipe理员和承包商分配固定的IP地址,我们将使用客户端configuration目录:
client-config-dir ccd
现在在ccd子目录中放置特殊的configuration文件,为每个非员工VPN客户端定义固定的IP地址。 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
每对ifconfig-push地址代表虚拟客户端和服务器IP端点。 它们必须从连续/ 30个子网中取得,以便与Windows客户端和TAP-Windows驱动程序兼容。 具体来说,每个端点对的IP地址中的最后一个八位字节必须从该集合中取出:
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]
这完成了OpenVPNconfiguration。 最后一步是添加防火墙规则来完成访问策略。 资料来源: https : //openvpn.net/index.php/open-source/documentation/howto.html#policy