#!/bin/bash
# script criado por Tiago Andre Geraldi
[email protected]
rm -f /etc/shaper/*
rm /etc/provedor/users.sh
touch /etc/provedor/users.sh
chmod +x /etc/provedor/users.sh
LISTA=`cat /etc/provedor/clientes`
for CLIENTE in $LISTA; do
CODIGO=`echo $CLIENTE | awk -F "|" '{print $1}'`
NOME=`echo $CLIENTE | awk -F "|" '{print $2}'`
IP=`echo $CLIENTE | awk -F "|" '{print $3}'`
CON=`echo $CLIENTE | awk -F "|" '{print $4}'`
DOWN=`echo $CLIENTE | awk -F "|" '{print $5}'`"kbit"
UP=`echo $CLIENTE | awk -F "|" '{print $6}'`"kbit"
MAC=`echo $CLIENTE | awk -F "|" '{print $7}'`
PRIO=`echo $CLIENTE | awk -F "|" '{print $8}'`
STAT=`echo $CLIENTE | awk -F "|" '{print $9}'`
# checa se esta ativado
if [ "$STAT" = "A" ]; then
UPLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME"_upload"
DOWNLOAD="/etc/shaper/cbq-"$CODIGO"."$NOME"_download"
touch $UPLOAD
touch $DOWNLOAD
chown 755 /etc/shaper/*
# eth1 corresponde a interface de rede conectada aos usuarios
# mude se necessario
echo "DEVICE=eth1,100Mbit,10Mbit" >> $UPLOAD
echo "RATE=$CON""KBit" >> $UPLOAD
echo "WEIGHT=$UP" >> $UPLOAD
echo "PRIO=$PRIO" >> $UPLOAD
echo "BOUNDED=yes" >> $UPLOAD
echo "ISOLATED=yes" >> $UPLOAD
echo "MARK=30" >> $UPLOAD
echo "DEVICE=eth1,100Mbit,10Mbit" >> $DOWNLOAD
echo "RATE=$CON""KBit" >> $DOWNLOAD
echo "WEIGHT=$DOWN" >> $DOWNLOAD
echo "PRIO=$PRIO" >> $DOWNLOAD
echo "RULE=""$IP" >> $DOWNLOAD
echo "BOUNDED=yes" >> $DOWNLOAD
echo "ISOLATED=yes" >> $DOWNLOAD
echo "iptables -t nat -A POSTROUTING -s $IP"" -j MASQUERADE" >> /etc/nat/users.sh
echo "iptables -A FORWARD -s $IP"" -j ACCEPT" >> /etc/nat/users.sh
echo "iptables -A FORWARD -d $IP"" -j ACCEPT" >> /etc/nat/users.sh
arp -s $IP $MAC
fi
done
sh /etc/provedor/firewall.sh
/etc/init.d/shaper restart
## FIM DO ARQUIVO ##
O script trabalha com a pasta /etc/shaper onde fica o controle de banda, também usa o arquivo /etc/provedor/users.sh que será criado pelo script e que será lido pelo firewall que criaremos depois. Neste arquivo fica a habilitação de internet para os IPs cadastrados.