Permitindo o uso da internet usando o login do SAMBA

Este artigo permite que apenas os usuários validados no SAMBA tenham acesso à internet.

[ Hits: 50.687 ]

Por: Alessandro de Oliveira Faria (A.K.A. CABELO) em 14/07/2003 | Blog: http://assuntonerd.com.br


Os compartilhamentos netlogon e de rastreamento



O compartilhamento netlogon é o lugar onde as estações Windows pegam o script de logon que executam quando o usuário faz logon no controlador de domínio. Nós precisamos deste compartilhamento para colocar um script de logon que vai dizer à estação Windows para montar um outro compartilhamento que vai ser usado para rastrear o endereço IP do usuário.

Você deve ter notado uma linha como a seguinte no smb.conf de exemplo e com certeza vai precisar de uma na sua configuração do SAMBA:

logon script = netlogon.bat

Esta linha vai dizer à estação Windows para pegar e executar o script chamado netlogon.bat. Este script deve ser colocado no compartilhamento netlogon. Então vamos precisar de um script chamado netlogon.bat para as estações Windows. Você pode usar o exemplo listado a seguir e gravar com o nome de NETLOGON.BAT no diretório do compartilhamento netlogon, neste caso em /home/samba/netlogon/NETLOGON.BAT.

REM NETLOGON.BAT
net use z: \\linux\samba /yes

Este script vai dizer à estação Windows para montar especificamente o compartilhamento samba e assim poderemos rastrear o usuário e o endereço IP de sua estação através da saída do programa smbstatus, que faz parte do pacote do SAMBA.

Muito simples! Mas não é o suficiente...

Como você pode ver, nós precisaremos de um compartilhamento de rastreamento, que, neste exemplo, eu chamei de samba. Dê uma olhada na seção do smb.conf que trata da configuração do compartilhamento de rastreamento:

[samba]
comment = login tracking share
path = /home/samba/samba
root preexec = /usr/local/bin/netlogon.sh %u
root postexec = /usr/local/bin/netlogoff.sh %u

Se você leu a documentação do SAMBA ou se tem boa imaginação, notou que as linhas root preexec e root postexec dizem ao daemon do SAMBA para executar os scripts indicados quando um usuário monta e desmonta o compartilhamento. Neste caso, estamos passando o nome do usuário como parâmetro para o script executado. Note o %u no fim das linhas. Estes scripts são quem executam os scripts o programas que modificam as regras do firewall.

Examine os scripts netlogon.sh e netlogoff.sh listados a seguir:

#!/bin/sh
#
# netlogon.sh
#
# usage:
# netlogon.sh <username>
#
smbstatus | grep $1 | grep samba | gawk '// { print substr($6,2,length($6)-2)}' > /var/run/smbgate/$1
IPTABLES='/usr/sbin/iptables'
EXTIF='ppp0'
COMMAND='-A'
ADDRESS=`cat /var/run/smbgate/$1`
/etc/smbgate/users/$1 $COMMAND $ADDRESS $EXTIF

Este script (netlogon.sh) será executado quando o usuário fizer login e filtrará a saída do programa smbstatus, extraindo o endereço IP do usuário, que será escrito em um arquivo no diretório /var/run/smbgate. O arquivo levará o nome do usuário e será usado depois quando o usuário fizer logoff. O endereço IP extraído será passado como argumento para o script no diretório /etc/smbgate/users/ com o nome do usuário e este script vai finalmente atualizar o firewall.
#!/bin/sh
#
# netlogoff.sh
#
# usage:
# netlogoff.sh <username>
#
IPTABLES='/usr/sbin/iptables'
EXTIF='ppp0'
COMMAND='-D'
ADDRESS=`cat /var/run/smbgate/$1`
/etc/smbgate/users/$1 $COMMAND $ADDRESS $EXTIF
rm -f /var/run/smbgate/$1

Este script (netlogoff.sh) será executado quando o usuário fizer logoff e pegará o endereço do arquivo /var/run/smbgate/user. Este endereço será passado como argumento para o script /etc/smbgate/users/user, que atualizará o firewall, restaurando as regras para a forma de repouso.

