Capturando o MAC address do cliente via Apache

Publicado por Carlos Affonso Henriques. em 01/06/2007

[ Hits: 15.450 ]

 


Capturando o MAC address do cliente via Apache



Esta dica é muito útil quando você precisa estabelecer controles de acesso por "casamento" MAC x IP usando o servidor http Apache para rodar scripts CGI em shell.

O Apache tem uma variável chamada REMOTE_ADDR, que é igual ao endereço IP da máquina cliente que o está acessando. Em meu projeto de gateway para provedores wireless precisei de uma variável que fizesse o mesmo com os endereços MAC, mas após procurar e não achar na documentação do Apache precisei criar o recurso.

1 - Primeiramente devemos informar ao sudoers que o Apache deverá ter permissão para executar o utilitário arping. O arquivo /etc/sudoers ficaria assim:

apache ALL=NOPASSWD:/usr/sbin/iptables,/sbin/ip,/usr/sbin/dhcpd,/sbin/arping

2 - Agora criamos a linha de comando no script CGI (shell) responsável pela tarefa em que será necessária a captura do endereço MAC e chamaremos este resultado de REMOTE_LLADDR:

REMOTE_LLADDR=`sudo arping -c1 -D $REMOTE_ADDR | fgrep [ | cut -f2 -d"[" | cut -f1 -d"]"`

Pronto! Coloque agora um echo $REMOTE_LLADDR e veja! O Apache irá exibir o endereço MAC da interface de rede do cliente.

Outras dicas deste autor

Otimizando o desempenho do Squid

Backup de Configurações do MikroTik RouterOS

Instalar o CentOS a partir de um chaveiro USB

Transformando rapidamente variáveis em arrays

TOR Browser rodando sob root ou qualquer outro usuário

Leitura recomendada

Impedindo acesso via modo single no LiLo

Bloqueando usuários com ARP

Criar um túnel ssh

Criando volumes criptografados

Autenticação no Apache2

  

Comentários
[1] Comentário enviado por PeacePrince em 01/06/2007 - 08:22h

Ótima dica! Eu pensava que não existia a possibilidade de capturar endereços MAC em servidores web.

[2] Comentário enviado por capitainkurn em 01/06/2007 - 12:20h

E nao ha! Foi uma "gambiarra elegante" que apliquei.

[3] Comentário enviado por macielfs em 04/04/2008 - 09:08h

Tentei, mas não funcionou o apache continua sem permissão de executar o comando arping.

[4] Comentário enviado por edison_filho em 10/09/2010 - 17:17h

Olá, estou com um problema parecido. Preciso que o usuário apache execute o comando: brasero --immediately /home/edison/Programas/ubuntu10.iso

Mas ele não tem permissão pra isso. Como devo proceder?

[5] Comentário enviado por vinigeremia em 15/09/2010 - 10:27h

Olá, não entendi o passo 2, eu devo criar um script CGI?
não conheço essa técnica, e então como associo ao apache?
abraço

[6] Comentário enviado por tiago_es em 31/05/2011 - 17:48h

Eu também não entendi essa parte di script CGI....



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts