• Nenhum resultado encontrado

Mini Roteiro - Samba integrado ao LDAP

N/A
N/A
Protected

Academic year: 2021

Share "Mini Roteiro - Samba integrado ao LDAP"

Copied!
10
0
0

Texto

(1)

Mini Roteiro - Samba integrado ao LDAP

Procedimento de Instalação e configuração

Procedimento baseado em DEBIAN, pode ser adaptado facilmente para outras distribuições.

autor: André Alexandre Gaio e-mail: aagaio@linwork.com.br

---==== Baixando, Compilando e instalando o BerkeleyDB ====---Baixe em: wget ftp://sleepycat1.inetu.net/releases/db-4.3.21.tar.gz tar xzvf db-4.3.21.tar.gz cd db-4.3.21 cd build_unix ../dist/configure --prefix=/usr/local make make install

Colocar o diretorio "/usr/local/lib" no arquivo "/etc/ld.so.conf" ldconfig

---==== Baixando, Compilando e instalando o Cyrus-SASL ====---Baixe em: wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.20.tar.gz tar xzvf cyrus-sasl-2.1.20.tar.gz cd cyrus-sasl-2.1.20 ./configure make make install

Criar um link do diretorio "/usr/local/lib/sasl2" para o diretorio "/usr/lib" ln -s /usr/local/lib/sasl2 /usr/lib/

ldconfig

---==== Baixando, Compilando e instalando o OpenLDAP ====---Baixe em: wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-stable/openldap-stable-20040923.tgz tar xzvf openldap-stable-20040923.tgz cd openldap-2.2.17 ./configure \ --enable-debug \ --enable-syslog \ --enable-fetch \ --with-readline \ --with-threads \ --with-cyrus-sasl \ --with-tls \ --enable-slapd \ --enable-crypt \ --enable-lmpasswd \ --enable-spasswd

(2)

---==== Baixando, Compilando e instalando o SAMBA ====---Baixe em: wget http://us1.samba.org/samba/ftp/samba-3.0.9.tar.gz tar -xvzf samba-3.0.9.tar.gz cd samba-3.0.9 ./configure \ --sbindir=/usr/local/sbin \ --with-configdir=/etc/samba \ --libexecdir=/usr/local/libexec/ \ --with-mandir=/usr/local/man \ --with-logfilebase=/var/log/samba \ --with-ldap \ --with-ldapsam \ --with-winbind \ --with-smbmount \ --with-profiling-data \ --with-quotas \ --with-sys-quotas \ --enable-cups \ --with-quotas \ --with-static-modules= vfs_recycle,vfs_extd_audit,\ vfs_default_quota,vfs_audit,vfs_cap,getdate,vfs_fake_perms \ --with-smbmount \ --with-automount \ --with-tdbsam \ --with-acl-support make make install

---==== Migrar as contas do sistema para o LDAP ====---Baixe o MigrationTools em:

wget http://www.padl.com/download/MigrationTools.tgz tar -xvzf MigrationTools.tgz

cd MigrationTools-45

Editar o arquivo migrate_common.ph e configurar as linhas: $NAMINGCONTEXT{'passwd'} = "ou=TI"; $NAMINGCONTEXT{'group'} = "ou=TI"; $DEFAULT_MAIL_DOMAIN = "seudominio.com.br"; $DEFAULT_BASE = "o=sua_organização,c=BR"; $DEFAULT_MAIL_HOST = "mail.seudominio.com.br";

Exportar os grupos do sistema para um ldif: ./migrate_group.pl /etc/group /tmp/grupos.ldif

ldapadd -x -v -D cn=Manager,c=BR -W -f /tmp/grupos.ldif Exportando os usuários no LDAP:

./migrate_passwd.pl /etc/passwd /tmp/usuarios.ldif

(3)

---==== Fazendo o sistema autenticar no LDAP ====---Instalar a libnss-ldap:

apt-get install libnss-ldap

Serão pedidos os dados do servidor LDAP, os quais são: IP: 127.0.0.1

PORTA: 389 BASE DN: c=BR

ADMINISTRADOR: cn=Manager,c=BR SENHA: senha

Modifique o arquivo /etc/nsswitch.conf e altere as seguinte linhas: passwd: compat ldap

group: compat ldap

Edite o arquivo /etc/openldap/slapd.conf e acresente a linha abaixo no final dos includes:

include /etc/openldap/schema/samba.schema

