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