Servidor de Arquivo e Autenticação – Integração Perfeita entre Gosa (LDAP) e SAMBA
15 de Junho de 2009, 0:00 - 2 comentáriosServidor de Arquivo completo
Para instalar o servidor do Samba é necessário que os seguintes pré-requisitos estejam instalados.
Pré-requisitos:
- Ubuntu Server (pode ser outro)
- Instalar e Configurar o Gosa
Para aqueles que estão começando agora, definiria o SAMBA como sendo um servidor de autenticação de desktop Windows na rede. Claro que essa é uma definição bem superficial levando em consideração os recursos que o SAMBA tem, por outro lado, a grande maioria usa o SAMBA realmente para fazer isso, autenticar e armazenar arquivos de usuários do Windows.
Com o SAMBA é possível compartilhar recursos entre maquinas UNIX/Linux e Windows. Neste artigo vamos ficar mais focado na parte de autenticação, fazendo o Samba funcionar como um verdadeiro PDC.
1. LDAP
Vamos começar a configuração do SAMBA pelo LDAP. Já escrevi um post que mostra como instalar e configurar o LDAP e o GOsa. Leia este artigo e configure o GOsa e LDAP antes de continuar a configuração.
Com o LDAP e GOsa instalado, vamos precisar que o sistema Linux reconheça os usuários cadastrados na base LDAP. É procedimento é necessário para atribuir permissões para os usuários da base LDAP.Caso você queira utilizar cota, só é possível habilitando o usuário LDAP juntamente com os usuários do sistemas.
Para que isso aconteça é preciso instalar um pacote chamado libnss-ldap e configurar o arquivo /etc/nsswitch.conf. O comando a seguir faz a instalação.
[root@cabeca]#apt-get install libnss-ldap
Durante a instalação, o sistema vai solicitar algumas informações sobre a base LDAP, tais como endereço, usuário de administração. Todas essas informações são gravadas dentro do arquivo /etc/ldap.conf. Segue um modelo do arquivo, altere conforme as suas configurações.
- /etc/ldap.conf
base dc=trigo uri ldap://localhost ldap_version 3 binddn cn=manager,dc=trigo bindpw x rootbinddn cn=manager,dc=trigo pam_password md5
O próximo passo é fazer o sistema Linux ir buscar os usuários também na base LDAP. Para isso é necessário que seja alterado o arquivo /etc/nsswitch.conf. Segue a forma como o arquivo deve ficar.
- /etc/nsswitch.conf
passwd: files ldap group: files ldap shadow: files ldap
No arquivo nsswitch está definido que os usuários serão pesquisados primeiramente no arquivo local (/etc/passwd, /etc/group,/etc/shadow) e caso não encontre este usuário, o mesmo será pesquisado na base LDAP. Para testar se tudo está funcionando de acordo, execute o comando getent e olhe se os usuários da base LDAP estão sendo listados também.
[root@cabeca]# getent passwd
Se o comando listar os usuários da base LDAP, o sistema está pronto para receber o SAMBA.
2. Criação de Usuários pelo GOsa
Antes da criação do usuário no sistema GOsa, vamos preparar o ambiente para a criação do diretório home do usuário no sistema de arquivo. Esse procedimento para criar o usuário é feito através de um script que é executado pelo GOsa na hora da criação do usuário. É importante frisar que é possível colocar outras tarefas nesse arquivo, tais como definição de quotas.
Como o script é executado pelo GOsa, é necessário dar permissão de administrador para o usuário do apache para executar esse script. Se não fizer isso não será possível a criação dos diretórios. Altere o arquivo /etc/sudoers, como definido a seguir.
- /etc/sudoers
www-data ALL=(ALL) NOPASSWD:ALL
Com a configuração do sudo pronta, vamos configurar o GOsa para executar o script "create_user.sh" toda vez que um usuário for criado e "delete_user.sh" toda vez que um usuário for apagado do GOsa.
- /etc/gosa/gosa.conf
Altere o arquivo gosa.conf, acrescentando a linha abaixo no plugin do posixAccound. Este plugins já existe no arquivo, é preciso apenas completar a linha com as variáveis postcreate e postremove.
<plugin acl="default" class="posixAccount" icon="posix.png" path="plugins/personal/posix" postcreate="/usr/bin/sudo /etc/gosa/create_user.sh %uid" postremove="/usr/bin/sudo /etc/gosa/delete_user.sh %uid"> </plugin>
A seguir estão os dois scripts que serão executados pelo GOsa. Lembre-se de criá-los no diretório /etc/gosa/.
- create_user.sh
#!/bin/bash HOME=$(getent passwd $1| sed -n -e /^$1:x:[[:digit:]]*:[[:digit:]]*:.*:\(.*\):.*/{s//\1/;p;q;}) if [[ -d $HOME ]]; then exit 1 fi GROUP=$(getent passwd $1| sed -n -e /^$1:x:[[:digit:]]*:\([[:digit:]]*\):.*/{s//\1/;p;q;}) mkdir $HOME chown $1:$GROUP $HOME
-
delete_user.sh
#!/bin/bash HOME=$(getent passwd $1| sed -n -e /^$1:x:[[:digit:]]*:[[:digit:]]*:.*:\(.*\):.*/{s//\1/;p;q;}) if [[ -d $HOME ]]; then rm -rf $HOME fi
3. Recursos do GOsa
Com o Gosa instalado e os scripts para criar os diretórios funcionando, vamos criar os usuários no GOsa. O Processo é bem simples. Na tela iniciar como mostra a figura 1, acesse o ícone "Create User".
Figura – Browser de usuários
Em seguida uma tela com o cadastro do usuário é aberto. A primeira tela de cadastro é sobre informações gerais do usuário. Preencha com cuidado os campos "last name","first name", "login", como mostra a figura 2. Também é possível enviar uma foto.
Figura 2 – Informações gerais sobre o usuário
Com as informações gerais criadas, click na aba "UNIX" para criar a conta Unix deste usuário. Preencha as informações tomando cuidado para a opção "Home Directory" que será o diretório do usuário. Para este exemplo estamos criando dentro do diretório /home/arquivos, como mostra a figura 3. Verifique se o diretório "arquivos" existe dentro do diretório home. Nesta aba também é possível definir os grupos de trabalho. Lembrando que os usuários que estiverem dentro do grupo "Domain Admins" podem colocar as máquinas no domínio.
Figura 3 – Criação da conta UNIX
Após a criação da conta "UNIX", click na aba "SAMBA" para criar a conta do SAMBA. Mude a unidade de rede para L:. Olhe as propriedades de travar conta de usuário, data para trocar senhas, como mostra a figura 4.
Figura 4 – Criação da conta SAMBA
Ao termino da configuração click na opção "SAVE" e o sistema vai solicitar a senha do usuário.
- Template
A criação dos template é um facilitador para a criação das contas dos usuários. As permissões, grupos e propriedades são automaticamente passados para os usuários. Par criar um novo template, click no ícone "Create New Template" no browser de usuário, como mostra a figura 5.
Figura 5 – Criação do template
A próxima tela é para definir o nome do template e algumas propriedades gerais, como mostra a figura 6.
Figura 6 – Definição do nome do template
Para criar a conta UNIX, click na aba "UNIX" e defina as propriedades do usuário. Perceba que no campo "Home Directory" ficou com o valor "/home/arquivos/%uid", como mostra a figura 7. No lugar do %uid vai entrar no login do usuário quando um novo usuário for criado utilizando este template.
Figura 7 – Criação da conta UNIX pelo template
Na aba "SAMBA" crie a conta geral do SAMBA, como mostra a figura 8.
Figura 8 – Criação da conta SAMBA do Template
Ao criar um novo usuário, o GOsa vai perguntar em qual template será criado e todas as propriedades serão passada ao usuário evitando erros, como mostra a figura 9.
Figura 9 – Criação de usuário pelo Template
O GOsa trabalha com ACLs, portanto você pode definir quais usuários podem criar outros usuários, quais podem alterar a senha e assim por diante.
Com o GOsa e os usuário criados, vamos passar para a configuração do SAMBA.
4. Configuração do Samba
O arquivo de configuração do SAMBA tem uma particularidade bem interessante. Todas as configurações ficam dentro de um contêiner que inicia com uma palavra entre "[ ]". Todos as seções que abre com "[ ]" são compartilhamentos criados, exceto o primeiro que é o global que define toda a configuração para o servidor. Antes de começar a configuração vamos fazer a instalação do SAMBA.
[root@cabeca]# apt-get install samba
A seguir temos um arquivo de configuração do samba, este arquivo está bem completo e pode ser utilizado para um servidor em produção, após alguns ajustes de acordo com a sua necessidade.
- /etc/samba/smb.conf
A seguir temos o arquivo smb.conf que é o arquivo de configuração do SAMBA, por questão didática, colocamos os comentários do comando logo a frente do comando, e todos os parâmetros que estão em negrito devem ser alterados de acordo com a sua configuração. Este arquivo de configuração está configurado para um cenário que tem vários usuários acessando o servidor e tem um compartilhamento chamado "GERAL" para gravar arquivos em comuns. Os profiles dos usuários ficarão no servidor e quando o usuário realizar o login no Windows será executado um script que vai ajustar à hora do computador de acordo com o servidor e fazer o mapeamento do geral.
O arquivo smb.conf a seguir está todo colorido bem carnavalesco, coloquei desta forma para agrupar os parâmetros afim.
[global] |
#Abre a seção da configuração Principal. |
netbios name = BACULO |
#Esta função define o nome da máquina na rede Windows. |
workgroup = BACULO.NET |
#Define o grupo que a mais vai estar no windows ou o domíno. |
server string = Servidor de Arquivos e Autenticao |
#Descrição sobre o servidor Samba |
name resolve order = lmhosts wins bcast |
#Essa opção define a ordem que será utilizado para resolver nome/IP |
map to guest = Bad User |
#Define que a conta guest vai ser usada na rede (lembre-se de #liberar o "guest ok =yes" nos compartilhamentos que guest terá #acesso |
guest account = nobody |
#Define qual usuário do unix será usando como guest |
null passwords = No |
#Permite ou não um usuário acessar a conta com a senha em branco. |
security = user |
#Define que a segurança vai ser por usuário autenticado. |
encrypt passwords = Yes |
#Samba vai aceitar cryptografia. WinNT 4.0 SP3 e superiores |
update encrypted = Yes |
|
interfaces = eth0 192.168.10.0/24 |
#Especifica a interface de rede que o samba vai trabalhar, se forem #todas as interfaces, comente essa opção. É possível também #especificar a rede. |
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* |
#Habilita alteração de senha pelo windows. |
passwd program = /usr/sbin/smbldap-passwd %u |
#Programa para alterar a senha |
log level = 1 |
#Habilita o nível de debug |
syslog = 1 |
#Mapeia o log para ser registrado pelo syslog |
log file = /var/log/samba/%m.log |
#Define que os logs serão feitos por nome da maquina (%m). |
printcap name = /etc/printcap |
#Define o arquivo de configuração da impressora. Se estiver usando #cups mude essa opção. |
max log size = 100000 |
#Tamanho máximo do arquivo de log (Kilobytes) |
time server = yes |
#O samba passa a ser um servidor de Time para as máquinas Windows |
os level = 200 |
#Este parâmetro define o nmbd master da rede. Maior número |
local master = Yes |
#Define que o servidor poderá se tornar o servidor master da rede |
domain master = Yes |
#Este parametro trocar o workgroup em um domínio |
preferred master = Yes |
#Define que o servidor de preferencia na eleição de domínio na rede |
domain logons = Yes |
#Este parâmetro permite que maquina win9x tenha netlogon no domínio |
logon script = logon.vbs |
#Define o script que vai ser executado na hora do login. |
logon path = \\BACULO\profiles\%U |
#Define o local de armazenamento do perfil |
logon drive = L: |
#Define a letra da únidade do HOME |
wins support = Yes |
#O Samba passa a ser o servidor Wins da Rede |
admin users = "@Domains Admins",root |
#Define os usuários/grupos que serão os administradores do domínio |
ldap passwd sync = Yes |
#Permite que sincronizar a senha do Samba com NT e LM hash, quando #a senha for alterada pelo windows. |
ldap delete dn = No |
#Não permitir que o samba apague o usuário. Somente o Gosa faz #isso. |
passdb backend = ldapsam:ldap://localhost |
#Configurações do servidor LDAP |
ldap admin dn = cn=Manager,dc=trigo |
#Define o administrador da base LDAP |
ldap suffix = dc=trigo |
#Define o suffix da base LDAP |
ldap ssl = no |
#Define se o LDAP está com SSL ou não |
ldap user suffix = ou=people |
#Define o suffix que ficarão os usuários |
ldap group suffix = ou=groups |
#Define o suffix que ficarão os grupos |
ldap machine suffix = ou=computers |
#Define o suffix que ficarão as contas dos computadores |
ldap idmap suffix = ou=Idmap |
#Define o suffix que ficarão os idmaps para o winbind |
ldap replication sleep = 5000 |
#Valor em milisegundos |
add machine script = /usr/sbin/smbldap-useradd -a -w %m |
#Script para criar maquina no LDAP |
recycle:exclude = *.tmp *.temp *.o *.obj ~$* |
#Define os arquivos que não serão gravados na lixeira |
recycle:keeptree = Yes |
#Cria diretório dos arquivos deletados, fica mais organizado |
recycle:touch = Yes |
#Se a data do arquivo eliminado pode ser trocado pela data da #exclusão. Muito útil para limpar a lixeira |
recycle:versions = Yes |
#Permite fazer backup de versão de arquivos repetidos |
recycle:noversions = *.doc|*.xls|*.ppt|*.dwg|*.dxf|*.txt |
#Não faz backup dessas extensões de arquivo |
recycle:repository = /home/lixeira/%U |
#Local que vai ser armazenado os arquivos deletados |
recycle:maxsize = 1000000 |
#Define em bytes o tamanho máximo de um arquivo que vai encaminhado #para a lixeira. O valor zero é sem limite. |
vfs objects = recycle audit |
#Habilita o modulo de lixeira e o sistema de auditoria |
default case = lower |
#Usa internamente caixa baixa |
case sensitive = no |
#Desabilita o case sensitive |
unix charset = iso8859-1 |
#Define o charset do UNIX que vai ser mostrada no compartilhamento |
display charset = iso8859-1 |
#Define o charset que irá utizar para imprimir as mensagens, o #padrão é utizar o valor do "LOCALE", ou você pode definir. |
fstype = NFS |
|
idmap uid = 10000-15000 |
#Mapeamento de uid para o idmap winbind |
idmap gid = 10000-15000 |
#Mapeamento de gid para o idmap winbind |
nt acl support = Yes |
#Habilita o suporte de acl do net. Lembre-se de ativar partição |
protocol = NT1 |
|
announce as = NT Server |
#Define o tipo de servidor que vai anunciar o nmbd |
announce version = 4.5 |
#Define a versão do servidor |
template shell = /bin/false |
#Desabilita o shell, no preenchimento das informações pelo winbnind |
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" |
#Script que define o grupo principal de cada usuário. |
winbind use default domain = no |
#Define que não vai usar idmap para os usuários |
read raw = Yes |
#Habilita pacotes de 65.535 bytes, alguns clientes não conseguem #suportar essa negociação. |
write raw = Yes |
#Habilita o raw write quando os dados são transferidos do cliente |
Level2 oplocks = yes |
#Aumenta o acesso aos arquivos que não são escritos, tais como exe |
max xmit = 65535 |
#Determina o tamanho máximo de um pacote que será negociado pelo #samba. O valor 65535 é o maior. |
dead time = 15 |
#Valor decimal que representa o número de minuto inativo para #considerar que a conexão esta morta de desconectar. |
getwd cache = Yes |
#Essa é uma refinamento na performace. Ativa um algoritmo de #caching o que reduzir o tempo necessário para getwd(). |
socket options = IPTOS_LOWDELAY TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 SO_KEEPALIVE=100 |
#Opção para inicialização do socket |
[homes] |
#Cria o compartilhamento Home |
comment = Diretório Home |
#Comentário sobre o compartilhamento |
valid users = %S |
#usuário que pode acessar o compartilhamento. Apenas o dono (%S) |
browseable = no |
#Indica que a diretória não aparece ao fazer o network browse |
writeable = yes |
#Mostra o compartilhamento |
printable = no |
#Habilita a opção de impressão(impressora) no compartilhamento |
read only = no |
#Define que o compartilhamento não é somente leitura |
available = yes |
#Define que o compartilhamento esta disponível. |
inherit permissions = yes |
#Herda permissão de arquivos e diretório do diretório home |
follow symlinks = no |
#Desabilita o acesso a links |
wide links = no |
#Define se os arquivos com links fora do diretório serão acessados |
force directory mode = 0771 |
#Força a permissão dos diretórios |
force create mode = 0771 |
#Força a permissão dos arquivos |
force group = administrators |
#Força que o grupo seja administradores |
create mode = 0771 |
#Define a permissão que será aplicada ao criar um arquivo |
directory mode = 0771 |
#Define a permissão que será aplicada ao criar um diretório |
map archive = yes |
#Habilita os mapeados de bits do dos para UNIX quando um arquivo é #modificado. |
map system = no |
#Define se o estilo do DOS vai ser mapeado para execução UNIX |
map hidden = no |
#Define se o estilo do DOS para arquivos ocultos vai ser mapeado #para UNIX |
[Geral] |
#Compartilhamento Geral |
comment = Area Publica para todos |
#Comentário sobre o compartilhamento |
path = /home/arquivos/geral |
#Caminho do diretório que será utilizado como geral |
browseable = Yes |
#Indica que a diretória aparece ao fazer o network browse |
public = Yes |
#Torna o compartilhamento público |
[netlogon] |
#Compartilhamento que ficarão os script para execução |
comment = NetLogon Script |
#Comentário sobre o compartilhamento |
path=/etc/samba/netlogon |
#Diretório que ficarão os scripts |
public = no |
#Não é um compartilhamento público |
browseable = no |
#Indica que a diretória não aparece ao fazer o network browse |
read only = yes |
#Define o compartilhamento como somente leitura |
printable = no |
#Não habilita a opção de impressão(impressora) no compartilhamento |
Level2 oplocks = yes |
#Aumenta o acesso aos arquivos que não são escritos, tais como exe |
write list = "@Domains Admins" |
#Define o grupo que pode escrever no compartilhamento |
[profiles] |
#Compartilhamento para armazenar os profiles dos usuários |
comment = Network User Profiles |
#Comentário sobre o compartilhamento |
path = /home/profiles |
#Diretório que ficarão os profiles |
read only = no |
#Define que o compartilhamento não é somente leitura |
create mask = 0700 |
#Define a permissão para arquivos criados |
directory mask = 0700 |
#Define a permissão para diretórios criados |
Browserable = no |
#Indica que a diretória não aparece ao fazer o network browse |
Pegue o arquivo smb.conf limpo.
Após fazer a configuração do arquivo smb.conf, vamos ajustar os compartilhamentos do netlogon e do profile.
-
Netlogon
O compartilhamento netlogon é criado para executar um script na hora do login da máquina na rede. O parâmetro "logon script" do smb.conf define como vai ser o script de logon e o nome. Em nosso caso estamos utilizando apenas um script para todos os usuários, e este script tem o nome de "logon.vbs". Tem caso que é necessário executar um script por usuário ou por grupo.
Crie o arquivo logon.vbs dentro do "/etc/samba/netlogon", se não existir a diretório netlogon, deve ser criado. Lembre-se de criar este arquivo no Windows porque ele é executado no Windows. Se fizer no Linux pode dar algum tipo de erro.
-
/etc/samba/netlogon/logon.vbs
' VBScript. 'WScript.Echo(Mapeando...) Dim net Set objShell = CreateObject(Wscript.Shell) Set net = CreateObject(WScript.Network) net.MapNetworkDrive g:, \\BACULO\geral, False objShell.Run net time \\BACULO /set /y, 0, TRUE
Para o Windows alterar a hora, é preciso alterar o GPO do XP para permitir os usuários altere as datas.
- Profiles
No compartilhamento profiles ficam todos os perfis dos usuários. Crie o diretório "/home/profiles" caso não exista.
Após essas configurações, é testar os parâmetros do SAMBA e em seguida passar a senha do administrador do LDAP (no nosso exemplo é o cn=mananger,dc=trigo) para o samba.
[root@cabeca]# testparm
Se não aparecer nenhum erro, continue.
[root@cabeca]# smbpasswd -w senha_do_manager<br />
- Lixeira
Para o funcionamento da função lixeira, é preciso criar o diretório /home/lixeira e mudar a permissão para permitir que os arquivos apagados sejam encaminhados para o diretório definido.
[root@cabeca]# mkdir /home/lixeira [root@cabeca]# chmod 777 /home/lixeira
Os usuários não terão acesso diretamente aos arquivos apagados.
- Auditoria
Para ativar o sistema de auditoria nas pastas, é necessário acrescentar a seguinte entrada no /etc/syslog.conf.
.*;user.!warn;authpriv.none;cron.none;mail.none;news.none /var/log/samba/audit.log
Crie o arquivo /var/log/samba/audit.log. Neste arquivo que ficarão os logs da auditoria nas pastas.
[root@cabeca]# touch /var/log/samba/audit.log
Agora podemos iniciar o samba.
[root@cabeca]# /etc/init.d/samba restart
5. Adicionando Windows no domínio Samba
Com todas as configurações prontas, vamos colocar uma maquina no domínio e fazer os testes. Com o arquivo smb.conf acima foi possível fazer alteração de senha pelo Windows , recuperar arquivos apagados através da lixeira, armazenar o perfil dos usuários no servidor.
A figura 10 mostra o Windows XP entrando no domínio. A conta da máquina é criada automaticamente na base LDAP.
Figura 10 – Windows entrando no domínio
Com a máquina no domínio, os usuários cadastrados na LDAP podem fazer login e o mapeamento da unidade home e do compartilhamento Geral devem ser feitos. A sincronização da hora com o servidor também deve ser feito no login.
-
Mapeamento
Figura 11 – Mapeamento
Agora temos um servidor de autenticação completo.
Treinamento de OpenLDAP – Uma abordagem Integrada
28 de Maio de 2009, 0:00 - sem comentários aindaInstrutor: Clodonil Honorio Trigo
INSCREVA-SE AGORA
Domine definitivamente o LDAP e integre a sua rede usando apenas uma ferramenta.
Pré-requisitos:
- Conhecimento básico de Linux
Metodologia:
- Curso é oferecido à distância utilizando o ambiente virtual Moodle, com disponibilidade de 99,99%;
- Aulas pelos chat na segunda e quarta-feira das 14h às 17h (logs);
- Utilização obrigatória no fórum do Moodle;
- Exercícios de validação;
Material didático:
- Apostilas;
- Livro: OpenLDAP – Uma abordagem Integrada;
- CDROM – UBUNTU SERVER;
- Vídeo Aulas com as implementações;
- Arquivos de Configurações;
Suporte: Durante o curso é oferecido os seguintes suporte:
- MSN
- Fórum (Moodle)
- Voip (skype)
Duração do curso: 6 semanas Datas:
- Início da Inscrição: 10/05/2009
- Início do curso: 01/07/2009
- Vagas: 10 vagas
- Valor: R$ 840,00
- Mais informações: clodonil@nisled.org, clodo_trigo@hotmail.com
Conteúdo programático:
|
|
Certificado: O certificado será emitido pelo Centro Universitário Adventista de São Paulo com a carga horária de 70 hs para aqueles que participarem dos fóruns e realizarem as atividades proposta.
Sobre Instrutor: Clodonil Honório Trigo Professor no Centro Universitário Adventista de São Paulo – UNASP, onde graduou-se em Matemática, e especializou-se em Administração de Redes Linux e em Didática. Mestre pela Universidade Metodista de Piracicaba- UNIMEP, é ainda especialista em sistemas operacionais em software livre, tendo publicado artigos para revistas especializadas. Atuou como consultor de Linux e participou como palestrante convidado em várias edições do Congresso Internacional de Software Livre realizado em Porto Alegre – RS. Coordena o Grupo de Pesquisa Free-Soft e o Núcleo de Informática em Software Livre Aplicado no Ensino à Distância – NISLED (www.nisled.org). Autor dos livros: Projetos de Segurança em Software Livre e OpenLDAP – Uma abordagem Integrada.
INSCREVA-SE AGORA
GOsa-2.6.x – Gerenciador de Sistemas OpenLDAP (Centralizador)
25 de Maio de 2009, 0:00 - 6 comentáriosComo já falei em outros artigos, o GOsa é uma ótima ferramenta para administração de contas de usuários no LDAP. Além de ter uma interface agradável, os recursos presente na ferramenta auxiliam os administradores de rede. Neste artigo pretendo mostrar a instalação completa do GOsa-2.6.x (combined).
Antes de instalar o GOsa, vamos instalar o pré-requisitos necessários do sistema. Como ponto de partida, será utilizado um Linux Ubuntu 9.04 pré-instalado.
-
Instalando o Apache2 e PHP5
Como o GOsa funciona via WEB, vamos primeiramente instalar o apache e o PHP5.
Após a instalação teste em um browser de internet se o apache está funcionando. O próximo passo é instalar o OpenLDAP.
-
Instalando o LDAP
Vamos utilizar o pacote do ubuntu para instalar o LDAP. Portanto instale o slapd e ldap-utils.
Não fique preocupado com as informações que são requeridas durante a instalação do slapd. Todas essas informações serão rescritas nas configurações que faremos. Para configurar o LDAP vamos precisar dos schemas do GOsa. Portanto faça o download do pacote no site http://oss.gonicus.de/pub/gosa/ ou você também pode pegar as últimas atualizações através do subversion.É recomendável fazer o download do GOsa pelo subversion porque pega as últimas atualizações.
Se você optar fazer o download do pacote "tar.gz", utilize a versão 2.6.x da versão combined. Após fazer o download descompacte o GOsa dentro do diretório /usr/share/. E crie um link simbólico para /usr/share/gosa. O mesmo procedimento deve ser feito tanto para quem fez o download do GOsa pelo subversion ou pelo download do "tar.gz".
Segue abaixo o código que realiza essas tarefas:
Copie os arquivos de schema que estão dentro do diretório /usr/share/gosa/contrib/openldap para dentro do /etc/ldap/schema.
Com os schemas copiados vamos configurar o arquivo slapd.conf.
-
/etc/ldap/slapd.conf
Por padrão o Ubuntu trás o slapd com a configuração online. Para tirar essa opção e fazer a configuração manual utilizando o arquivo slapd.conf, teremos primeiramente que parar o slapd, apagar o diretório /etc/ldap/slapd.d e editar o arquivo /etc/default/slapd acrescentando ao path do arquivo de configuração dentro da variável SLAPD_CONF.
Configure o slapd.conf conforme abaixo altere o domínio e as senhas.
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/openldap.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/misc.schema include /etc/ldap/schema/samba3.schema include /etc/ldap/schema/gosystem.schema include /etc/ldap/schema/gofon.schema include /etc/ldap/schema/goto.schema include /etc/ldap/schema/goserver.schema include /etc/ldap/schema/gosa-samba3.schema include /etc/ldap/schema/trust.schema password-hash {CRYPT} defaultsearchbase dc=trigo pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel 1024 modulepath /usr/lib/ldap moduleload back_hdb moduleload back_monitor access to dn.base="" by * read access to dn.subtree=cn=Monitor by * read access to attrs=userPassword,sambaPwdLastSet,sambaPwdMustChange,sambaPwdCanChange \ ,shadowMax,shadowExpire by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" write by anonymous auth by self write by * none access to attrs=goImapPassword by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" write by * none access to attrs=goKrbPassword by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" write by * none access to attrs=goFaxPassword by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" write by * none access to attrs=gotoLastUser by * write access to attrs=sambaLmPassword,sambaNtPassword by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" write by anonymous auth by self write by * none access to * by dn.regex="uid=[^/]+/admin\+(realm=TRIGO)?" =wrscx by * readdatabase monitor database hdb cachesize 5000 mode 0600 suffix "dc=trigo" checkpoint 512 720 rootdn "cn=manager,dc=trigo" rootpw x index default sub index uid,mail eq index gosaSnapshotDN eq index gosaSnapshotTimestamp eq,sub index gosaMailAlternateAddress,gosaMailForwardingAddress eq index cn,sn,givenName,ou pres,eq,sub index objectClass pres,eq index uidNumber,gidNumber,memberuid eq index gosaSubtreeACL,gosaObject,gosaUser pres,eq index member pres,eq index sambaSID eq index sambaPrimaryGroupSID eq index sambaDomainName eq directory "/var/lib/ldap" lastmod on
Para testar inicie o servidor LDAP em modo debug. Se existir algum erro a linha que contém o erro será mostrada.
Se nenhum erro for apresentado, você já pode iniciar o LDAP da forma tradicional
- Gosa
Após a instalação do OpenLDAP vamos começar a instalar o GOsa. Lembrando que descompactamos toda a ferramenta dentro do diretório /usr/share/gosa. Crie os seguintes diretórios:
- /var/spool/gosa (Coloque o usuário do apache como dono deste diretório)
- /etc/gosa
Instale os seguintes módulos do PHP:
- Suporte ao LDAP (php5-ldap)
- Suporte ao Mshash (php5-mhash)
- Suporte ao IMAP (php5-imap)
- Suporte ao Mysql(php5-mysql)
- fping
- libcrypt-smbhash-perl
- Imagick (php5-imagick)
A configuração que temos que fazer no apache é criar um alias do gosa apontando no /usr/share/gosa/html.
Alias /gosa /usr/share/gosa/html
Acrescente a linha acima no arquivo "/etc/apache2/sites-enabled/000-default". Também é necessário alterar alguns parâmetros do php.ini, para isso altere o arquivo /etc/php5/apache2/php.ini, conforme o exemplo abaixo.
register_globals = Off session.gc_maxlifetime = 86400 session.auto_start = Off memory_limit = 32 M implicit_flush = Off max_execution_time = 30 expose_php = Off magic_quotes_gpc = On zend.ze1_compatibility_mode = Off
Após as configurações reinicie o apache
Antes de acessar o site pelo browser, temos que rodar o comando "update-gosa" para o gosa fazer os devidos updates. Dentro do diretório "/usr/share/gosa", execute o seguinte comando
-
Instalação pelo browser
Acesse o browser e termine a instalação; utilize as telas abaixo para se guiar. Ao iniciar o browser chame o endereço do servidor apache (http://ip-do-servidor/gosa). A primeira tela que deverá aparecer é a tela1. Nesta tela podemos destacar como característica a preocupação dos criadores do GOsa com a segurança. Para continuarmos a instalação é necessário copiar a chave especifica e colocar no /tmp.
Tela1 – Inicio da instalação
Na segunda tela o usuário terá a opção de escolher o idioma que desejar usar. Não existe em português. A Seguinte expressa à licença de uso do software. A tela 4, é uma checagem dos pré-requisitos. Todas as opções requeridas devem ser atendidas. Nos pré-requisitos que descrevi anteriormente, estes itens já são instalados.
Tela4 – Checagem de pré-requisitos
A tela seguinte (tela5) também é um método de checagem de arquivos schema. Caso apareça algum erro, deve ser resolvido antes de continuar a instalação.
Tela 5 – Checagem de schemas
Na tela 6, o usuário tem que configurar a conexão com o servidor LDAP. Defina um usuário que tenha permissão de administrador na base LDAP. De acordo a configuração feita, este usuário é o cn=manager
Tela 6 – Administrador da base LDAP
Nas telas seguintes, são definidas o timezone e os aditivos de serviços que o GOsa vai suportar, tais como DNS, DHCP, entre outros. Nas telas seguintes é necessário definir as entradas de usuário e grupos, além da criptografia utiliza. Também é necessário configurar as principais funcionalidades do GOsa tais como, sessão, debug e gid, como mostra a Tela 7.
Tela 7 – Funcionalidades do GOsa
A tela seguinte é muito importante. O GOsa reorganiza todas os objetos cadastrados na base LDAP. É também cadastra o usuário administrador do GOsa. Não confunda com o administrador da base LDAP, a Tela 8 e 9 mostra essa tela.
Tela 8 – Cadastro da Estrutura do Gosa
O erro acima aconteceu porque a estrutura não existe. Para criar a estrutura clicando no "Try to create root object". Deve ficar como a tela 9. Também na tela 8 é necessário definir a senha do administrador do GOsa.
Tela 9 – Criação da estrutura
As últimas telas estão relacionadas ao arquivo de configuração. Este arquivo deve ser copiado para o diretório /etc/gosa e as permissões devem ser configuradas conforme solicitado na instalação. As telas seguintes mostram a tela de login e o gerenciamento da base LDAP.
Ambiente de gerenciamento dos usuários.
Tela 10 – Ambiente do GOsa
Tela 11- Gerenciamento de contas
Pronto, você tem um poderoso gerenciador de usuário e grupos.
Servidor de OpenFire (Jabber) – Integração Perfeita com o Gosa
7 de Maio de 2009, 0:00 - sem comentários aindaPara instalar o servidor de mensagem instantânea e integrar com o LDAP é necessário os seguintes pré-requisitos estejam instalados.
Pré-requisito:
- Instalar e Configurar o LDAP;
- Instalar e configurar o Gosa;
- Ubuntu Server (pode ser outro)
A seguir a figura 1 mostra uma tela do Gosa com a base de usuário cadastrado. As informações que o Jabber utiliza são os campos uid,password,cn,mail,displayName. Esses campos são cadastrados automaticamente quando um usuário é criado. Os outros serviços cadastrados para o usuário, tais como e-mail, samba não interferem no jabber.
Figura 1 – Tela do Gosa
O Jabber é um protocolo para mensagem instantânea que pode ser implementado em uma rede. Muitas empresas necessitam de um mecanismo de comunicação interna através de software de mensagem instantânea, mas não quer utilizar os softwares disponibilizados na Internet como ICQ, MSM, por questão de produtividade, para estes casos existe o jabber. Existe na Internet vários clientes que suportam este protocolo, neste material vamos utilizar o Gajim.
- OpenFire
OpenFire é um servidor de mensagem instantânea que implementa o protocolo Jabber. A grande vantagem do OpenFire são os recursos de gerenciamento de conexões e os vários plugins. Também é possível disponibilizar áudio conferencia.
Antes de instalar o OpenFile é necessário instalar as dependência do Java. Os códigos seguintes mostram como fazer isso.
Com a dependência do Java instalada, vamos instalar o OpenFire.Para isso faça download do pacote no site www.igniterealtime.org. Neste documento vamos utilizar a versão para debian e ubuntu.
Após a instalação, o servidor do OpenFire é iniciado automaticamente na porta 9090 e toda a configuração e feita via web. Portanto acesse o servidor por um browser na porta 9090.
A figura 2 mostra a tela de configuração que define a porta de acesso da área administrativa. A variável domínio é utiliza para conexão dos clientes.
Figura 2 – Configuração do Dominio
Na tela de configuração do banco de dados, defina como banco de dados interno. E na tela seguinte define que os usuários estarão na base de dados do LDAP. A próxima tela é importante porque define a conexão com o servidor LDAP. A figura 3 mostra um exemplo de configuração, o importante é testar a conexão antes de seguir para a próxima tela.
Figura 3 – Tela de conexão com o servidor LDAP
Na tela seguinte, certifique que o campo nome do usuário esteja definido com o valor "uid". Todos os outros campos que estão entre {} serão buscando na base LDAP e caso você queria, pode mudar por outros valores. Na última tela é preciso definir o usuário que está na base LDAP que vai ser o administrador do OpenFire. Normalmente colocamos o "admin" que é o mesmo administrador do Gosa.
Ao entrar no OpenFile é possível ver a lista de usuário que deve ser a mesma da base LDAP, como mostra a figura 4.
Figura 4 – Lista de usuários
Outro recurso interessante são as estatísticas de conexões que a ferramenta oferece como mostra a figura 5.
Figura 5 – Estatística
- Cliente
Existem vários clientes jabber para todos os sistemas operacionais. Como teste, utilize o Gajim que é multiplataforma. Um cuidado que deve ter na hora de acrescentar o usuário, é colocar o domínio (figura 2) do jabber. Portanto a composição do usuário fica nome@dominio. A figura 6 e 7 mostra o Gajim em funcionamento.
Figura 6 – Cliente Gajim no XP
Figura 7 – Gajim no Windows 7
Servidor de OpenFire (Jabber) – Integração Perfeita com o Gosa (LDAP)
7 de Maio de 2009, 0:00 - sem comentários aindaPara instalar o servidor de mensagem instantânea e integrar com o LDAP é necessário os seguintes pré-requisitos estejam instalados.
Pré-requisito:
- Instalar e Configurar o LDAP;
- Instalar e configurar o Gosa;
- Ubuntu Server (pode ser outro)
A seguir a figura 1 mostra uma tela do Gosa com a base de usuário cadastrado. As informações que o Jabber utiliza são os campos uid,password,cn,mail,displayName. Esses campos são cadastrados automaticamente quando um usuário é criado. Os outros serviços cadastrados para o usuário, tais como e-mail, samba não interferem no jabber.
Figura 1 – Tela do Gosa
O Jabber é um protocolo para mensagem instantânea que pode ser implementado em uma rede. Muitas empresas necessitam de um mecanismo de comunicação interna através de software de mensagem instantânea, mas não quer utilizar os softwares disponibilizados na Internet como ICQ, MSM, por questão de produtividade, para estes casos existe o jabber. Existe na Internet vários clientes que suportam este protocolo, neste material vamos utilizar o Gajim.
- OpenFire
OpenFire é um servidor de mensagem instantânea que implementa o protocolo Jabber. A grande vantagem do OpenFire são os recursos de gerenciamento de conexões e os vários plugins. Também é possível disponibilizar áudio conferencia. Antes de instalar o OpenFile é necessário instalar as dependência do Java. Os códigos seguintes mostram como fazer isso.
Com a dependência do Java instalada, vamos instalar o OpenFire.Para isso faça download do pacote no site www.igniterealtime.org. Neste documento vamos utilizar a versão para debian e ubuntu.
Após a instalação, o servidor do OpenFire é iniciado automaticamente na porta 9090 e toda a configuração e feita via web. Portanto acesse o servidor por um browser na porta 9090.
A figura 2 mostra a tela de configuração que define a porta de acesso da área administrativa. A variável domínio é utiliza para conexão dos clientes.
Figura 2 – Configuração do Dominio
Na tela de configuração do banco de dados, defina como banco de dados interno. E na tela seguinte define que os usuários estarão na base de dados do LDAP. A próxima tela é importante porque define a conexão com o servidor LDAP. A figura 3 mostra um exemplo de configuração, o importante é testar a conexão antes de seguir para a próxima tela.
Figura 3 – Tela de conexão com o servidor LDAP
Na tela seguinte, certifique que o campo nome do usuário esteja definido com o valor "uid". Todos os outros campos que estão entre {} serão buscando na base LDAP e caso você queria, pode mudar por outros valores. Na última tela é preciso definir o usuário que está na base LDAP que vai ser o administrador do OpenFire. Normalmente colocamos o "admin" que é o mesmo administrador do Gosa.
Ao entrar no OpenFile é possível ver a lista de usuário que deve ser a mesma da base LDAP, como mostra a figura 4.
Figura 4 – Lista de usuários
Outro recurso interessante são as estatísticas de conexões que a ferramenta oferece como mostra a figura 5.
Figura 5 – Estatística
- Cliente
Existem vários clientes jabber para todos os sistemas operacionais. Como teste, utilize o Gajim que é multiplataforma. Um cuidado que deve ter na hora de acrescentar o usuário, é colocar o domínio (figura 2) do jabber. Portanto a composição do usuário fica nome@dominio. A figura 6 e 7 mostra o Gajim em funcionamento.
Figura 6 – Cliente Gajim no XP
Figura 7 – Gajim no Windows 7