Base Ldap + Domínio Samba

21 21UTC Agosto 21UTC 2009

Recentemente tivemos que criar um novo servidor de LDAP aqui para a empresa, segue os passos utilizados:

Versões  dos pacotes:

CentOS release 5.2 (Final) 2.6.18-92.el5

Nota: Habilitar o repo centos-plus e atualizar o so.

samba-common-3.0.28-1.el5_2.1

samba-client-3.0.28-1.el5_2.1

samba-3.0.28-1.el5_2.1

Para instalar o pacote smbldap-tools-0.9.4-1.el5.rf executar o abaixo:

wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

Criar o usuário ldap antes de instalar os rpms.

nss_ldap-253-12.el5

python-ldap-2.2.0-2.1

openldap-clients-2.3.27-8.el5_2.4

smbldap-tools-0.9.5-1.el5.rf

openldap-2.3.27-8.el5_2.4

openldap-servers-2.3.27-8.el5_2.4

Não instalar -> cyrus-sasl-ldap-2.1.22-4

php-ldap-5.1.6-20.el5_2.1

openldap-devel-2.3.27-8.el5_2.4

php

apache

phpldapadmin-1.1.0.6.tar.gz

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

Editar o arquivo /etc/ldap.conf:

host 127.0.0.1

base o=empresa

ssl no

tls_cacertdir /etc/openldap/cacerts

pam_password md5

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

Criar arquivo /etc/ldap.secret com mode 600 com a senha do manager do ldap.

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

Editar o arquivo /etc/samba/smb.conf:

workgroup = [nome do domínio]

server string = Samba Server

netbios name = MYSERVER

Comentar a linha:

; passdb backend = tdbsam

Descomentar as linhas:

domain master = yes

domain logons = yes

preferred master = yes

add user script = /usr/sbin/useradd “%u” -n -g users

add group script = /usr/sbin/groupadd “%g”

add machine script = /usr/sbin/useradd -n -c “Workstation (%u)” -M -d /nohome -s /bin/false “%u”

delete user script = /usr/sbin/userdel “%u”

delete user from group script = /usr/sbin/userdel “%u” “%g”

delete group script = /usr/sbin/groupdel “%g”

passdb backend = ldapsam:ldap://127.0.0.1

ldap admin dn = “cn=manager, o=empresa”

ldap group suffix = ou=Group

ldap user suffix = ou=People

ldap machine suffix = ou=Hosts

ldap suffix = o=empresa

ldap ssl= off

idmap uid = 16777216-33554431

idmap gid = 16777216-33554431

wins support = yes

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

Executar o comando smbpasswd -w senha do manager do ldap

Editar o arquivo /etc/smbldap-tools/smbldap_bind.conf:

slaveDN=”cn=manager,o=empresa”

slavePw=”senhadomanager”

masterDN=”cn=manager,o=empresa”

masterPw=”senhadomanager”

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

Executar os comandos:

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

chown ldap. /var/lib/ldap/DB_CONFIG

cp /usr/share/doc/samba-3.0.28/LDAP/samba.schema /etc/openldap/schema/

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

Editar o arquivo /etc/openldap/slapd.conf:

Incluir os schemas adicionais necessários:

include /etc/openldap/schema/samba.schema

suffix “o=empresa”

rootdn “cn=manager,o=empresa”

rootpw {SSHA}KOllLHHyDoeyY0IEdqy18v/BH+4bB2Lt (gerar a senha com o comando slappasswd)

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

Editar o arquivo /etc/smbldap-tools/smbldap.conf:

Executar “net getlocalsid” e inserir o SID resultante em SID=

sambaDomain=”nomedodominionosamba”

slaveLDAP=”127.0.0.1″ (alterar para o ip do ldap)

masterLDAP=”127.0.0.1″ (alterar para o ip do ldap)

suffix=”o=empresa

“ldapTLS=”0″

usersdn=”ou=People,o=empresa”

computersdn=”ou=Hosts,o=empresa”

groupsdn=”ou=Groups,o=empresa”

idmapdn=”ou=Idmap,o=empresa”

sambaUnixIdPooldn=”cn=NextFreeUnixId,o=empresa” (depende da estrutura do LDAP)

userLoginShell=”/bin/false”

defaultUserGid=”65535″ (configurar para o grupo primário do usuário padrão)

defaultMaxPasswordAge=”99″ (desabilitar expiração de senhas)

userSmbHome=”"

userProfile=”"

userScript=”%U.bat”

mailDomain=”empresa.com.br”

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

Executar o comando service ldap start.

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

Editar o arquivo /etc/nsswitch.conf:

