Olá, estou com um pequeno problema...
Uso no Debian 5, iptables básico com squid, ai surgiu a necessidade de controlar IP e MAC ou somente MAC, então pensei no ARP, criei um arquivo para o ARP se basear...
seguinte:
/etc/ipmacs somente com 192.168.10.20 00:00:00:00:00:01
coloquei no rc.local o seguinte comando
arp -f "/etc/ipmacs"
Se eu tiver com este mac, somente navego com o ip destinao a ele, porém se eu tiver outro MAC e outro IP, consigo navegar sem normalmente, este é o problema...
Sim, sem problemas afinal você está "amarrando" um IP específico a determinado MAC. Note que você também pode fazer esse controle de acesso via Squid, utilizando acl's do tipo ARP!
3. Re: Controle de acesso ARP
ivo.beckerusa Debian
Post recolhido
Enviado em 02/03/2011 - 09:28h
é, no Squid funciona, porém ele trabalha com protocolos http, e se eu tirar um MAC do arp do squid, somente não irá navegar, mas msn, skype, vai conectar normalmente...
o que eu fiz foi criar uma tabela com TODOS os ips das minhas duas redes "uma virtual" e joguei macs zerados... ai cadastro quem eu quero, e somente estes acessam...
4. Post antigão
macelolaianusa Debian
Post recolhido
Enviado em 03/04/2014 - 09:39h
Estava, eu, procurando saber se seria melhor ativar o controle de acesso pelo squid ou pelo arp, achei este topico, 2011. Como o amigo disse acima, o squid so controla http, então, vejo que o melhor é usar o arp mesmo.
Não sei se vc já achou a solução durante esse tempo, mas não custa nada eu dizer como solucionar isso, afinal, tive o mesmo problema.
se vc amarrar o ip 10.1.1.1 ao mac 00:00:00:00:00:BB
o servidor vai negar acesso para o ip e mac ("amarrados")
mas se vc trocar o ip para 10.1.1.2, dai o servidor para de negar, e acaba permitindo acesso.
quando for criar o arquivo de arp, crie logo 253 linhas, uma para cada endereço ip que deseja controlar, e amarre ao mac nulo (00:00:00:00:00:00) dessa forma, segundo as regras do tcp/ip, os macs nulos são automaticamente negados nas redes, Exemplo:
Obs 1: A primeira amarração que se deve fazer, sempre será o computador do qual se está acessando o servidor remotamente. Caso contrário, o usuário será derrubado no momento do comando arp -f.
Obs 2: Se você tem clientes na tabela arp que eventualmente precisa ser bloqueado/desbloqueado, basta trocar o mac lógico dele, pelo mac nulo (00:00:00:00:00:00), mas onde se guarda o mac? Simples, sempre copie o mac do cliente no comentátio, dessa forma:
10.1.1.1 00:00:00:00:00:00
# computador do joaozinho bloqueado dia xx/xx/xx 00:AA:00:00:00:BB
10.1.1.2 00:00:00:00:00:00
10.1.1.3 00:00:00:00:00:00
...
10.1.1.253 00:00:00:00:00:00
joaozinho pagou a mensalidade atrasada, liberar acesso
10.1.1.1 00:00:00:00:00:00
# computador do joaozinho acesso liberado dia xx/xx/xx
10.1.1.2 00:AA:00:00:00:BB
10.1.1.3 00:00:00:00:00:00
...
10.1.1.253 00:00:00:00:00:00
É bem provável que usuários iniciantes, como eu, venham "parar" neste tópico, e se perguntem: Poxa, criar 253 linhas no arp, vai demorar meia hora!!
Com esse script demora milisegundos:
Entre na pasta /etc/:
cd /etc/
crie um arquivo para lista os ips, salve, mesmo sem nenhuma linha escrita
nano ethers
Agora crie o script para incluir as 253 linhas no arquivo arp:
nano monta-arp.sh
Conteúdo do arquivo monta-arp.sh
#!/bin/bash
for (( i = 1; i < 254; i++ ))
do
echo "192.168.10.$i 00:00:00:00:00:00" >> ethers
done
Evidentemente, troque o 192.168.10 pela faixa de ips pretendida, não "mexa" no "$i".
salve o arquivo, e de permissao de execuçao:
chmod 777 monta-arp.sh
Eu nunca sei o numero certo 777, 775, 755, so sei q o codigo acima dá permissão para executar. Para evitar erros, vá para a raiz
cd /
Execute o arquivo monta-arp.sh
/etc/monta-arp.sh
Se tudo ocorrer bem, acesso o arquivo ethers
nano /etc/ethers
Verá que está listados todos os ips. Por padrão, quando se usa o comando arp -f, ele toma como base o arquivo /etc/ethers. Porém se pretende utilizar esse arquivo em outro lugar, basta referenciar no comando arp -f /etc/local-do-arquivo/arquivo-arp