Servidor Samba "Autoservice"

Buscamos, no presente arquivo, apresentar um programa em linguagem shell script e interface em modo texto destinado a configurar um Servidor de Domínio Samba. Utilizamos os módulos do PAM para implementar uma política de acesso e exportação de compartilhamentos.

[ Hits: 30.895 ]

Por: lourival araujo da silva em 04/12/2008


Analisando o perfil cds



O perfil misto possui as capacidades de PDC e Servidor de Arquivos. Apresenta a configuração necessária ao gerenciamento de uma rede que comporta máquinas mais robustas e velocidades de processamento maiores. Assim o Servidor pode disponibilizar acessos a diretórios compartilhados e administrar a política de segurança da organização considerada.

Incluímos as funções de criação de compartilhamentos públicos e restritos. Os compartilhamentos públicos com acesso de leitura e escrita para todos, e os compartilhamentos restritos com a possibilidade de escrita somente para o grupo proprietário, e leitura opcional para os demais (à critério do administrador do domínio).

cds(){
tput cup 10 19;
trap ' ' 2 3 15;
tput cup 10 12;echo "
      #####################################################################
      PROGRAMA DE CONFIGURAÇÃO DE SERVIDOR DE DOMÍNIO LINUX - Versão 0.3.7
               Autor: LOURIVAL ARAÚJO DA SILVA - 5º  CTA - RECIFE - PE
          Liberado sob GPL em 02 de novembro de 2008
      #####################################################################

      1 -  Criar SERVIDOR DE DOMÍNIO E ARQUIVOS (PDC Samba)
      2 -  Criar o Diretório dos Compartilhamentos no SERVIDOR
      3 -  Criar Grupos e Compartilhamentos Restritos
      4 -  Criar Compartilhamento Publico
      5 -  Incluir usuário nos Grupos do Domínio
      6 -  Excluir usuário do Domínio
      7 -  Bloquear senha de usuário do Domínio
      8 -  Desbloquear senha de Usuário do Domínio
      9 -  Adicionar conta de maquina ao Domínio
      10 - Excluir maquina do Domínio
      11 - Sair do programa de configuração

      ####################################################################
      ####################################################################

"
echo -n "      Digite a opcao de configuração desejada: "
read opcao
   case $opcao in
   1) cria_dominio
;;
   2) cria_base
;;
   3) cria_grupo
;;
   4) cria_publico
;;
   5) inclui_usuario
;;
   6) exclui_usuario
;;
   7) bloqueia_usuario
;;
   8) desbloqueia_usuario
;;
   9) adiciona_maquina
;;
   10) exclui_maquina
;;
   11) clear
       continue
;;
   *) valor_invalido;
;;
   esac
}

A função de adição de máquina refere-se apenas à criação da conta de máquina no Servidor, e não à ação de juntar a máquina ao Domínio (função incluída no cliente de domínio). Como observamos no código correspondente:

adiciona_maquina(){ # Inclui conta de maquina no Domínio
   echo -n "Digite o nome da maquina a ser incluída no Domínio: "
   read nome
   maquinas="$(grep maquinas /etc/group |cut -d: -f1)"
   if [ ! $maquinas ];then
      sudo groupadd maquinas
   fi
   if( ! (grep $nome /etc/passwd ) );then
      sudo useradd -s /bin/false -d /dev/null -g maquinas $nome$
      sudo passwd -l $nome$
      smbpasswd -a -m $nome
      echo "criada conta de maquina no domínio."
      sleep 4
      continue
   else
      echo "maquina $nome já cadastrada anteriormente."
      sleep 8
      continue
   fi
}

Consideramos que o código ainda comporta otimização, mas encontra-se funcional.

Página anterior     Próxima página

Páginas do artigo
   1. Traçando rotas
   2. Gerenciando perfis
   3. Criando o perfil pdc
   4. Verificando o perfil srv
   5. Analisando o perfil cds
   6. Exportando recursos
Outros artigos deste autor

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

Configuração "automágica" de servidor Linux PDC Samba

webCalendar: a agenda e o PAM

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

Cliente Linux no servidor LDAP

Leitura recomendada

Instalando um firewall em ambientes gráficos leves

Vault: SSH com OneTimePassword