Restarte o openldap a fim de que o novo esquema seja reconhecido pelo mesmo. Crie um link simbólico de /etc/samba apontando para /usr/local/samba/lib. ln -s /usr/local/samba/lib /etc/samba

Crie um arquivo smb.conf conforme conteúdo abaixo e coloque-o em /etc/samba. ---==== Criar o arquivo /etc/samba/smb.conf ====---[global]

workgroup = SEU_WORKGROUP netbios name = sambasrv hosts allow = 192.168. printcap name = cups load printers = yes printing = cups

print command = lpr -r -P%p -J'%J' %s log file = /var/log/samba/%m.log max log size = 1500

security = user

passdb backend = ldapsam:ldap://127.0.0.1/ ldap suffix = c=BR

ldap admin dn = "cn=Manager,c=BR"

ldap filter = "(&(uid=%u)(objectclass=sambaSamAccount))" ldap port = 389

ldap ssl = no

ldap user suffix = "ou=TI,o=SEU_DOMINIO,c=BR" ldap group suffix = "ou=TI,o=SEU_DOMINIO,c=BR" ldap machine suffix = "ou=TI,o=SEU_DOMINIO,c=BR" ldap passwd sync = Yes

idmap uid = 15000-40000 idmap gid = 15000-40000 nt acl support = yes create mask = 600 directory mask = 700

force directory mode = 700 encrypt passwords = yes

(4)

passwd chat = *new*password* %n\n *new*password* %n\n *successfully* unix password sync = Yes

hide dot files = yes

add machine script = /usr/local/sbin/smbldap-useradd -w "%u" add user script = /usr/local/sbin/smbldap-useradd -m "%u" delete user script = /usr/local/sbin/smbldap-userdel "%u" add group script = /usr/local/sbin/smbldap-groupadd -p "%g" delete group script = /usr/local/sbin/smbldap-groupdel "%g"

add user to group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g" dos charset = UTF-8

unix charset = UTF-8 cups server =

admin users = @root

username map = /etc/samba/smbusers

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 local master = no

os level = 64

domain master = yes preferred master = no domain logons = yes

logon script = script.bat logon path = \\%L\%U\profile wins support = yes

dns proxy = no [netlogon]

comment = Network Logon Service path = /home/netlogon

guest ok = yes writable = no share modes = no [sysvol]

comment = Network Logon Service path = /home/netlogon

guest ok = yes writable = no share modes = no [printers]

comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes [teste] comment = Teste path = /home/teste valid users = @staff public = no

writable = yes printable = no create mask = 0770

(5)

---==== Configurando o smbldap-tools ====---Baixe em: wget http://samba.idealx.org/dist/smbldap-tools-0.8.5.tgz tar zxvf smbldap-tools-0.8.5.tgz cd smbldap-tools-0.8.5 cp -a smbldap-* /usr/local/sbin/ mkdir /etc/smbldap-tools/

cp -a smbldap.conf smbldap_bind.conf /etc/smbldap-tools/ chmod 644 /etc/smbldap-tools/smbldap.conf chmod 600 /etc/smbldap-tools/smbldap_bind.conf Editar o /etc/smbldap-tools/smbldap.conf: SID="S-1-5-21-3434180907-2502208406-463015406" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="" cafile="" clientcert="" clientkey="" suffix="o=SUA_ORGANIZAÇÃO,c=BR" usersdn="ou=TI,${suffix}" computersdn="ou=TI,${suffix}" groupsdn="ou=TI,${suffix}" idmapdn="ou=TI,${suffix}" sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/false" userHome="/home/%U"

userGecos="Ldap System User" defaultUserGid="1000" defaultComputerGid="1000" skeletonDir="/etc/skel" defaultMaxPasswordAge="60" userSmbHome="\\SEU_WORKGROUP\homes\%U" userProfile="\\SEU_WORKGROUP\profiles\%U" userHomeDrive="H:" userScript="%U.bat" mailDomain="SEU_DOMÍNIO.com.br" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd"

(6)

Execute o comando abaixo para obter o SID: net getlocalsid SEU_WORKGROUP

Note que ele cria uma entrada automaticamente no ldap, semelhante a esta: dn: sambaDomainName=SEU_WORKGROUP,o=SUA_ORGANIZAÇÃO,c=BR sambaDomainName: SEU_WORKGROUP sambaSID: S-1-5-21-3434180907-2502208406-463015406 sambaAlgorithmicRidBase: 1000 objectClass: sambaDomain sambaNextUserRid: 31000 sambaNextGroupRid: 31001

