Oi pessoal,
Gostaria que os colegas desta lista analisassem este script, p/ encontra algum linha com erro e tb me ajudasse a resolver um outro problema. Este script foi criado p/ bloquear e liberar o acesso a rede através do MACADDRESS da placa de rede, vc vão poder entender melhor este script acessando este site http://www.linuxit.com.br/section-viewarticle-154.html.
O problema:
Na minha rede tenho um servidor de proxy transparente utilizando a porta 3128, bem, estou querendo incorpora o controle p/ o proxy coisa que já tinha mais não funciona na pratica, pelo que notei o script original esta com bug, Estou querendo que a porta 3128 seja bloqueado p/ todo, e só depois liberado p/ os ips ou mac que estão no arquivo MACLIST.
Grato,
Exemplo do MACLIST
a;00:21:ab:0d:ef:bb;192.168.0.2;cliente1
b;21:AD:dc:00:ff:10;192.168.0.3;cliente2
---------------------------------------- INICIO DO SCRIPT -----------------------------------------
#!/bin/bash
IPT=/sbin/iptables
PROGRAMA=/etc/init.d/macip
NET_IFACE=eth0
LAN_IFACE=eth1
MACLIST=/etc/maclist
case $1 in
start)
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -t nat -F
$IPT -t nat -Z
$IPT -F
$IPT -Z
# Ordem certa do script
#$IPT -t filter -P FORWARD DROP
$IPT -P FORWARD DROP
for i in `cat $MACLIST`;
do
STATUS=`echo $i | cut -d ';' -f 1`
MACSOURCE=`echo $i | cut -d ';' -f 2`
IPSOURCE=`echo $i | cut -d ';' -f 3`
IDUSER=`echo $i | cut -d ';' -f 4`
if [ $STATUS = "a" ]; then
$IPT -t nat -A POSTROUTING -s $IPSOURCE -j MASQUERADE
$IPT -A FORWORD -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -A FORWORD -d $IPSOURCE -j ACCEPT
fi
if [ $STATUS = "d" ]; then
$IPT -t nat -A POSTROUTING -s $IPSOURCE -j MASQUERADE
$IPT -A FORWORD -s $IPSOURCE -j ACCEPT
$IPT -A FORWORD -d $IPSOURCE -j ACCEPT
fi
if [ $STATUS = "b" ]; then
$IPT -A FORWORD -m mac --mac-source $MACSOURCE -j DROP
$IPT -A INPUT -m mac --mac-source $MACSOURCE -j DROP
$IPT -A OUTPUT -m mac --mac-source $MACSOURCE -j DROP
fi
done
;;
stop)
$IPT -F
$IPT -Z
$IPT -t nat -F
$IPT -t nat -Z
;;
restart)
$PROGRAMA stop
$PROGRAMA start
;;
esac