Cliente "automágico" Linux logando no domínio NT/Samba

Buscamos, no presente artigo, realizar a configuração de clientes Linux em domínios gerenciados por servidores Windows ou PDC Samba. Trabalhamos com o processo de automatização das configurações necessárias aos clientes por meio da utilização de programação Shell Linux. Integramos os scripts necessários à configuração dos arquivos em uma interface modo texto de gerenciamento.

[ Hits: 38.286 ]

Por: lourival araujo da silva em 03/10/2008


Organizando a casa



Concentramos na interface do programa o gerenciamento dos usuários do sistema local. O mapeamento de recursos compartilhados pelo Servidor de Arquivos, nas máquinas locais, deverá ser feito por meio de módulo do pam (pam_mount.so), configurado no arquivo desse módulo (/etc/security/pam_mount.conf), no Servidor.

Optamos por incluir, no código desse programa, a utilização do "sudo", pelo incremento à segurança que ele agrega. Caso o administrador não utilize a ferramenta pode remover as entradas correspondentes no código do programa (recomenda-se que utilize o sudo). Teremos a seguinte interface para o gerenciamento dos usuários:

       ====================================================
       = CADASTRO DE USUARIOS - CLIENTE DE DOMINIO NT/SAMBA 
       =               VERSAO 0.2.0 - SETEMBRO 2008            
       ====================================================
       =                     CLIENTE DE DOMINIO             
       ====================================================
       =        1) Adicionar usuario                 
       =        2) Bloquear usuario                  
       =        3) Desbloquear usuario               
       =        4) Atualizar senha                   
       =        5) Excluir usuario                   
       =        6) Incluir a maquina no DOMINIO      
       =        7) Sair                              
       ====================================================


      Digite sua opcao [1-7]:

Esse segmento de código corresponde a função de inclusão de usuários no sistema local:

1) echo -n "Digite o nome do usuario a ser incluido: "
read usuario
echo -n "Digite o grupo do usuario: "
read grupo
sudo useradd -d /home/$usuario -s /bin/bash -g $grupo -m $usuario
echo -n "Deseja incluir outro usuario ? [sim/nao] "
read resp

while [ $resp = sim ];do
   echo -n "Digite o nome do novo usuario: "
   read nusuario
   echo -n "Digite o grupo do novo usuario: "
   read ngrupo
   sudo useradd -d /home/$nusuario -s /bin/bash -m -g $ngrupo $nusuario
   echo -n "Deseja incluir outro usuario ? [sim/nao] "
   read resp

   if [ $resp = nao ]; then
      echo "Adicao de usuario concluida.\n"
   fi
   break
done

A inclusão de usuários no sistema local deve ser feita em grupos já existentes. Os usuários do domínio serão buscados no Servidor pela ferramenta winbind do pacote samba. A manipulação dos arquivos /etc/passwd e /etc/shadow, realizada pelo programa de gerenciamento, pode ser tratada de forma flexível, mantendo esses arquivos disponíveis para serem gravados pelo aplicativo gráfico de gerenciamento de usuários, ou de forma rígida deixando o acesso a esses arquivos fechado a outras ferramentas. Precisamos realizar a inserção das linhas abaixo para bloquear o acesso a esses arquivos, na inclusão e na exclusão de usuários:

# chattr +i /etc/passwd
# chattr +i /etc/shadow
# chattr +i /etc/group

# chattr -i /etc/passwd
# chattr -i /etc/shadow
# chattr -i /etc/group


Acrescentamos o caractere imutável ao arquivo (+i) após a edição, e o retiramos (-i) antes da execução dos comandos de adição e exclusão (useradd e userdel). Se inserirmos os comandos de alteração de atributo nos locais correspondente do programa, somente por meio do próprio programa será possível incluir e excluir usuários no sistema.

Esse segmento de código corresponde à função de inclusão de usuários no sistema local, se incluirmos as restrições de segurança:

1) echo -n "Digite o nome do usuario a ser incluido: "
read usuario
echo -n "Digite o grupo do usuario: "
read grupo
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
sudo useradd -d /home/$usuario -s /bin/bash -g $grupo -m $usuario
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
echo -n "Deseja incluir outro usuario ? [sim/nao] "
read resp

while [ $resp = sim ];do
   echo -n "Digite o nome do novo usuario: "
   read nusuario
   echo -n "Digite o grupo do novo usuario: "
   read ngrupo
   chattr -i /etc/passwd
   chattr -i /etc/shadow
   chattr -i /etc/group
   sudo useradd -d /home/$nusuario -s /bin/bash -m -g $ngrupo $nusuario
   chattr +i /etc/passwd
   chattr +i /etc/shadow
   chattr +i /etc/group
   echo -n "Deseja incluir outro usuario ? [sim/nao] "
   read resp

   if [ $resp = nao ]; then
      echo "Adicao de usuario concluida.\n"
   fi
   break
done

Página anterior     Próxima página

Páginas do artigo
   1. Criando coragem!
   2. Ajustando arquivos
   3. Entrando no Samba
   4. Organizando a casa
   5. Primeira exibição
   6. Leia os logs
Outros artigos deste autor

Mudança de hábito: autenticando usuários em base de dados MySQL

Autenticação via hardware: o módulo pam_blue

Cliente Linux no servidor LDAP

Autenticação via hardware: o módulo pam_usb

Bom escudo não teme espada: o módulo pam_cracklib

Leitura recomendada

Malware, Vírus e Hacking. Estamos seguros usando Linux?

Mecanismo de firewall e seus conceitos

Reforçando a segurança das conexões HTTPS no Apache

Técnicas forenses para identificação da invasão e do invasor em sistemas Unix/Linux através do SSH (parte 1)

TinyOS

  
Comentários
[1] Comentário enviado por renato.leite em 04/10/2008 - 08:26h

ta muito bom o Artigo xD

[2] Comentário enviado por araujo_silva em 05/10/2008 - 10:18h

Valeu Xara
Agradecemos sugestões.
Abaços,
araujo_silva


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts