早上好,
我需要一些有关服务器特定配置的帮助。假设有两类人将连接到我的 VPN。A 组的人和 B 组的人。我需要他们拥有不同的子网。这两组之间的唯一区别是证书的通用名称。
假设我有两个子网 sub1:10.0.1.0/24 sub2:10.0.2.0/24
A 组中的人员拥有类似 A0000xxx 的证书 B 组中的人员拥有类似 B0000xxx 的证书
我希望 A 组中的人连接到 sub1,B 组中的人连接到 sub2
我考虑过使用 client-config-dir 指令。在客户端连接时,我将使用脚本来确定它们来自 A 组还是 B 组,然后我将创建良好的配置。我的问题是我不知道如何给他们正确的地址。我不想给他们一个固定的 IP,而是希望他们使用动态 IP。
是否可以告诉他们在子网中寻找地址?
谢谢
[编辑]
所以我设法做到了,但我想对此发表一些意见
因此我创建了一个 connect.sh 脚本,该脚本实际上可以做到这一点,但需要进行配置,并且我使用了像这样的客户端配置目录
if [ ! -f configDir/${common_name} ]; then
if ! grep -q "${common_name}" ipp.txt; then
regexCA="^CA.*";
regexFRFDV="^FRFDV.*";
regexFRPC="^FRPC.*";
outSet=255
if [[ ${common_name} =~ $regexCA ]]; then
i=2;
while grep -q "10.0.0.$i" ipp.txt ;
do
if [ $i == $outSet ] ; then
break ;
fi
((i=$i+1));
done
if [ $i == $outSet ] ; then
exit 1;
fi
echo "10.0.0.$i, ${common_name}" >> ipp.txt;
echo "ifconfig-push 10.0.0.$i 255.255.255.0" > configDir/${common_name};
echo "ifconfig-push 10.0.0.$i 255.255.255.0" > $1
else
i=2;
while grep -q "10.0.1.$i" ipp.txt ;
do
if [ $i == $outSet ]
then
break;
fi
((i=$i+1));
done
if [ $i == $outSet ] ; then
exit 1;
fi
echo "10.0.1.$i, ${common_name}" >> ipp.txt;
echo "ifconfig-push 10.0.1.$i 255.255.255.0" > configDir/${common_name};
echo "ifconfig-push 10.0.1.$i 255.255.255.0" > $1
fi
fi
fi
exit 0;
告诉我你对此的看法
答案1
无法在 client-config-dir 配置中创建不同的服务器端子网。
我将通过在不同端口和不同的网络配置上运行两个 OpenVPN 实例来实现这一点。