2024年4月15日发(作者:)
Linux下OpenVPN的两种用户访问控制方法
摘要:该文以openvpn中的用户访问控制为研究对象,具体分析
了两种用户访问控制方法,即包过滤方法和iptables的防火墙规
则方法,前者可以实现基于ip和基于用户的两种访问控制,而后
者只能实现基于ip地址的访问控制,但是后者可以实现针对单个
用户和针对用户的访问控制;进一步,给出保存网络用户访问日志
的方法和步骤,以提高网络使用的安全性和可溯源性。
关键词:openvpn;访问控制;用户日志;linux
中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)
11-2555-02
1 vpn及openvpn定义
vpn(virtual private network, vpn)是通过公共网络建立的
一个临时的安全链接,是一条通过不安全公共网络而建立起来的安
全和专用的网络数据隧道。vpn可以帮助远程用户、公司分支机构
以及其他应用客户同公司内部网络建立的可信安全链接,是企业内
部网络的一种有效延伸,可以保证关键数据的安全传输。
vpn的使用原理是基于tcp/ip协议中的隧道协议,客户端对vpn
服务器上的虚拟端口进行虚拟呼叫,在典型的vpn应用环境中,一
般由客户端通过internet发起对远程服务器的虚拟点对点链接,
远程服务器应答呼叫,通过对客户端的身份验证,建立vpn客户端
与组织内部网络之间的数据链接。常用的隧道协议包括ipsec (ip
security),pptp(point to point tunneling protocol),l2f(layer
2 forwarding,第二层转发协议),l2tp(layer 2 tunneling
protocol,第二层隧道协议),这四种协议具有信息封装、身份验
证以及数据加密属性。
openvpn是一个健全且高效的vpn守护进行,它支持ssl/tls安
全、以太网桥,并同时支持tcp或udp代理传输以及动态ip地址
和dhcp,具备移植到大多数操作系统平台上,因此可以支持大规模
数量的用户。一般情形下,在openvpn中的通道模式中主要有两种
模式方法:第一种,是默认情形,默认情形下openvpn运行在点对
点(p2p)模式下;第二种,server模式,在server模式下openvpn
运行在多客户端服务器模式。在点对点模式中,网络中只有两台主
机:一个是openvpn服务器,另一个是openvpn客户端;在server
模式中,有一个openvpn服务器和多个客户端。通过命令—mode m
可以查看相应的通道模式。
2 vpn的用户访问控制模式
在openvpn中主要有两种用户访问控制访问方法:使用包过滤机
制和使用iptables防火墙机制,下面分别对两种用户访问控制方
法进行介绍。
2.1 基于包过滤的访问机制
openvpn的包过滤策略由配置文件或者buffer来指定,格式如下:
[subnets drop|accept]
+|-ip地址/掩码位
…
[end]
其中[subnets]标记程序段的开始,而[end]标记其结束位置。
subnets后跟默认的访问控制策略:accept或drop,下面就是正文。
正文的开头由+号或者-号标记,后根标准的ip地址 ,+号表示允
许访问,-号表示不允许。例如以下的linux配置:
[root@slave pf] # cat
[clients accept]
-client3
[subnets accept]
-192.168.10.7
+192.168.10.0/24
[end]
在这个配置文件中,相应的规则为client2不能和client3连接,
同时client2不能访问192.168.10.7这个ip所在的主机。
可以看出,基于包过滤的用户访问控制方式不仅可以实现基于ip
的访问控制,还可以实现基于用户的访问控制。
2.2 基于iptables防火墙规则的访问控制
对vpn的用户访问控制除了使用包过滤机制以外,还可以使用
linux下的防火墙iptables进行访问限制。由于iptables工作在
tcp/ip七层协议的第三层(网络层),因此只能通过ip地址来限制
用户访问,这里的ip地址包括用户端的ip地址和被访问资源的ip
地址。
在基于iptables的访问控制情形下,也有两种策略:第一种,
针对单个用户设置iptables策略;第二种,是针对vpn用户组设
置iptables策略。但是不论是哪一种,都需要对系统的ccd文件
进行设置,因为ccd控制着用户的ip地址。
下面举例说明两种策略的设置方法。
1) 针对单个用户的iptables策略
例1 要求用户**************具有以下权限:仅允许访问
192.168.10.9的80端口;不允许访问192.168.10.19的139端口。
则相应的命令编辑格式为:
[root@slave ~] # iptables –a forward –p tcp –s
10.2.0.4 –d 192.168.10.9 —dport ! 80 –j -drop
[root@slave ~] # iptables –a forward –p tcp –s
10.2.0.4 –d 192.168.10.19 —dport 139 –j -drop
其中10.2.0.4为**************可以获取的ip地址。
2) 针对用户组的iptables策略
在这里所说的用户组是指根据vpn用户在登陆openvpn时所获取
的ip地址来分类的用户组,为了实现这种机制的用户组分类就必
须满足两个条件:首先,同一组的用户获取的ip地址需要具备一
个共同的特点,常见的处理方式为让每一组的用户都获取同一个网
段的ip地址,这样就通比较方便地通过iptables设置进行访问管
理;其次,要求每组用户必须具备共同的访问资源,这个条件决定
了有多少个组。
下面同样以一个示例说明相应的设置方法。
例2 要求a组用户(ip地址网段10.2.0.0)可以访问
192.168.10.9的80端口,则相应设置为:
a=10.2.0.0
destination=192.168.10.0
iptable -a forward –p tcp –s $a –d $destination —dport
80 –j accept
iptables –a forward –p tcp –s $a –d $destination —
dport 139 –j accept
3 用户访问日志
为了进一步增加网络用户访问的安全性和可溯性,可以通过添加
相应的命令设置来达到用户访问日志的保存功能。
下面给出一个用户访问日志保存的一般方法和步骤:
step1: 建立openvpn的建立链接和断开链接文件;
1)建立/etc/openvpn/connect脚本文件,文件内容如下所示
#!/bin/bash
day=`date +%f`
if [ -f /var/log/openvpn/$day ];then
echo “`date ‘+%f %h:%m:%s’` user $common_name ip
$trusted_ip is logged in” >>/var/log/openvpn/$day
else
touch /var/log/openvpn/$day
echo “`date ‘+%f %h:%m:%s’` user $common_name ip
$trusted_ip is logged in” >>/var/log/openvpn/$day
fi
2)建立/etc/openvpn/disconnect脚本文件,文件内容如下所示
#!/bin/bash
day=`date +%f`
if [ -f /var/log/openvpn/$day ];then
echo “`date ‘+%f %h:%m:%s’` user $common_name ip
$trusted_ip is logged off” >>/var/log/openvpn/$day
else
touch /var/log/openvpn/$day
echo “`date ‘+%f %h:%m:%s’` user $common_name ip
$trusted_ip is logged off” >>/var/log/openvpn/$day
fi
3) 最后将这两个脚本赋予执行权限
chmod +x /etc/openvpn/connect
chmod +x /etc/openvpn/disconnect
step2: 修改openvpn服务器配置文件,启用脚本。
这样,就会在/var/log/openvp目录下保存文件名类似于
“2013-04-03”日期格式的文件,该文件记录了每一天登陆openvpn
的用户的信息,包括用户名和登陆时间。
4 小结
本文以linux环境下openvpn的用户访问控制为研究对象,细述
了基于包过滤和基于iptables的防火墙规则的用户访问控制模式,
并对每种模式下的用户访问控制进行举例编程说明,最后从网络安
全和可溯源的角度出发,研究了用户访问日志按日期保存的方法,
并给出了具体的设计步骤。
参考文献:
[1] 徐旭东,初鹏飞. 一种改进的openvpn访问控制管理机制[j].
现代计算机(专业版) , 2011(3).
[2] 芮国荣,邢桂芬.基于角色和规则的访问控制[j].计算机应
用,2005(4).
[3] 刘淼,郭荷清.在java应用中实现对象级访问控制的研究[j].
计算机应用与软件,2005(4).
[4] 陈劲..访问控制技术的研究[j].福建电脑, 2005(3).
[5] 张美茹,王艳瑞.校园网安全控制策略分析[j].科技信息(科
学教研) , 2007(13).


发布评论