Capturando o MAC address do cliente via Apache

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

[ Hits: 15.403 ]

 


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

Espelhamento remoto com ChironFS

Cartão Atheros sob Slackware 12.2 com driver Madwifi

Sed para formatar endereços MAC

Executando comandos do Shell Bash pelo Python

Eliminando o splash screen do KDE

Leitura recomendada

PrivacyFix e Adblock Plus - Navegação privada

Segurança no Apache

Bloquear/restringir acesso ao "su" somente ao grupo wheel

Listas de segurança

fwbuilder - interface gráfica para iptables

  

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