Posts Tagged ‘ samba

Maquina Linux Client do Active Diretory

Samba + Kerberos + LDAP + Windows AD

Partindo do ponto que samba, Kerberos e LDAP estão instalados. Vamos adicionar uma estação linux ao Active Directory da MS.

Arquivo de configuração do samba. /etc/smb.conf

[global]
;Nome do nosso client
netbios name = SRVTESTE
server string = Servidor de Testes
;Grupo de trabalho, deve ser o nome do dominio
workgroup = mw
security = ads
domain master = no
encrypt passwords = yes
;IP do servidor AD
password server = 192.168.0.250
wins server = 192.168.0.250
;Nome completo do Dominio
realm = SSA.MEDICWARE.COM.BR
passdb expand explicit = no
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
log file = /var/log/samba/log.%m
max log size = 50
debug level = 1
[geral]
comment = Arquivos
path = /srv/samba/geral
read only = no

Arquivo /etc/nsswitch.conf

passwd: files winbind
group: files winbind
shadow: files
hosts: files dns winbind

Arquivo de configuração do Kerberos

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
default_realm = SSA.MEDICWARE.COM.BR
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24000
clockskew = 300
kdc_timesync = 1

[realms]
SSA.MEDICWARE.COM.BR = {
kdc = 192.168.0.250:88
}
MW = {
kdc = 192.168.0.250:88
}

Apos editar esses arquivos adicione no /etc/hosts o nome da maquina com o dominio completo.
Exemplo:

192.168.0.26 srvteste.ssa.medicware.com.br srvteste

Agora confirme o funcionamento correto do kerberos:

$ kinit administrador

Após digitar a senha correta ele não retorna mensagem nenhuma.

Adicionar maquina ao dominio:

$ net ads join -U Administrador

No arquivo de configuração do samba para ter seu compartilhamento acessado somente por determinados usuários adicione o parametro valid user.
Exemplo:

[HP1020]
comment = Impressora CIC
path = /var/spool/samba
print ok = yes
guest ok = no
valid users = @mw\suporte mw\administrador mw\marcel mw\elisson

Esse compartilhamento é acessado pelo grupo suporte do sominio mw, e pelos usuarios administrador, elisson e marcel.

Colocando samba como cliente de Active Directory.

Vou explicar minha necessidade aqui: Precisei colocar um servidor de impressão na rede da empresa, e em nossa rede já existe um windows 2003 server gerenciando o active directory.

Aqui só irie abordar como fiz para colocar o samba pra funcionar no AD existente, somente a configuração do samba.

Sessão global do arquivo de configuração do samba:

[global]
netbios name = SRVPRINT
server string = Servidor de impressao
workgroup = seu_AD
security = domain

encrypt password = yes
password server = ip_do_seu_servidor_AD
username map = /etc/samba/smbusermap
wins server = servidor_wins

log file = /var/log/samba/log.%m
max log size = 50
debug level = 1

Agora você deve criar o arquivo /etc/samba/smbusermap
Nele vai estar associado os usuários do AD com usuário da sua maquina, vou mostrar como esta o meu:

admin = seu_ADadministrador
usr_geral = seu_AD*

Onde admin é usuário válido no meu servidor linux e seu_ADadministrador usuário válido do AD.

Agora você deve adicionar essa maquina na rede:

$ net join -U administrador

Vai pedir a senha do usuario administrador do AD e se tudo correr bem vai apresentar uma mensagem de sucesso.
Aqui aconteceu que o servidor AD não esta sendo encontrado pelo nome, então adicionei o mesmo no /etc/hosts:

192.168.0.250 SRVWIN

Apos fazer isso a maquina foi adicionada com sucesso.

Reinicie o seu samba e teste se as maquinas do AD acessam ele sem problema.

Servindo impressora e seu driver para windows pelo samba.

A instalação da impressora não será abordada aqui. Vamos partir do ponto de que sua impressora esta instalada em seu servidor e já funcionando corretamente.

Primeiro temos que baixar alguns pacotes que são necessários.

PostScript printer drivers for windows – http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows
cups-devel – http://www.cups.org/software.php
cups-windows – http://www.cups.org/software.php

Crie a seguinte pasta: /usr/share/cups/drivers

$ mkdir /usr/share/cups/drivers

Descompacte o PostScript printer drivers for windows. Aqui eu baxei o arquivo winstbrz.exe que tem aproximadamente 7mb. Vai ser necessário copiar alguns arquivos para a pasta que criamos. São eles:

ADFONTS.MFM
ADOBEPS4.DRV
ADOBEPS4.HLP
DEFPRTR2.PPD
ICONLIB.DLL
ADOBEPS5.DLL
ADOBEPSU.DLL
ADOBEPSU.HLP

Depois de copiar os arquivos você tem que alterar os nomes, todos devem estar em caixa baixa.

O cups-devel para muitos pode não ser necessário. Aqui estou usando CentOS e só consegui instalar o cups-windows após instalar o cups-devel.
Instalação do cups-windows:
Descompacte o pacote, entre na pasta descompactada e instale.

$ tar jxvf cups-windows-6.0-source.tar.bz2
$ cd cups-windows-6.0
$ make install

Depois de instalar o cups-windows verifique se foram criados alguns arquivos novos na pasta /ush/share/cups/drivers

Essa pasta que criamos deve estar compartilhada no samba com o nome de “print$” e a impressora deve estar la compartilhada também. Vou mostrar como ficou a sessão aqui que compartilha os dois:

[print$]
comment = Driver da impressora.
path = /usr/share/cups/drivers
browsable = yes
write list = admin

[printers]
comment = Impressoras.
path = /var/spool/samba
browsable = yes
writable = yes
printable = yes
read only = yes

Foi necessário adicionar algumas coisas na sessão global do smb.conf:

printcap name = /etc/printcap
load printers = yes
printing = cups

Depois só startar o samba e executar o comando que gera os drivers.

$ cupsaddsmb -H localhost -U admin -v -a

Se tudo correr como o desejado vai ser apresentada uma mensagem de sucesso.

Succesfully set SuaImpressora to driver SuaImpressora.