Auditando senhas com John The Ripper

SELinux na prática

Procurando rootkits no seu sistema

  
Comentários
[1] Comentário enviado por Rhods23 em 04/12/2008 - 23:00h

Meu amigo, só tenho uma palavra a dizer: PERFEITO. :D

[2] Comentário enviado por downloadd em 05/12/2008 - 10:13h

Olá Araujo...

Notei que você manda bem no assunto SAMBA, pois você já contribuiu com vários artigos sobre o samba, e por isso, gostaria de te fazer uma pergunta.

Eu uso samba+Ldap e se eu trocar a senha de root do linux, não consigo mais acessar o Ldap como root, nem se eu voltar a senha antiga do root. Por conta disso, não consigo mais incluir os usuários do samba no grupo "Domain Admins".

Detalhe que o restante continua funcionando normal; logins no linux, samba, squid... tudo normal, só esta questão mesmo que não sei como resolver.

Você poderia me ajudar? -> luiz.rissi at gmail.com

Abraço e parabéns!

[3] Comentário enviado por calaff2 em 06/12/2008 - 13:11h

Man manda os script para meu email! para eu testar aqui em casa ! [email protected]

Show de bola nota 10000000000000000 :)

[4] Comentário enviado por araujo_silva em 07/12/2008 - 18:23h

Caro calaff2

Estou aguardando a publicação no VOL do script incluido na seção linux/shell-script/avançado.
Caso não eseja livre até o dia 09 eu o envio diretamente para você.

abraços

Araujo

[5] Comentário enviado por araujo_silva em 07/12/2008 - 18:42h

Companheiro downloadd

Caso você esteja utilizando as ferramentas do smbldap-tools, modifique a senha utilizando a ferramenta "smbldap-passwd root" ao invés de utilizara "passwd root".
Não sei como estão configurados os arquivos /etc/nsswitch.conf, nem a prioridade que o arquivo /etc/pam.d/login atribui aos usuários do domínio e aos usuários locais. Esses arquivos vão determinar quais bases serão consultadas prioritariamente.
Faça consultas recursivas na árvore do ldap, antes e depois de alterar a senha do root:

# ldapsearch -x

Verifique se o parâmetro "ldap passwd sync = Yes" está presente no seu arquivo de configuração do samba (/etc/samba/smb.conf).

abraço

araujo

[6] Comentário enviado por spartac0s em 08/12/2008 - 10:42h

Ola Araujo.
Seu script ficou muito. parabens, mais estou com uma duvida aqui não estou sabendo como salvar os arquivos.
O gerenciamento de perfis salvei como ComSamba.sh
agora os outros PDC, SRV E CDS eu nao estou sabendo com qual o nome salvar. e e que local. se vc poder me responder agradeço muito obrigado.

[7] Comentário enviado por araujo_silva em 08/12/2008 - 14:54h

Blz spartac0s

O programa inteiro está na fila de liberação, na seção /linux/scripts-shell/avançado, aqui no VOL. É que é muito grande para incluir no arquivo, cerca de 1000 linhas. Está inscrito com o nome consamba.sh. Caso demore posso enviar pro seu e-mail a partir de amanha.

Abraços

Araujo

[8] Comentário enviado por downloadd em 10/12/2008 - 18:03h

Olá Araujo, sou eu novamente...

Sei que aqui não é o melhor lugar para se tratar do meu problema, afinal é um assunto off-topic, mas postei como pergunta e não tive ajuda nenhuma.

Respondendo:
Sim eu estou usando o smbldap-tools.
Não cheguei alterar os arquivos /etc/nsswitch.conf e /etc/pam.d/login

Já tentei mudar a senha daquela forma que você passou mas mesmo assim, nunca mais consigo logar como root no ldap.

Sim o parâmetro esta presente no arquivo do samba.

Eu segui este tutorial para instalar o Ldap e o samba.
http://www.howtoforge.com/openldap-samba-domain-controller-ubuntu7.10

Tenho que alterar algo nos arquivos /etc/nsswitch.conf e /etc/pam.d/login ?
valeu

[9] Comentário enviado por dfsantos em 19/12/2008 - 15:22h

