ajas
(usa Debian)
Enviado em 15/08/2008 - 17:45h
Senhores,
Estou usando o seguinte script de firewall para amarrar ip ao mac, com isso não está funcionando quando um usuario troca seu ip para um que esteja com status A ( liberado ) o mesmo funciona mesmo com o mac diferente. Alguél pode me ajudar a solucionar este problema?
Obrigado!
Parte do script do meu firewall:
amarrar ip ao mac
MACLIST="/etc/configuracao_personalizada/macsliberadosfirewall"
for i in `cat $MACLIST`; do
#aqui cada linha do maclist é atribuída de cada vez
STATUS=`echo $i | cut -d ';' -f 1`
#o comando echo exibe o conteúdo da variável e o pipe "|" repassa a saída para outro comando,
# o cut por sua vez reparte cada linha em pedaços onde o delimitador (-d) é o ';' no parâmetro
#-f imprime na tela conteúdo da 1º coluna (status), a saída deste é enviada para STATUS;
IPSOURCE=`echo $i | cut -d ';' -f 2`
MACSOURCE=`echo $i | cut -d ';' -f 3`
MARK=`echo $IPSOURCE | cut -d '.' -f 4`
# neste caso o IPSOURCE e o MACSOURCE recebem as outras colunas da mesma linha, faço uma
#ressalva para o nome do computador que eu coloquei apenas para a organização do maclist,
#pois neste do script contará até a 3º coluna.
#aqui neste caso o comando if está dentro do laço for
#Se status = a então iptables libera a conexão através destes comandos construídos na tabela filter
if [ $STATUS = "a" ]; then
$IPTABLES -t filter -A FORWARD -d 0/0 -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT
$IPTABLES -t filter -A FORWARD -d $IPSOURCE -s 0/0 -j ACCEPT
$IPTABLES -t filter -A INPUT -s $IPSOURCE -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPTABLES -t filter -A OUTPUT -s $IPSOURCE -d 0/0 -j ACCEPT
$IPTABLES -t filter -A OUTPUT -s 0/0 -d $IPSOURCE -j ACCEPT
$IPTABLES -t mangle -A PREROUTING -s $IPSOURCE -j MARK --set-mark $MARK
# Se for = b então bloqueia o MAC, ele só executa este comandos se STATUS não for igual a "a".
elif [ $STATUS = "b" ]; then
$IPTABLES -t filter -A FORWARD -m mac --mac-source $MACSOURCE -j DROP
$IPTABLES -t filter -A INPUT -m mac --mac-source $MACSOURCE -j DROP
$IPTABLES -t filter -A OUTPUT -m mac --mac-source $MACSOURCE -j DROP
else
$IPTABLES -t filter -I INPUT -s $IPSOURCE -j DROP
$IPTABLES -t filter -I FORWARD -s $IPSOURCE -d 0/0 -j DROP
$IPTABLES -t filter -I FORWARD -s 0/0 -d $IPSOURCE -j DROP
$IPTABLES -t filter -I OUTPUT -d $IPSOURCE -j DROP
fi #fim do elif
done #fim do for
echo "Ativado a amarração do ip ao mac"
echo "ON .................................................[ OK ]"