Logo Hardware.com.br
pablocontrol
pablocontrol Super Participante Registrado
704 Mensagens 2 Curtidas

Utilização do modulo mac no iptables não funciona

#1 Por pablocontrol 13/04/2012 - 09:47
Bom dia a todos!

A não ser que eu esteja errado, quando eu digo no modulo que tal IP apenas poderá trafegar dados em conjunto com tal endereço mac, se eu modificar o IP manualmente, não era para deixar de navegar?

Ambiente:

Ubuntu server
- DHCP com MAC dos hosts cadastrados
- Squid proxy transparente
- iptables


Como aqui temos uma grande quantidade de maquinas, eu as cadastro no dhcp.conf, assim posso monitorar melhor. Dei início a implementação de apenas permitir que aquele IP com aquele MAC pudesse navegar em nossa rede, então adicionei a seguinte regra no meu firewall:

==================================================================================================================================
cat /etc/dhcp3/dhcpd.conf | egrep -v '#' | egrep 'fixed' | awk {'print $2'} | sed 's/;//' > /root/ipiptables.txt
cat /etc/dhcp3/dhcpd.conf | egrep -v '#' | egrep 'hard' | awk {'print $3'} | sed 's/;//' > /root/maciptables.txt

qtd=$(cat /etc/dhcp3/dhcpd.conf | egrep -v '#' | egrep 'fixed' | awk {'print $2'} | sed 's/;//' | wc -l)
num=0
while [ "$num" -lt $qtd ]; do num=$((num+1))
ip=$(sed -n ""$num"p" /root/maciptables.txt)
mac=$(sed -n ""$num"p" /root/ipiptables.txt)


$iptables -t filter -A FORWARD -d 0/0 -s $ip/24 -m mac --mac-source $mac -j ACCEPT
$iptables -t filter -A FORWARD -d $ip/24 -s 0/0 -j ACCEPT
$iptables -t filter -A INPUT -s $ip/24 -d 0/0 -j ACCEPT
$iptables -t nat -A POSTROUTING -s $ip/24 -j MASQUERADE

done
==================================================================================================================================

Resumindo, ele me coloca em variáveis os IPs e MACs na sequencia cadastrada no dhcp.conf para não embaralhar IPs e MACs. Modifiquei a primeira linha do comando para "echo" para ver as saídas, conferi e todos os IPs batem com os MACs:

iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.3/24 -m mac --mac-source 00:00:74:a7:f4:89 -j ACCEPT
iptables -t filter -A FORWARD -d 10.3.143.3/24 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.3.143.3/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.3.143.3/24 -j MASQUERADE
iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.4/24 -m mac --mac-source 00:00:74:97:69:bf -j ACCEPT
iptables -t filter -A FORWARD -d 10.3.143.4/24 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.3.143.4/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.3.143.4/24 -j MASQUERADE
iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.5/24 -m mac --mac-source 00:15:99:5f:04:94 -j ACCEPT
iptables -t filter -A FORWARD -d 10.3.143.5/24 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.3.143.5/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.3.143.5/24 -j MASQUERADE
iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.6/24 -m mac --mac-source 00:15:99:5e:f1:75 -j ACCEPT
iptables -t filter -A FORWARD -d 10.3.143.6/24 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.3.143.6/24 -d 0/0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.3.143.6/24 -j MASQUERADE

...

Então eu peguei uma maquina aqui e modifiquei o IP dela manualmente, porém ela ainda continua navegando. Esse modulo "mac" da regra, ele é padrão ou tenho que compilar algo mais?

Preciso da ajuda de meus amigos para implementar este isto.
Agradeço antecipadamente a atenção de todos!

Pablo Rocha
Botelho
Botelho Membro Senior Registrado
416 Mensagens 2 Curtidas
#2 Por Botelho
14/04/2012 - 19:42
Veja a regra: iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.3/24 -m mac --mac-source 00:00:74:a7:f4:89 -j ACCEPT
Diz que qualquer pacote com qualquer destino de ip com origem da REDE 10.3.143.3/24 com end. físico 00:00:74:a7:f4:89 é aceito. Tente:
modprobe ipt_mac
iptables -t filter -A FORWARD -d 0/0 -s 10.3.143.3/32 -m mac --mac-source 00:00:74:a7:f4:89 -j ACCEPT
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal