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
pablocontrol
Super Participante
Registrado
704 Mensagens
2 Curtidas