passwd: files ldap

shadow: files ldap

group: files ldap

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

Descompactar o arquivo phpldapadmin-1.1.0.6.tar.gz na pasta /var/www/html.

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

Editar o arquivo config.php com os dados do ip do servidor LDAP.

Inserir no arquivo /var/lib/ldap/DB_CONFIG as linhas abaixo:

### INICIO ARQUIVO DB_CONFIG ###

# Define o tamanho do arquivo de cache.

set_cachesize 0 52428800 0

#### Set database flags ####

# Remove automaticamente arquivos de logs.
set_flags DB_LOG_AUTOREMOVE

# Setando valores dos LOGS

set_lg_regionmax 262144
set_lg_max 10485760
set_lg_bsize 2097152
set_lg_dir /var/lib/ldap/
# Increase locks
set_lk_max_locks 3000
set_lk_max_objects 1500
set_lk_max_lockers 1500

### FIM ARQUIVO DB_CONFIG ###

rodar smbldap-populate para popular a base com os atributos necessários para o domínio.

Espero que ajude.


Autenticando usuários no LDAP e mapeando as unidades de rede do antigo servidor samba via sshfs no fedora 10

14 14UTC Abril 14UTC 2009

Estamos começando a migrar as estações dos nossos usuários de Windows para Linux e adivinha uma das primeiras requisições do usuário são os mapeamentos automáticos feitos via samba.

Depois de algumas tentativas frustradas de inserir o linux no domínio como faz com o Windows resolvemos mudar a tática e chegamos a uma receita que a princípio esta funcionando, autenticar no LDAP e buscar as unidades do usuário via sshfs através das informações de grupos que o usuário possui no LDAP.

Criamos um script que busca todos os grupos que o usuário pertence e cria a conexão sshfs com uma unidade no Desktop do usuário, ficando transparente para ele o processo. O processo ficou assim: quando o usuário faz login no micro aparece um dialog pedindo a senha para acessar os recursos de rede, após digitado ele cria os locais por letras e o usuário acessa como se fosse uma pasta.

Uma pena que não encontrei ainda uma forma de recuperar a senha no login que ele faz do Gnome, assim o usuário não precisaria digitar a senha duas vezes.

Segue os passo que utilizei:

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

Passo 1

clicar na barra Sistemas -> Administração -> Autenticação -> Informações do usuário -> Ativar suporte LDAP

BASE-> o=empresa

Servidor -> xxx.xxx.xxx.xxx

Para verificar se funcionou abrir um terminal e testar com id usuario

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

Passo 2

Configurar no seu servidor DNS um CNAME para serarq com o ip do seu antigo servidor samba

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

Passo 3

Instalar na estação o fuse.sshfs ou sshfs e o dialog e o Xdialog

fazer update do sistema todo

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

Passo 4

criar o script scritp.desktop dentro de /usr/share/gnome/autostart/  com o seguinte conteúdo:

[Desktop Entry]

Encoding=UTF-8

Name=Map user script

Comment[br]=MAP user scritp

Icon=bluetooth

Exec= gnome-terminal /usr/sbin/mapeia_rede.sh

Terminal=false

Type=Application

Categories=

OnlyShowIn=GNOME;

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

Passo 5

criar o script chamado mapeia_rede.sh em /usr/sbin/  com o seguinte conteudo:


Asus A3500N +Ubuntu +Dor de Cabeça

15 15UTC Junho 15UTC 2007

Tivemos um pequeno problema tentando passar a imagem para um projetor multimídia, de um notebook Asus A3500N com Ubuntu 7.04 Feisty Fawn, depois de uma boa googlada e grande auxilio do meu colega de trabalho Sérgio Tshá, conseguimos fazer funcionar.

Para começar faça o download do pacote ACPI4ASUS
Decompacte o arquivo e execute com o comando Make, depois sudo Make install.
Adicionar dentro do arquivo /etc/modules a linha: asus_acpi, para ser chamado pelo Kernel.
Agora vamos criar um alias para facilitar a execução.
Dentro do .bashrc do usuário verificar se as linhas a seguir não estão comentadas.

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
eval “`dircolors -b`”
alias ls=’ls –color=auto’
#alias dir=’ls –color=auto –format=vertical’
#alias vdir=’ls –color=auto –format=long’
fi
Depois adicionar no arquivo .bash_aliases a seguinte linhas:
alias chdisplay=”echo 3 > /proc/acpi/asus/disp”
Finalmente para executar é só rodar chdisplay tanto para ativar quanto para desativar, lembro que são três os estados de execução.

Sei que não ficou muito elegante mas funcionou, espero que ajude.