Mudanças entre as edições de "Implantação de um controle centralizado de usuários utilizando o protocolo LDAP"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Criou página com 'Este texto foi escrito com o objetivo de cumprir as atividades exigidas para formatura no Curso Superior de Tecnologia em Telecomunicações do Instituto Federal de Santa Catarin...')
 
 
(26 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
 +
== '''Introdução''' ==
 +
O uso e aplicação de tecnologias vêm desenvolvendo um papel importante dentro das empresas, interconectando sistemas em rede com o objetivo de oferecer uma melhor experiência e serviços aos seus clientes. As tendências para integrar as informações e os dados, assim como: login, senha, permissionamento, nome, e-mail, aplicações disponíveis, surgem como uma forma de minimizar transtornos dentro dos ambientes corporativos. Soluções para prover a diminuição dos gastos utilizando serviços de código aberto (open source) ganham espaço no mercado e são explorados por profissionais da área. O protocolo que será discutido e implementado durante este projeto está em destaque quando o assunto é a utilização do serviço de diretório para o gerenciamento de infraestruturas de redes. Segundo o Redbook da IBM - Understanding LDAP Design and Implementation (pg3),  “para aumentar a funcionalidade e o uso, e permitir um custo benefício para administrar aplicações distribuídas, informações sobre os serviços, fontes, usuários, e outros objetos acessíveis vindo das aplicações, precisam ser organizadas de uma maneira limpa e consistente.” Envolvendo estas necessidades, foi desenvolvido o protocolo que será abordado neste documento.
 +
 +
A integração de uma ferramenta opensource, para o gerenciamento centralizado dos dados (atributos do usuário citados anteriormente) utilizando o protocolo LDAP, surge a partir de uma necessidade corporativa, onde se faz necessário integrar as informações (credenciais e atributos) dos usuários, fazendo com que os dados fiquem centralizados em um único servidor base. Segundo o livro da IBM (pg 3-4), “LDAP tem ganhado uma ampla aceitação como um método de acesso a diretórios da internet e também se tornando uma ferramenta estratégica dentro das intranets corporativas. E apoiada por um número crescente de fornecedores de softwares e está sendo incorporado a um número crescente de aplicações.” Tendo em vista esta oportunidade, se fortaleceu a proposta do projeto, implementando o gerenciamento utilizando do protocolo.
 +
 +
 +
 +
== '''Resumo''' ==
 
Este texto foi escrito com o objetivo de cumprir as atividades exigidas para formatura no Curso Superior de Tecnologia em Telecomunicações do Instituto Federal de Santa Catarina. A metodologia utilizada se caracteriza através da apresentação de um protocolo padrão de comunicação que utiliza um serviço de diretório, através de uma abordagem teórica e técnica. A abordagem principal se dará sobre soluções open-source, discorrendo sobre o protocolo LDAP. Os conceitos teóricos apresentados nos primeiros capítulos é de extrema importância para se criar uma base de entendimento inicial sobre o assunto, para posteriormente implementar e criar o ambiente de estudo e análise. O presente trabalho portanto, pretende com a utilização do protocolo LDAP, implementar um gerenciamento centralizado de usuários, integrando aplicações da infraestrutura de rede em uma base de dados, mantendo a informação em um único repositório.
 
Este texto foi escrito com o objetivo de cumprir as atividades exigidas para formatura no Curso Superior de Tecnologia em Telecomunicações do Instituto Federal de Santa Catarina. A metodologia utilizada se caracteriza através da apresentação de um protocolo padrão de comunicação que utiliza um serviço de diretório, através de uma abordagem teórica e técnica. A abordagem principal se dará sobre soluções open-source, discorrendo sobre o protocolo LDAP. Os conceitos teóricos apresentados nos primeiros capítulos é de extrema importância para se criar uma base de entendimento inicial sobre o assunto, para posteriormente implementar e criar o ambiente de estudo e análise. O presente trabalho portanto, pretende com a utilização do protocolo LDAP, implementar um gerenciamento centralizado de usuários, integrando aplicações da infraestrutura de rede em uma base de dados, mantendo a informação em um único repositório.
 +
 +
Palavras-chave: LDAP, OpenLDAP, centralização de usuários.
 +
 +
== '''Objetivos''' ==
 +
Fazer integração do servidor de diretório LDAP em um conjunto de aplicações diversas, tais como servidores web (nginx e/ou apache), SSH, serviço de e-mail corporativo Zimbra e as plataformas cPanel e WHMCS que fazem o gerenciamento de servidores de hospedagem de web sites. Portanto, as informações (credenciais e atributos) dos usuários serão centralizadas em um sistema de diretório único, facilitando o acesso aos dados e reduzindo custos de gerenciamento e manutenção.
 +
 +
 +
== '''Atual Condição''' ==
 +
Subindo o servidor para implementação do Openldap e phpmyadmin,  e começando a integrar com as aplicações de estudo.
 +
 +
== '''Primeiras configurações no Servidor LDAP''' ==
 +
 +
 +
Servidor está localizando na AWS
 +
Para se fazer login no servidor, estou usando uma chave privada:
 +
<pre>
 +
ssh -i "murielLDAP.pem" ubuntu@52.67.59.32
 +
</pre>
 +
 +
Primeiros passos no servidor:
 +
apt-get install slapd  (instalando o OpenLdap)
 +
apt-get install ldap-utils (instalando as biblitecas necessárias)
 +
apt-get install phpldapadmin (instalando phpldap admin)
 +
 +
Acesso via brownser a estrutura do servidor LDAP:
 +
http://52.67.59.32/phpldapadmin
 +
 +
diretório LDAP  localizado em: /etc/ldap/
 +
Arquivos de configuração dentro de /etc/ldap
 +
<pre>
 +
slapd.conf
 +
ldap.conf
 +
</pre>
 +
 +
Servidor configurado, foi configurado um cliente no mesmo servidor, seguindo estas configurações:
 +
 +
Para adicionar uma entrada ldif a base LDAP do servidor:
 +
<pre>
 +
ldapadd -x -W -D "cn=admin,dc=serverdo,dc=in" -f usuario.ldif
 +
</pre>
 +
cn = admin = common name admin (para adicionar a base)
 +
dc =serverdo, dc=in = este é o nome da base(dominio) LDAP criada no servidor, portando os grupos e usuários devem ser criados nesta base.
 +
 +
O usuário.ldif possui as configurações que seguem:
 +
<pre>
 +
dn: uid=luciano,ou=usuarios,dc=serverdo,dc=in
 +
objectClass: inetOrgPerson
 +
objectClass: posixAccount
 +
objectClass: shadowAccount
 +
uid: luciano
 +
sn: barreto
 +
givenName: Luciano
 +
cn: Luciano Barreto
 +
displayName: Luciano Barreto
 +
uidNumber: 2001
 +
gidNumber: 100
 +
userPassword: xxxxxxxx
 +
loginShell: /bin/bash
 +
homeDirectory: /home/lucianoldap
 +
 +
</pre>
 +
Esta foi uma entrada de exemplo adicionada a base LDAP.
 +
 +
<pre>
 +
$ slapcat (mostra a àrvode de diretórios DIT)
 +
$ service sladp status (verificar se esta rodando o serviço)
 +
</pre>
 +
 +
'''Instalando um cliente para acessar ssh o servidor'''
 +
<pre>
 +
$ apt-get install libpam-ldap
 +
</pre>
 +
<pre>
 +
$ apt-get install nscd
 +
</pre>
 +
<pre>
 +
$ vi /etc/nsswitch.conf
 +
</pre>
 +
passwd:        files ldap
 +
 +
group:          files ldap
 +
 +
<pre>
 +
$ service nscd restart
 +
</pre>
 +
 +
<pre>
 +
$ vi /etc/ldap.conf
 +
</pre>
 +
base dc=serverdo,dc=in
 +
uri ldap://10.0.2.27 (ip interno do servidor)
 +
 +
<pre>
 +
$ chmod 600 /etc/ldap.conf
 +
</pre>
 +
 +
<pre>
 +
$ vi /etc/pam.d/sshd
 +
</pre>
 +
auth    sufficient      pam_ldap.so
 +
account sufficient      pam_permit.so
 +
 +
 +
<pre>
 +
$ vi /etc/pam.d/common-session
 +
</pre>
 +
session    required      pam_mkhomedir.so skel=/etc/skel umask=0022
 +
 +
<pre>
 +
$ vi /etc/pam.d/common-password
 +
</pre>
 +
password required pam_deny.so
 +
 +
 +
$  vi /etc/ssh/sshd_config
 +
 +
$ service ssh restart
 +
 +
'''Pronto! Agora é so fazer o Login (com o usuário.ldif que foi adicionado a base) no servidor LDAP, porém, estamos utilizando um cliente na mesma máquina do servidor.'''
 +
 +
Para verificar os erros de autenticação no servidor
 +
$vi /var/log/auth.log
 +
 +
 +
== '''Após queda do servidor devido a máquina SPOT montada, novas configurações foram feitas ''' ==
 +
 +
'''Configurações do Servidor Web APACHE! - configurado na VM'''
 +
 +
habilitar os módulos do LDAP
 +
 +
$ sudo a2enmod authnz_ldap
 +
 +
$ a2enmod ldap
 +
 +
sudo vi /etc/apache2/apache2.conf
 +
Adicionado:
 +
 +
 +
<pre>
 +
<Directory /var/www/>
 +
#require all granted
 +
AuthType Basic
 +
AuthName "Login via LDAP"
 +
AuthBasicProvider ldap
 +
AuthLDAPURL ldap://52.67.59.32/dc=ldap,dc=com?uid
 +
require valid-user
 +
</Directory>
 +
 +
</pre>
 +
 +
$ sudo service apache2 restart
 +
 +
$ lynx localhost
 +
 +
Ao tentar conexão ao http://localhost Irá pedir uma senha para acesso, somente acessa o usuário cadastrado no servidor LDAP!!!
 +
 +
'''Configurações do cliente SSH para autenticar via LDAP - Configurado na VM'''
 +
 +
$ sudo apt-get install auth-client-config  nscd
 +
$apt-get install libnss-ldap  (apontar para o servidor ldap)
 +
 +
$sudo dpkg-reconfigure  auth-client-config (caso de algum erro de configuração, coloquei ldap://http://52.67.59.32 e depois a senha e as configurações da base, todas como cn=ldap,cn=com e na ultima 
 +
resultados ficam em /etc/ldap.conf
 +
 +
$sudo auth-client-config -t nss -p lac_ldap
 +
 +
resultado no /etc/nsswitch.conf
 +
 +
$pam-auth-update
 +
 +
resultados no /etc/pam.d
 +
 +
para testar:
 +
ssh luciano@ldap-client (ldap-client = Virtual Machine)
 +
pronto! conectei via ssh com a senha criada no servidor LDAP!!
 +
 +
== '''Referência Bibliográficas''' ==
 +
 +
MENEGUITE, R.L. LDAP – Autenticação Centralizada.} Dissertação - Faculdades Unificadas Doctum de Cataguases, MG - Brasil, 2009.
 +
 +
DONLEY, C. LDAP Programming, Management and Integration. 74. ed. Greenwich - Ct: Manning, 2003. 352 p.
 +
 +
WAN, Xin; SCHULZRINNE, Henning; KANDLUR, Dilip; Verma, D. Measurement and Analysis of LDAP Performance. [s. L.]: Ieee/acm Transactions On Networking, 2008. 12 p.
 +
 +
YEGULALP, Serdar (Ed.). Nginx passes Apache as Web server of choice among top sites: Biggest slice of the top 1,000 websites now uses Nginx over Apache's or Microsoft's Web servers, says W3Techs survey -- but Apache is still tops overall. 2014. Disponível em: <http://www.infoworld.com/article/2608377/open-source-software/nginx-passes-apache-as-web-server-of-choice-among-top-sites.html>. Acesso em: 08 julho 2016.
 +
 +
BUTCHER, Matt. Mastering OpenLDAP: Configuring, Securing, and Integrating Directory Services. Birmingham - Mumbai: Packt, 2007. 482 p.
 +
 +
TUTTLE, Steven; EHLENBERGER, Ami; GORTHI, Ramakrishna; LEISERSON, Jay; MACBETH, Richard; OWEN, Nathan; RANAHANDOLA, Sunil; STORRS, Michael; YANG, Chunhui. Understanding LDAP: Design and Implementation. 2. ed. [s. L.]: Ibm Tivoli Directory Server, 2004. 774 p.
 +
 +
MACHADO, Erich Soares; MORI JUNIOR, Flavio da Silva.Autenticação Integrada Baseada em Serviço de Diretório LDAP. 2006. 84 f. Monografia - Curso de Ciência da Computação, Ime, Universidade de São Paulo, São Paulo, 2006.
 +
 +
EVARISTO, Lincon Ruam Angioletti. Integrando a base de usuários LDAP com serviços de e-mail, proxy web e ssh. 2002. 51 f. Tese (Doutorado) - Curso de Sistemas de Informação, Instituto Superior Tupy, Joinville, 2008.
 +
 +
TRIGO, Clodonil Honório. OpenLdap: Uma Abordagem Integrada São Paulo: Novatec, 2007. 240 p.
 +
 +
SARI, Riri Fitri; HIDAYAT, Syarif. Integrating Web Server Applications With LDAP Authentication: Case Study on Human Resources Information System of Ul. Kampus Baru, Indonesia: Electrical Engineering Department, Faculty Of Engineering University Of Indonesia,. 6 p.
 +
 +
CHAVES, Tiago Rodrigues. Autenticação IEEE 802.1X baseada no protocolo RADIUS e serviço de diretório LDAP aplicado a rede GIGAUFOPNET. 2010. 110 f. Monografia - Curso de Ciência da Computação, Instituto de Ciências Exatas, Universidade Federal de Ouro Preto, Ouro Preto, 2010.
 +
 +
INÁCIO JÚNIOR, Jorgeley. Redes Linux: Comandos gerais e Servidores de redes.Foca Linux, 2004. 41 p.

Edição atual tal como às 19h05min de 1 de outubro de 2016

Introdução

O uso e aplicação de tecnologias vêm desenvolvendo um papel importante dentro das empresas, interconectando sistemas em rede com o objetivo de oferecer uma melhor experiência e serviços aos seus clientes. As tendências para integrar as informações e os dados, assim como: login, senha, permissionamento, nome, e-mail, aplicações disponíveis, surgem como uma forma de minimizar transtornos dentro dos ambientes corporativos. Soluções para prover a diminuição dos gastos utilizando serviços de código aberto (open source) ganham espaço no mercado e são explorados por profissionais da área. O protocolo que será discutido e implementado durante este projeto está em destaque quando o assunto é a utilização do serviço de diretório para o gerenciamento de infraestruturas de redes. Segundo o Redbook da IBM - Understanding LDAP Design and Implementation (pg3),  “para aumentar a funcionalidade e o uso, e permitir um custo benefício para administrar aplicações distribuídas, informações sobre os serviços, fontes, usuários, e outros objetos acessíveis vindo das aplicações, precisam ser organizadas de uma maneira limpa e consistente.” Envolvendo estas necessidades, foi desenvolvido o protocolo que será abordado neste documento.

A integração de uma ferramenta opensource, para o gerenciamento centralizado dos dados (atributos do usuário citados anteriormente) utilizando o protocolo LDAP, surge a partir de uma necessidade corporativa, onde se faz necessário integrar as informações (credenciais e atributos) dos usuários, fazendo com que os dados fiquem centralizados em um único servidor base. Segundo o livro da IBM (pg 3-4), “LDAP tem ganhado uma ampla aceitação como um método de acesso a diretórios da internet e também se tornando uma ferramenta estratégica dentro das intranets corporativas. E apoiada por um número crescente de fornecedores de softwares e está sendo incorporado a um número crescente de aplicações.” Tendo em vista esta oportunidade, se fortaleceu a proposta do projeto, implementando o gerenciamento utilizando do protocolo.


Resumo

Este texto foi escrito com o objetivo de cumprir as atividades exigidas para formatura no Curso Superior de Tecnologia em Telecomunicações do Instituto Federal de Santa Catarina. A metodologia utilizada se caracteriza através da apresentação de um protocolo padrão de comunicação que utiliza um serviço de diretório, através de uma abordagem teórica e técnica. A abordagem principal se dará sobre soluções open-source, discorrendo sobre o protocolo LDAP. Os conceitos teóricos apresentados nos primeiros capítulos é de extrema importância para se criar uma base de entendimento inicial sobre o assunto, para posteriormente implementar e criar o ambiente de estudo e análise. O presente trabalho portanto, pretende com a utilização do protocolo LDAP, implementar um gerenciamento centralizado de usuários, integrando aplicações da infraestrutura de rede em uma base de dados, mantendo a informação em um único repositório.

Palavras-chave: LDAP, OpenLDAP, centralização de usuários.

Objetivos

Fazer integração do servidor de diretório LDAP em um conjunto de aplicações diversas, tais como servidores web (nginx e/ou apache), SSH, serviço de e-mail corporativo Zimbra e as plataformas cPanel e WHMCS que fazem o gerenciamento de servidores de hospedagem de web sites. Portanto, as informações (credenciais e atributos) dos usuários serão centralizadas em um sistema de diretório único, facilitando o acesso aos dados e reduzindo custos de gerenciamento e manutenção.


Atual Condição

Subindo o servidor para implementação do Openldap e phpmyadmin, e começando a integrar com as aplicações de estudo.

Primeiras configurações no Servidor LDAP

Servidor está localizando na AWS Para se fazer login no servidor, estou usando uma chave privada:

ssh -i "murielLDAP.pem" ubuntu@52.67.59.32

Primeiros passos no servidor: apt-get install slapd (instalando o OpenLdap) apt-get install ldap-utils (instalando as biblitecas necessárias) apt-get install phpldapadmin (instalando phpldap admin)

Acesso via brownser a estrutura do servidor LDAP: http://52.67.59.32/phpldapadmin

diretório LDAP localizado em: /etc/ldap/ Arquivos de configuração dentro de /etc/ldap

slapd.conf 
ldap.conf

Servidor configurado, foi configurado um cliente no mesmo servidor, seguindo estas configurações:

Para adicionar uma entrada ldif a base LDAP do servidor:

ldapadd -x -W -D "cn=admin,dc=serverdo,dc=in" -f usuario.ldif

cn = admin = common name admin (para adicionar a base) dc =serverdo, dc=in = este é o nome da base(dominio) LDAP criada no servidor, portando os grupos e usuários devem ser criados nesta base.

O usuário.ldif possui as configurações que seguem:

dn: uid=luciano,ou=usuarios,dc=serverdo,dc=in
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: luciano
sn: barreto
givenName: Luciano
cn: Luciano Barreto
displayName: Luciano Barreto
uidNumber: 2001
gidNumber: 100
userPassword: xxxxxxxx
loginShell: /bin/bash
homeDirectory: /home/lucianoldap

Esta foi uma entrada de exemplo adicionada a base LDAP.

$ slapcat (mostra a àrvode de diretórios DIT)
$ service sladp status (verificar se esta rodando o serviço)

Instalando um cliente para acessar ssh o servidor

$ apt-get install libpam-ldap
$ apt-get install nscd
$ vi /etc/nsswitch.conf 

passwd: files ldap

group: files ldap

$ service nscd restart
$ vi /etc/ldap.conf 

base dc=serverdo,dc=in uri ldap://10.0.2.27 (ip interno do servidor)

$ chmod 600 /etc/ldap.conf
$ vi /etc/pam.d/sshd

auth sufficient pam_ldap.so account sufficient pam_permit.so


$ vi /etc/pam.d/common-session

session required pam_mkhomedir.so skel=/etc/skel umask=0022

$ vi /etc/pam.d/common-password

password required pam_deny.so


$ vi /etc/ssh/sshd_config

$ service ssh restart

Pronto! Agora é so fazer o Login (com o usuário.ldif que foi adicionado a base) no servidor LDAP, porém, estamos utilizando um cliente na mesma máquina do servidor.

Para verificar os erros de autenticação no servidor $vi /var/log/auth.log


Após queda do servidor devido a máquina SPOT montada, novas configurações foram feitas

Configurações do Servidor Web APACHE! - configurado na VM

habilitar os módulos do LDAP

$ sudo a2enmod authnz_ldap

$ a2enmod ldap

sudo vi /etc/apache2/apache2.conf Adicionado:


<Directory /var/www/>
#require all granted
AuthType Basic
AuthName "Login via LDAP"
AuthBasicProvider ldap
AuthLDAPURL ldap://52.67.59.32/dc=ldap,dc=com?uid
require valid-user
</Directory>

$ sudo service apache2 restart

$ lynx localhost

Ao tentar conexão ao http://localhost Irá pedir uma senha para acesso, somente acessa o usuário cadastrado no servidor LDAP!!!

Configurações do cliente SSH para autenticar via LDAP - Configurado na VM

$ sudo apt-get install auth-client-config nscd $apt-get install libnss-ldap (apontar para o servidor ldap)

$sudo dpkg-reconfigure auth-client-config (caso de algum erro de configuração, coloquei ldap://http://52.67.59.32 e depois a senha e as configurações da base, todas como cn=ldap,cn=com e na ultima resultados ficam em /etc/ldap.conf

$sudo auth-client-config -t nss -p lac_ldap

resultado no /etc/nsswitch.conf

$pam-auth-update

resultados no /etc/pam.d

para testar: ssh luciano@ldap-client (ldap-client = Virtual Machine) pronto! conectei via ssh com a senha criada no servidor LDAP!!

Referência Bibliográficas

MENEGUITE, R.L. LDAP – Autenticação Centralizada.} Dissertação - Faculdades Unificadas Doctum de Cataguases, MG - Brasil, 2009.

DONLEY, C. LDAP Programming, Management and Integration. 74. ed. Greenwich - Ct: Manning, 2003. 352 p.

WAN, Xin; SCHULZRINNE, Henning; KANDLUR, Dilip; Verma, D. Measurement and Analysis of LDAP Performance. [s. L.]: Ieee/acm Transactions On Networking, 2008. 12 p.

YEGULALP, Serdar (Ed.). Nginx passes Apache as Web server of choice among top sites: Biggest slice of the top 1,000 websites now uses Nginx over Apache's or Microsoft's Web servers, says W3Techs survey -- but Apache is still tops overall. 2014. Disponível em: <http://www.infoworld.com/article/2608377/open-source-software/nginx-passes-apache-as-web-server-of-choice-among-top-sites.html>. Acesso em: 08 julho 2016.

BUTCHER, Matt. Mastering OpenLDAP: Configuring, Securing, and Integrating Directory Services. Birmingham - Mumbai: Packt, 2007. 482 p.

TUTTLE, Steven; EHLENBERGER, Ami; GORTHI, Ramakrishna; LEISERSON, Jay; MACBETH, Richard; OWEN, Nathan; RANAHANDOLA, Sunil; STORRS, Michael; YANG, Chunhui. Understanding LDAP: Design and Implementation. 2. ed. [s. L.]: Ibm Tivoli Directory Server, 2004. 774 p.

MACHADO, Erich Soares; MORI JUNIOR, Flavio da Silva.Autenticação Integrada Baseada em Serviço de Diretório LDAP. 2006. 84 f. Monografia - Curso de Ciência da Computação, Ime, Universidade de São Paulo, São Paulo, 2006.

EVARISTO, Lincon Ruam Angioletti. Integrando a base de usuários LDAP com serviços de e-mail, proxy web e ssh. 2002. 51 f. Tese (Doutorado) - Curso de Sistemas de Informação, Instituto Superior Tupy, Joinville, 2008.

TRIGO, Clodonil Honório. OpenLdap: Uma Abordagem Integrada São Paulo: Novatec, 2007. 240 p.

SARI, Riri Fitri; HIDAYAT, Syarif. Integrating Web Server Applications With LDAP Authentication: Case Study on Human Resources Information System of Ul. Kampus Baru, Indonesia: Electrical Engineering Department, Faculty Of Engineering University Of Indonesia,. 6 p.

CHAVES, Tiago Rodrigues. Autenticação IEEE 802.1X baseada no protocolo RADIUS e serviço de diretório LDAP aplicado a rede GIGAUFOPNET. 2010. 110 f. Monografia - Curso de Ciência da Computação, Instituto de Ciências Exatas, Universidade Federal de Ouro Preto, Ouro Preto, 2010.

INÁCIO JÚNIOR, Jorgeley. Redes Linux: Comandos gerais e Servidores de redes.Foca Linux, 2004. 41 p.