最近有博友咨询关于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