É também necessário armazenar o password do ldap no secrets, utilize o comando: smbpasswd -w <SENHA>

Edite o arquivo /etc/smbldap-tools/smbldap_bind.conf e configure-o da seguinte forma: slaveDN="cn=Manager,c=BR" slavePw="senha" masterDN="cn=Manager,c=BR" masterPw="senha" Instalar os pacotes:

apt-get install perl perl-modules perl-5.6

Copie o arquivo smbldap_tools.pm para o diretório /usr/local/sbin cp -a smbldap_tools.pm /usr/local/sbin/

---==== Instalando os módulos do perl ====---Baixe em: wget http://www.cpan.org/modules/by-authors/id/GBARR/Convert-ASN1-0.14.tar.gz tar zxvf Convert-ASN1-0.18.tar.gz perl Makefile.PL make make test make install wget http://www.cpan.org/modules/by-authors/id/GBARR/Authen-SASL-2.08.tar.gz tar zxvf Authen-SASL-2.08.tar.gz perl Makefile.PL make make test make install wget http://www.cpan.org/modules/by-authors/id/GAAS/URI-1.35.tar.gz tar zxvf URI-1.35.tar.gz perl Makefile.PL make make test make install

(7)

wget http://www.cpan.org/modules/by-authors/id/SAMPO/Net_SSLeay.pm-1.25.tar.gz tar zxvf Net_SSLeay.pm-1.25.tar.gz perl Makefile.PL make make test make install http://search.cpan.org/CPAN/authors/id/B/BE/BEHROOZI/IO-Socket-SSL-0.96.tar.gz tar zxvf IO-Socket-SSL-0.96.tar.gz perl Makefile.PL make make test make install wget http://search.cpan.org/CPAN/authors/id/K/KH/KHAMPTON/XML-SAX-Base-1.04.tar.gz tar zxvf XML-SAX-Base-1.04.tar.gz perl Makefile.PL make make test make install http://search.cpan.org/CPAN/authors/id/B/BJ/BJKUIT/Crypt-SmbHash-0.12.tar.gz tar zxvf Crypt-SmbHash-0.12.tar.gz perl Makefile.PL make make test make install wget http://www.cpan.org/modules/by-authors/id/GBARR/perl-ldap-0.3202.tar.gz tar zxvf perl-ldap-0.3202.tar.gz perl Makefile.PL make make test make install

ou apt-get install perl-ldap

Precisamos informar qual será o próximo uid disponível para ele criar os usuários.

Salve as seguintes informações em um arquivo chamado nextuid.ldif dn: cn=NextFreeUnixId,ou=TI,o=SUA_ORGANIZAÇÃO,c=BR objectClass: inetOrgPerson objectClass: sambaUnixIdPool uidNumber: 1000 gidNumber: 1000 cn: NextFreeUnixId sn: NextFreeUnixId Inclua na base:

(8)

---==== Populando a base com os objetos necessários ao Windows ====---Execute:

smbldap-populate

Se der algum erro é porquê tais entradas já se encontram na base.

----== Instalando a ferramenta de Administração do LDAP – PhpLDAPAdmin ==----Baixe em: wget http://voxel.dl.sourceforge.net/sourceforge/phpldapadmin/phpldapadmin-0.9.4b.tar.gz tar zxvf phpldapadmin-0.9.4b.tar.gz mv phpldapadmin-0.9.4b /var/www/htdocs/restrito/adm_ldap cd /var/www/htdocs/restrito/adm_ldap cp config.php.example config.php Instale o pacote do apache: apt-get install apache

Edite o arquivo /etc/apache/httpd.conf: Procure pela linha:

AllowOverride NONE E substitua por: AllowOverride AuthConfig Reinicie o apache. Edite o config.php: $servers[$i]['host'] = 'localhost'; $servers[$i]['base'] = 'c=BR'; $servers[$i]['login_dn'] = 'cn=Manager,c=BR'

Crie no diretório /var/www/htdocs/restrito/adm_ldap o arquivo .htaccess com o conteúdo abaixo:

AuthName “Área administrativa! Identifique-se:” AuthType Basic

AuthUserFile /etc/apache/admin_secrets.txt AuthGroupFile /dev/null

require valid-user

