基于iptables下OpenVPN访问权限控制

最近有博友咨询关于OpenVPN的用户访问权限控制的问题,即当用户连接进来以后,怎么去控制他的权限,我这里采用了一个脚本的方式自动添加,其它就是采用iptables的三层功能做路由与端口的访问控制,这里将这个shell分享出来,希望对有需要的朋友可以提供帮忙。

权限控制:

read -p "请选择您要做的操作:" caozuo
case $caozuo in
1) read -p "请输入您需要添加ERP访问权限的用户:" vpnuser
   while [ ! `more /etc/openvpn/staticip.txt | grep -w $vpnuser` ]
   doread -p "您需要添加权限的用户$vpnuser还未进行过首次登录,请让其登录一次再进行设置,请重新输入要添加权限的用户,退出请按Ctrl+C:" vpnuser
   done
     vpnuserip=`more /etc/openvpn/staticip.txt | grep $vpnuser | awk -F ‘,‘ ‘{print $2}‘`
        vpnuseripold=`more /etc/sysconfig/iptables | grep "$vpnuserip/32 -d 192.168.1.111/32 -p tcp -m tcp --dport 23 -j ACCEPT" | wc -l`if [ "$vpnuseripold" -ge "1" ]; thenread -p "您要添加权限的用户$vpnuser已经具有访问ERP的权限,不需要重复添加,按回车键退出"exitfi
     service iptables restart > nul
     iptables -I FORWARD 2 -p tcp -s $vpnuserip -d 192.168.1.111 --dport 23 -j ACCEPT
     echo " 您已经成功添加用户$vpnuser具有ERP访问权限"
     service iptables save > nul
;;

权限查看:

4) read -p "请输入要查询权限的用户名:" vpnuser
   while [ ! `more /etc/openvpn/staticip.txt | grep -w $vpnuser` ]
   doread -p "您输入用户名不存在,请重新输入用户名,退出请按Ctrl+C:" vpnuser
   done
   vpnuserip=`more /etc/openvpn/staticip.txt | grep $vpnuser | awk -F ‘,‘ ‘{print $2}‘`
   echo "您查询的用户$vpnuser具有以下访问权限:"
   more /etc/sysconfig/iptables | grep $vpnuserip | awk -F "" ‘{print $6,$12}‘ | sed -e ‘s\/32\端口号:\g‘
;;
操作界面:
操作演示:

基于iptables下OpenVPN访问权限控制

时间: 2024-12-26 17:26:00

基于iptables下OpenVPN访问权限控制的相关文章

使用nginx和iptables做访问权限控制(IP和MAC)

之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et

基于资源名的MVC权限控制

在程序复杂程度不断上升的过程中,无可避免需要触碰到权限控制,而权限控制又与业务逻辑紧紧相关,市场上出现了大量的权限控制产品,而程序的开发,讲究去繁化简的抽象,在我的开发过程中,逐渐发现程序的权限控制核心不外乎两个方面:1.资源定位:2.访问控制列表.本文主要针对资源定位进行分析,并解决一些我所遇见过的问题.而在MVC上,MVC提供给我们了非常好的访问控制扩展机制,我们能够通过这些机制更好地控制系统权限. 在我们之前的开发中,针对ASP.NET下WebForm进行开发,很多人都采用了继承Page基

利用基于@AspectJ的AOP实现权限控制

一. AOP与@AspectJ AOP 是 Aspect Oriented Programming 的缩写,意思是面向方面的编程.我们在系统开发中可以提取出很多共性的东西作为一个 Aspect,可以理解为在系统中,我们需要很多次重复实现的功能.比如计算某个方法运行了多少毫秒,判断用户是不是具有访问权限,用户是否已登录,数据的事务处理,日志记录等等. AOP的术语 连接点(Joinpoint) 程序执行的某个特殊位置:比如类开始初始化前,类初始化后,某个方法调用前,调用后等. 连接点 可 以 理解

基于Vue实现后台系统权限控制

原文地址:http://refined-x.com/2017/08/29/基于Vue实现后台系统权限控制/,转载请注明出处. 用Vue/React这类双向绑定框架做后台系统再适合不过,后台系统相比普通前端项目除了数据交互更频繁以外,还有一个特别的需求就是对用户的权限控制,那么如何在一个Vue应用中实现权限控制呢?下面是我的一点经验. 权限控制是什么 在权限的世界里服务端提供的一切都是资源,资源可以由请求方法+请求地址来描述,权限是对特定资源的访问许可,所谓权限控制,也就是确保用户只能访问到被分配

CloudStack API访问权限控制

在我写开始之前,请先看下CS中国社区的一篇文章http://www.cloudstack-china.org/2012/12/1465.html,在第1点里讲了关于权限级别,command属性文件位置等问题.不过4.3现在的除了command.properties外,作者提到的其它properties文件现在好像都没有了,而且command里面现在形如***command=15,"="后面不再有处理请求命令的类. API请求由ApiServlet拦截后,会调用verifyRequest

Java访问权限控制

访问权限控制   java提供了访问权限修饰词,以供类库开发人员向客户端程序员指明哪些是可用的,哪些是不可用的.访问权限控制的等级,从最大权限到最小权限依次是:public.protected.包访问权限(没有关键字).private. 包:库单元 包内有一组类,它们在单一名字空间之下被组织在了一起.如果你向导入某个标准库中的类的话,可以使用import关键字.我们之所以要导入,就是要提供一个管理名字空间的机制.所有类成员的名称都是彼此分离的.所以具有相同方法的不同类在程序运行时不会出现错误的.

MongoDB 访问权限控制

MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:--bind_ip <ip address> 默认值是所有的IP地址都能访问,该参数指定MongoDB对外提供服务的绑定IP地址,用于监听客户端 Application的连接,客户端只能使用绑定的IP地址才能访问mongod,其他IP地址是无法访问的. 2,设置监听端口 mongod 参数:--por

ProFTPD配置匿名登录与目录访问权限控制

对ProFTPD服务器配置匿名登录. 查看配置文件proftpd.conf.默认情况下配置文件中的,匿名登录配置User和Group均为ftp.查看/etc/passwd确认用户ftp,是否存在.命令行输入id ftp,查看用户ftp的所在组.查看/etc/group,确定用户组ftp是否存在. 上述步骤中,如果缺少用户或组,新建即可. User    ftp Group ftp UserAlias   anonymous ftp   #设置匿名用户以ftp身份登录 --------------

Java 访问权限控制:你真的了解 protected 关键字吗?

摘要: 在一个类的内部,其成员(包括成员变量和成员方法)能否被其他类所访问,取决于该成员的修饰词:而一个类能否被其他类所访问,取决于该类的修饰词.Java的类成员访问权限修饰词有四类:private,无(默认情况下,包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外).特别地,很多的介绍Java的书籍对protected介绍的比较笼统,常常会对大家造成误解.因此,本文重点揭示了 protected 关键字的内涵和用法,并介绍了一些其他