Capturando o MAC address do cliente via Apache

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

[ Hits: 15.626 ]

 


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

Eliminando o splash screen do KDE

sed formatando CPF, CNPJ e datas

Proxy ARP: Abrindo um servidor da rede interna para a internet com a ferramenta ip

Alterando o MAC address de sua placa de rede com o ifconfig

Uma maneira diferente de escrever o dhcpd.conf

Leitura recomendada

Nova versão do sshtrix liberada! Mais uma ferramenta para Brute force

SSH sem senha

Bloqueio de acesso SSH para determinado IP

Travando Msn por horario usando iptables

Stay Safe Postcast

  

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