思路:OPENPVN拨入后 给不同的用户分配指定的IP 然后通过iptables对不同的IP控制不同的访问。
比如 需求:
1 管理员用户 拨入openvpn后能够访问所有的主机
2 临时用户A拨入openvpn后只能访指定的主机 A
3 用户B 拨入后只能能够访问所有服务器1433端口
实现方法:
vi /etc/openvpn/openvpn.conf
***************************************
..........
.........
.........
server 192.168.90.0 255.255.255.0 #给所有用户的
server 192,168.91.0 255.255.255.0#给管理员的
server 192.168.92.0 255.255.255.0#给特殊用户的
client-config-dir /etc/openvpn/vip
然后在/etc/openvpn/vip 目录下以 管理员、用户a 、用户b的Common Name为文件名的文件
文件内容为,
假设管理员的common name admin 特殊用户a的common name 是 usera 特殊用户b的common name userb
则
/etc/openvpn/vip/admin内容为
*****************************************************
ifconfig-push 192.168.91.1 192.168.91.2
******************************************************
/etc/openvpn/vip/usera内容为
*****************************************************
ifconfig-push 192.168.92.1 192.168.92.2
******************************************************
/etc/openvpn/vip/userb内容为*****************************************************
ifconfig-push 192.168.92.5 192.168.91.5
******************************************************
**************************************************************************************
Each pair of ifconfig-push addresses represent the virtual client and server IP endpoints. They must be taken from successive /30 subnets in order to be compatible with Windows clients and the TAP-Win32 driver. Specifically, the last octet in the IP address of each endpoint pair must be taken from this set: |
[ 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]
*************************************************************************************************************
然后 vi/etc/sysconfig/iptables
*****************************************
-A FORWARD -i tun+ -s 192.168.91.2/32 -d 192.168.30.0/24 -j ACCEPT #管理员能够访问所有主机
-A FORWARD -i tun+ -s 192.168.92.2/32 -d 192.168.30.27/32 -j ACCEPT#用户a能够访问主机30.27
-A FORWARD -i tun+ -p tcp -s 192.168.92.4/32 --dport 1433 -j ACCEPT# 用户b能够访问所有主机的1433
**********************************************
当然 须要在所有主机上增加路由
192.168.90.0 via IP_openvpn eth0
192.168.91.0 via IP_openvpn eth0
192.168.92.0 via IP_openvpn eth0