O que segue é um script de exemplo para /etc/smbgate/user/user:
#!/bin/sh
#
COMMAND=$1
ADDRESS=$2
EXTIF=$3
IPTABLES='/usr/sbin/iptables'
$IPTABLES $COMMAND POSTROUTING -t nat -s $ADDRESS -o $EXTIF -j MASQUERADE
Página anterior    

Páginas do artigo
   1. Introdução e configuração do firewall
   2. Configuração básica do SAMBA
   3. Os compartilhamentos netlogon e de rastreamento
Outros artigos deste autor

Como instalar Microsoft SQL SERVER no openSUSE Linux

Transmitindo vídeo de eventos ao vivo via Internet com GNU/Linux

SANE: Compartilhe seu scanner na rede

ARToolKit: Criando aplicativos de Realidade Aumentada

Compilador Clipper open-source, compile sem problemas os sistemas .PRG no Linux!

Leitura recomendada

Samba 4 como controlador de domínio com Active Directory da MS

Configurando o Samba

Servidor de arquivos integrado com Active Directory (AD) e quota de usuário/grupo

Autenticando usuários Windows no Linux (PDC)

Minimizando o delay de logon do Samba

  
Comentários
[1] Comentário enviado por batista em 14/07/2003 - 16:00h

So uma duvida. Este esquema serve para conexoes tipo IP dinamico(Speedy Home)?

[2] Comentário enviado por rmattar em 15/07/2003 - 04:28h

Sim, batista, serve para ip dinamico.

Veja o artigo original (atualizado) em http://www.tldp.org/HOWTO/Samba-Authenticated-Gateway-HOWTO.html

ou a versão em português em http://www.ram.eti.br/smbgate/howtopt_BR/Samba_Authenticated_Gateway_HOWTO-1.1.1-pt_BR.html

Meu caro "cabelo", eu não me importo que você corte, copie e não dê os créditos do documento, mas me importo com as modificações horríveis que você fez no meu howto. Além disto você pegou uma versão antiga.
Da próxima vez troque apenas o nome do autor pelo seu para não diminuir a qualidade da informação.

Ricardo Mattar

[3] Comentário enviado por cabelo em 15/07/2003 - 09:38h

Em primeiro lugar, todos os artigos publicados neste ou em outros sites, com exclusividade este do SAMBA com iptables e o do documento DJVU, foram de minha autoria.

Segundo, este artigo realmente é antigo, pois constava em meu acervo de artigos ha muito tempo. E eu não mencionei vosso nome pois não constava no documento. Este foi um dos motivos que eu tomei a liberdade de publica-lo.

Terceiro, minha intenção foi a de colocar este documento a disposição do pessoal deste site.

Quarto, não fui eu quem fez as adaptações pois recebi o documento assim.

Me desculpe o aborrecimento, não foi esta a intenção de tomar o seu mérito. E também não preciso fazer isto, mas eu não acho que este seja o melhor artigo do mundo. E já plagiaram muitos artigos elaborado por minha pessoa e eu pouco me importei.

Gostaria que você soubesse que usei muito antigamente o seu artigo nos meus treinamento em linux e elogiei muito o autor desconhecido.

Cordialmente.

CABELO

[4] Comentário enviado por gustavo_marcon em 15/12/2003 - 19:18h

Vc saberia me dizer o que eu tenho que fazer p/ fazer o mesmo esquema de autenticação mas usando o PPPoE invéz do Samba?

[5] Comentário enviado por Ed_slacker em 06/09/2004 - 16:06h

Só uma pergunta: se eu não me engano, o Squid tem uma configuração que age em conjunto com o samba para permitir mou não o acesso a internet.
Alguém tem conhecimento disso?

[6] Comentário enviado por jonadabe em 28/09/2004 - 13:50h

Como esse Ricarodo é chato meu, o cara larga mão

Valeu CAbelo

jonadabe

[7] Comentário enviado por leo1973 em 21/07/2009 - 16:30h

vlw cabelo, continue fazendo sim o q quizer pois vi q vc tem merito pra isso pelo menos na minha opniao vi q vc quiz trazer infromação. parabens


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts