alexmontoanelli

a place to have some fun..

Autenticação centralizada com Ldap, usando Postfix, Dovecot e Samba

Olá.

Vou postar aqui uma série de 5 artigos mostrando como integrar os serviços de email (Postfix, Dovecot), e o servidor de arquivos Samba, para usarem a mesma base de autenticação, no caso com Openldap.

Toda a brincadeira foi realizada em um FreeBSD 6.3 -p3, mais pode ser implantada em qualquer Linux sem problemas.

Parte 1 : Preparando o Openldap.

No FreeBSD, tento o ports instalado, pasta fazer o seguinte:

cd /usr/ports/net/openldap24-server
make
make install

As seguintes opções foram usadas:

SASL
TCP_WRAPPERS
BDB
ACCESSLOG
LASTMOD
SEQMOD
SYNCPROV
DYNAMIC_BACKENDS

Após isso, iremos instalar o nss_ldap, usado para integrar os usuários que serão cadastrados no openldap, ao sistema.

cd /usr/ports/net/nss_ldap/
make
make install

Agora vamos configurar nosso ldap.conf e slapd.conf para colocar o open-ldap no ar.

Vamos editar o arquivo /usr/local/etc/ldap.conf e adicionar a seguinte no arquivo

BASE    dc=empresa,dc=com,dc=br

Feito isso partimos para a configuração do slapd.conf, esse é o arquivo responsável pelo daemon do openldap.

Seguem as alterações necessárias:

include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/misc.schema
include         /usr/local/etc/openldap/schema/nis.schema

access to dn.exact=""
        by * read

access to attrs=userPassword,sambaLMPassword,sambaNTPassword
        by anonymous auth
        by self write
        by * none

access to attrs=shadowLastChange
        by self write
        by * none

access to *
        by read

loglevel 256

#######################################################################
# BDB database definitions
#######################################################################

database        bdb
suffix          "dc=empresa,dc=com,dc=br"
rootdn          "cn=Manager,dc=empresa,dc=com,dc=br"
rootpw          {SSHA}D9t3cIySlQg2ugQYeSD5bkB+ZqWPaasx
mode    0700
directory       /var/db/openldap-data
# Indices to maintain
index   objectClass     eq
index   cn,uid,sn       eq
index   gidNumber       eq
index   mail,givenName,mailAlternateAddress,displayName eq,pres,sub
index   default eq

A senha no formato SSHA é obtida com o comando

slappasswd  -s mInhaSenh@Secr37A

Feito isso, vamos inserir a base do nosso banco, isso tudo em modo offline ainda.
Crie um arquivo com o seguinte conteúdo:

dn: dc=empresa,dc=com,dc=br
dc: empresa
objectClass: top
objectClass: domain

Agora vamos inserir esse registro na base:

slapadd -l MEU_ARQUIVO_TEMPORARIO -b 'dc=empreasa,dc=com,dc=br'

Feito isso, nosso banco pode ser posto no ar.
Adicione as seguintes flags ao seu arquivo /etc/rc.conf

slapd_enable="YES"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/"'
slapd_sockets="/var/run/openldap/ldapi"

Estas flags dizem para ativar o slapd no boot do bsd,  configura ele para ouvir em modo não ssl, em locallhost, e cria um unixsocket em /var. Abordagem com ssl será feita em outra etapa.

Agora vamos startar no OpenLdap

/usr/local/etc/rc.d/slapd start

Se tudo der certo, com um  simples ‘netstat -ln| egrep “\.389″‘ você verá uma saída semelhante a esta, informado que o slapd esta ouvindo na sua porta padrão:

[root@propague /root]# netstat -ln| egrep "\.389"
tcp4       0      0  127.0.0.1.389          127.0.0.1.63586        ESTABLISHED
tcp4       0      0  127.0.0.1.63586        127.0.0.1.389          ESTABLISHED
tcp4       0      0  127.0.0.1.389          127.0.0.1.50995        ESTABLISHED
tcp4       0      0  127.0.0.1.50995        127.0.0.1.389          ESTABLISHED
tcp4       0      0  127.0.0.1.389          127.0.0.1.57821        ESTABLISHED
tcp4       0      0  127.0.0.1.57821        127.0.0.1.389          ESTABLISHED
tcp4       0      0  127.0.0.1.389          127.0.0.1.61773        ESTABLISHED
tcp4       0      0  127.0.0.1.61773        127.0.0.1.389          ESTABLISHED

Para confirmar, execute:

ldapsearch -x

Deverá ser retornado a raiz de seu diretório informando que o mesmo foi criado com sucesso.
Caso você não consiga por seu ldap para rodar, tente rodar ele como root e modo debug.

/usr/local/libexec/slapd -d 256

Na maioria das vezes o erro é causado por permissões inválidas no diretório onde o ldap guarda seus arquivos.
Se for este o seu problema, você pode corrigir com o seguinte comando, e em seguida subir o daemon novamente

chow -R ldap:ldap /var/db/openldap-db
chmod -R 600 /var/db/openldap-db

Por hoje é isso, no próximo capitulo vamos inserir alguns usuários na base, e fazer o sistema enxergar eles, usando o nss, e editando o nsswitch.

Abraços e até mais.

August 7th, 2008 by alexm

XEN: FreeBSD domU com HVM em hardware Intel VT

—–English—-

For those who are  trying to install the freebsd on a Intel VT hardware based, in  full-virtualized (hvm) mode in XEN, which is not necessary any change in the system, here is a hint that save you.

In compiling of the packages xen, and xen-tools, in the command ‘make’, you must add the variable ‘vmxassist = n’.

Both in make xen, and in make install.

In Gentoo Linux, as the whole process is done via emerge, you need to change the ebuilds, to add these variables.

Those who need them is only contact me.

See you soon, and sorry for my poor english. I do my best.

—–

Buenas.

Para quem tá sofrendo tentando instalar o FreeBsd em hardware Intel VT, no modo full-virtualized ( hvm ) no XEN, onde não é necessária nenhuma alteração no sistema, aqui vai a dica que salvará você.

Ao Compilar os pacotes xen, e xen-tools, no comando ‘make’, você deve adicionar a variável ‘vmxassist=n’.

Tanto no make xen, como no make install.

No Gentoo Linux, como todo o processo é feito via emerge, você precisar alterar as ebuilds, para adicionar estas variaveis.

Quem precisar delas é só entrar em contato.

Abraços e boa Virtualização.

June 12th, 2008 by alexm

Dicas Rápidas do vim

Seguem algumas dicas baseadas no Vim 7.1

Abrir mais de um arquivo na mesma janela, dividindo a tela ao meio horizontalmente:

vi -o /tmp/arquivo1 /tmp/arquivo2 …

Para dividir verticalmente, use -O, e para alternar entre as janelas, ctrl + w + w

Estando com o VI aberto em um arquivo e querendo abrir outro basta digitar

ctrl + w + n, a tela será dividia, agora ‘:vi /caminho/do/arquivo’

Para alterar o layout das janelas abertas, use: ctrl + w + k para levar a janela atual para cima,

ctrl + w + j , para leva-la para baixo, ctrl + w + l para leva-la ao lado direito, e ctrl + w + h para leva-la ao lado esquerdo.

Para ir ao shell, sem sair do vi, basta digitar um ‘:shell’, você receberá o shell, quando terminar, um ctrl + d, levará você ao vi novamente.

Apagar um endereço de ipv4 no meio do texto, é só teclar 7dw no modo comando, no inicio do ip.

Abraços e até.

May 2nd, 2008 by alexm

Automatize a criação de Vhosts com o mod_macro no apache

Mãos a Obra:

Página do módulo: http://www.coelho.net/mod_macro/

Para instalar no Gentoo, apenas digite:

emerge mod_macro

e espere terminar, após isso, edite o arquivo /etc/conf.d/apache2/ e adicione na linha APACHE2_OPTS a seguinte entrada: “-D MACRO”

Agora vamos criar nosso template de vhost.
Criamos o arquivo ‘/etc/apache2/vhosts.d/01.vhosts.macro.conf, com o seguinte conteudo

<macro Virtual $server $docroot>
<virtualhost>
        servername $server
        documentroot $docroot
 
        <ifmodule>
                ServerEnvironment apache apache
        </ifmodule>
</virtualhost>
</macro>
 
Include /etc/apache2/vhosts.d/vhosts.include

e no arquivo Include /etc/apache2/vhosts.d/vhosts.include, indicamos nossa macro e passamos os parâmetros:

 Use Virtual meusite1.com.br /var/www/meusite1.com.br/htdocs/
 Use Virtual meuoutrosite.com.br /var/www/meuoutrosite/htdocs/

Bom é isso, muito menos código em seus arquivos para criar vhosts.

Abraços

December 8th, 2007 by alexm