Controle de acesso ARP

1. Controle de acesso ARP

Ivo Becker
ivo.becker

(usa Debian)

Enviado em 01/03/2011 - 15:48h

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...



  


2. Re: Controle de acesso ARP

Sandro Marcell
SMarcell

(usa Slackware)

Enviado em 02/03/2011 - 08:22h

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 Becker
ivo.becker

(usa Debian)

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

Macelo Laian de Andrade
macelolaian

(usa Debian)

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:


10.1.1.1 00:00:00:00:00:00
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


Dai o joaozinho decide ser seu cliente, ele tem o mac 00:AA:00:00:00:BB, você pretende amarrá-lo ao ip final 2, entao você vai no arquivo arp:


10.1.1.1 00:00:00:00:00:00
# computador do joaozinho
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


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:

Pagamento em dias, acesso liberado para joaozinho

10.1.1.1 00:00:00:00:00:00
# computador do joaozinho
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


Pagamento atrasado, bloquear joaozinho

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






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts