基于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 发布于:2019-11-06 01:52:34