"downloadd" tente alterar o arquivo /etc/nsswitch.conf para efetuar consulta primeiramente no ldap.. boa sorte

[10] Comentário enviado por araujo_silva em 19/12/2008 - 15:45h

downloadd

peço que verifique se apos as sugestoes sobre a alteração no nsswitch.conf e login houve alteração no comportamento da altenticação. E informe se a senha que esta sendo trocada esta sendo atualizada no paramentro "rootpw" do arquivo de configuração do cliente ldap

abraço

araujo

[11] Comentário enviado por aantunes em 17/06/2009 - 17:25h

Alguem sabe me informar como faço para configurar o novo pam_mount.conf.xml?
O que acontece, já configurei varias volumes para mount. só que ele não está validando o grupo segue o pedaço do arquivo

<!-- usuarios do grupo L_Asscomercial -->

<volume sgrp="l_asscomercial" fstype="smbfs" server="tmkdc1" path="users/%(USER)" mountpoint="/home/%(USER)/users" />
<volume sgrp="l_asscomercial" fstype="smbfs" server="tmkdc1" path="publica" mountpoint="/home/%(USER)/publica" />
<volume sgrp="l_asscomercial" fstype="smbfs" server="tmkdc1" path="sistemas" mountpoint="/home/%(USER)/sistemas" />
<volume sgrp="l_asscomercial" fstype="smbfs" server="tmkdc1" path="teleatend" mountpoint="/home/%(USER)/teleatend" />
<volume sgrp="l_asscomercial" fstype="smbfs" server="admfile1" path="iq2000" mountpoint="/home/%(USER)/iq2000" />

<!-- usuarios do grupo L_Juridico -->

<volume sgrp="l_juridico" fstype="smbfs" server="admfile1" path="users/%(USER)" mountpoint="/home/%(USER)/users" />
<volume pgrp="l_juridico" fstype="smbfs" server="admfile1" path="publica" mountpoint="/home/%(USER)/publica" />
<volume pgrp="l_juridico" fstype="smbfs" server="admfile1" path="sistemas" mountpoint="/home/%(USER)/sistemas" />
<volume pgrp="l_juridico" fstype="smbfs" server="tmkdc1" path="teleatend" mountpoint="/home/%(USER)/teleatend" />
<volume pgrp="l_juridico" fstype="smbfs" server="admfile1" path="iq2000" mountpoint="/home/%(USER)/iq2000" />
<volume pgrp="l_juridico" fstype="smbfs" server="tmkdc1" path="telelistas" mountpoint="/home/%(USER)/telelistas" />

[12] Comentário enviado por araujo_silva em 11/07/2009 - 12:01h

Caro aantunes,

1. primeiro deve haver os seguintes compartilhamentos , localizados no home de cada usuario: 'users','publica','sistemas','teleatend','iq2000','telelistas';

2. substitua o nome do grupo 'l_juridico' pelo 'id', no parâmetro 'options' de cada volume;

3. salvo se você tiver um concentrador de domínio (ldap), com servidores distribuídos, não haverá como mapear dois conjuntos de compartilhamentos originados em 'admfile1' e 'tmkdc1', pois o pam_mount irá montar os compartilhamentos a que tiver acesso no login do usuário;
4. substitua pela configuração abaixo, ajustando conforme sua necessidade:

<!-- usuarios do grupo l_juridico -->
<volume sgrp="l_juridico" fstype="smbfs" server="admfile1" path="users/%(USER)" mountpoint="/home/%(USER)/users" />

<!-- usuarios do grupo l_juridico -->
<volume fstype="smbfs" server="admfile1" path="users/%(USER)"
mountpoint="/home/%(USER)/users" options="uid=%(USER),gid=1001,dmask=0711,workgroup=DOMINIO" />

5. gostaria que informasse o progresso do ajuste.

abraços,

lourival

[13] Comentário enviado por aantunes em 02/10/2009 - 18:09h

Lourival,

[14] Comentário enviado por aantunes em 02/10/2009 - 18:14h

Lourival,
Obrigado pela ajuda. O projeto morreu, pois a empresa tem muito muito sistema Windows, sites feitos em asp.
Mas assim que tiver oportunidade estarei fazendo esse teste.


Contribuir com comentário