Freeradius: autenticação Samba 4 AD usando Winbind

Esse tutorial é uma parte de um projeto que busca para além da simples autenticação no Samba 4 AD a gerência das questões de autorização da rede, com recursos de permitem o filtro de permissões do usuário por meio de grupos.

“Esta receita do livro de receitas mostra como configurar o FreeRADIUS 3 para autenticar o MSCHAP contra o AD usando o winbind do projeto Samba. Isso será mais útil para aqueles com redes sem fio que usam métodos EAP, como PEAP / EAP-MSCHAPv2, o que é praticamente um dado em um ambiente do Active Directory para autenticação do usuário (embora este documento não vá para os detalhes da configuração EAP).” Fonte

A maioria das instalações existentes usa ntlm_auth e winbind . Veja este link , onde os exemplos de configuração são fornecidos para a autenticação PAP e MSCHAP.

Requisitos de sistema

Para esse experimento consideramos que as configurações básicas da autenticação PAP e seus requisitos foram executados.

Os métodos discutidos neste documento exigem pelo menos as seguintes versões de software:

  • Samba 4.2.1 ou superior
  • FreeRADIUS 3.0.8 ou superior

Cenário Testado

Em nosso contexto testamos usando as versões do repositório atualizado do Debian 9 para o Freeradius, Winbind, Samba e seus recursos adicionais como será demonstrado abaixo.

Instalando e Configurando o Samba  no servidor RADIUS ( cliente do AD ou Samba 4 AD)

Para instalação do Samba e Winbind foram usados os seguintes comandos como root:

apt-get update
apt-get upgrade
apt-get install samba winbind

Preparando o Samba 4 do servidor Radius pra ingresso no domínio:

#EXEMPLO DE CONFIGURAÇÃO BÀSICA PARA O FUNCIONAMENTO DO EXPERIMENTO
[global]
   netbios name = THISSERVERNAME 
   workgroup = MEUDOMINIO
   server string = servidor RADIUS
   segurança = anúncios
   usuários inválidos = raiz
   opções de socket = TCP_NODELAY
   idmap uid = 16777216-33554431
   idmap gid = 16777216-33554431
   winbind usar domínio padrão = não
   conexões de domínio max winbind = 5
   clientes máximos do winbind = 1000
   servidor de senha = *
   reino = MEUDOMINIO.EXAMPLE.COM

Ingressando no Domínio

net ads join -U Administrador

Deve pedir a senha do usuário com controle do domínio.

Testando o JOIN:

net ads testjoin

Teste a autenticação usando um usuário válido do AD:

ntlm_auth --username=user1 --domain=MEUDOMINIO

Deve retornar algo como:

Received Access-Accept Id 122 from 127.0.0.1:1812 to 0.0.0.0:0 length 84
  MS-CHAP-MPPE-Keys = 0x0000000000000000fd01db6063b65a0c92bb1da1c581f2b9
  MS-MPPE-Encryption-Policy = Encryption-Allowed
  MS-MPPE-Encryption-Types = RC4-40or128-bit-Allowed

Sendo assim o servidor já está autenticando no domínio.

Instalando o FreeRADIUS

O repositório do Debian 9 nos entregou a versão 3.0.12. Instalamos também recursos adicionais que devem ser úteis ao nosso cenário:

apt-get install freeradius freeradius-ldap freeradius-utils libfreeradius-dev

Habilitando o winbind no módulo MSCHAP do Freeradius:

nano /etc/freeradius/3.0/mods-available/mschap

winbind_username = "% {mschap: User-Name}"
winbind_domain = "MEUDOMINIO"

É isso!

Testes e depuração da instalação

Rodar o Winbind em modo depuração:

winbindd -SFd5

Em outro terminal rode o freeRadius em modo depuração:

freeradius -X

Num terceiro terminal rode o comando de teste:

radtest -t mschap user1 minhasenha 127.0.0.1 0 testing123

A saída deve conter Access-Accept  para que o ambiente esteja pronto para uso!

Pode ser necessário dar permissão ao usuário freeradius( no caso o freerad) na pasta Winbind:

chgrp freerad /var/lib/samba/winbindd_privileged

Pronto! Agora basta executar as configurações nos dispositivos clientes.

Referências

https://wiki.freeradius.org/guide/FreeRADIUS-Active-Directory-Integration-HOWTO

Publicado em 17/07/2018, em Freeradius, Linux, Switches, Wifi. Marcado com as tags EAP, Freeradius, MSCHAP, Samba.