Crie um usuário para administrar o aplicativo: htpasswd -c /etc/apache/admin_secrets.txt admin Faça o teste em: http://localhost/restrito/adm_ldap

(9)

---== Crie o script de controle do samba /etc/init.d/samba ==---#!/bin/sh

#

# Script de Parada e início do Samba. #

samba_start() {

if [ -x /usr/local/sbin/smbd -a -x /usr/local/sbin/nmbd -a -r / etc/samba/smb.conf ]; then

echo "Iniciando o Samba..."

/usr/local/sbin/smbd -D -s /etc/samba/smb.conf -l /var/log/samba /usr/local/sbin/nmbd -D -s /etc/samba/smb.conf -l /var/log/samba fi } samba_stop() { # killall smbd nmbd killall smbd nmbd } samba_restart() { samba_stop sleep 2 samba_start } case "$1" in 'start') samba_start ;; 'stop') samba_stop ;; 'restart') samba_restart ;; *) samba_start ;; esac

---== Coloque o script a fim de ser iniciado automaticamente ==---chmod 700 /etc/init.d/samba

(10)

---== Modelo de arquivo ldif com as propriedades dos usuários ==---dn: uid=user,ou=TI,o=SUA_ORGANIZAÇÃO,c=BR objectClass: inetOrgPerson objectClass: posixAccount objectClass: sambaSamAccount sn: user uid: user mail: user@SEU_DOMÍNIO.com.br telephoneNumber: 55-11-5555-5555 uidNumber: 1000 gidNumber: 100 homeDirectory: /home/user loginShell: /bin/false cn: user userPassword: {SSHA}e1NTSEF9U2p5Sm9xM0tDN2p3L09YSE1HcEwrR0JBRldzQW80c2o= sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaHomePath: \\sambasrv\user sambaHomeDrive: H: sambaProfilePath: \\sambasrv\user\profile sambaPrimaryGroupSID: S-1-5-21-1085031214-764733703-682003330-512 sambaSID: S-1-5-21-1085031214-764733703-682003330-2997 sambaLMPassword: 8CBA24680BC914C1AAD3B435B51404EE sambaAcctFlags: [U] sambaNTPassword: 7EC465C29A86BE7394CFE2C3D612B688 sambaPwdLastSet: 1095748733 sambaPwdMustChange: 1099636733

---== Crie o índice para a pesquisa do Domain Name do Samba no LDAP ==---Acrescente a linha abaixo no final de seu arquivo slapd.conf:

index sambaDomainName eq

Derrube o serviço do OpenLDAP e execute: slapindex -v

Este procedimento recriará os índices do LDAP e acrescentará o novo índice. OBSERVAÇÃO IMPORTANTE:

Este artigo pode ser reproduzido, desde que seja mencionado o autor e o site de orígem do mesmo.

Quaisquer observações e/ou sugestões mande-me um email. Espero que seja útil. Boa Sorte!

Referências

Documentos relacionados

Se não tiver um modem/router de Banda Dupla, pode atualizar a sua rede Wi-Fi utilizando o EM4596 para criar uma rede Wi-Fi de Banda Dupla.. O EM4596 será ligado à sua ligação

vou colocar meu nome à disposição para esta comissão porque eu pretendo concorrer

Conexión a autorradios con salida DIN Fig. 3 La posición del conmutador “80 Hz - 120 Hz” y “Bass Boost” depende del tipo de altavoces utilizados, la acústica del interior

Human DCs pulsed with Pythium insidiosum β-glucans, Heat-inactivated zoospores and PitiumVac ® prime naïve T cells to Th1 differentiation in vitro.. Pauline

CTISM - Segurança do Trabalho/EAD/Polo Cruz Alta-RS 461 943 VANESSA RIBAS DE OLIVEIRA SR SR Classificado CTISM - Segurança do Trabalho/EAD/Polo Cruz Alta-RS 467 1281 VERENICE L

Sendo assim, mantenha-se sempre atento ao que diz, a forma como diz as coisas em seu trabalho, como escreve seus e-mails, as mensagens que troca no apli- cativo com os

Nesse passo, pode-se estabelecer a seguinte razão inversa: quanto mais ampla for concebida a função jurisdicional, mais estreita será, por decorrência lógica, a definição

Para acessar a Agenda da Base/Handset com fio basta pressionar uma única vez a tecla MENU (com o Handset com fio no gancho, ou se preferir considerando a mesma condição