Samba Autenticando no Active Directory



Olá minha necessidade hoje é integrar o Active Directory (Windows Server 2003) com o SAMBA (que será o servidor de arquivos no Sistema Operacional Debian Squeeze).

Mas porque essa necessidade? Devido ao grande números de senhas que tenho em minha rede, devo centralizar as mesmas juntamente com as permissões para cada usuario e seus respectivos compartilhamentos.

Levo em consideração que o Windows Server 2003 já esteja com o DC (Domain Controler) do seu dominio.

# Cenário:

domínio: EMPRESA.LOCAL

1. Linux = 192.168.1.70/24
HOSTNAME = debian-01
FQDN = debian-01.empresa.local

2. Windows = 192.168.1.69/24
HOSTNAME = win2003srv
FQDN = win2003srv.empresa.local

# Ajustando o cenario no Linux editando o arquivo /etc/hosts:
vi /etc/hosts
192.168.1.69 win2003srv.empresa.local win2003srv
192.168.1.70 debian-01.empresa.local debian-01

# Ajustando o arquivo hostname do servidor:
vi /etc/hostname
debian-01.empresa.local

# Rodando shell para ajustar o HOSTNAME:
/etc/init.d/hostname.sh

# Conferindo o nome completo FQDN (Fully Qualified Domain Name):
hostname -f

# Configurando o arquivo resolv.conf
vi /etc/resolv.conf
search lan
domain empresa.local
nameserver 192.168.1.69

# Instalar o SAMBA e ntpdate
aptitude install -y samba samba-common smbclient ntpdate

Nota: informe o nome do dominio que você deseja ou deixe como WORKGROUP que podemos alterar depois;

# Instalar o Kerberos e winbind
aptitude install -y krb5-user winbind

# Configuração do SAMBA. Como "boas práticas" faça uma cópia do arquivo smb.conf original para smb.conf.default;
# Já estou considerando que a estrutura de compartilhamentos como '/arquivos/administrativo' e '/arquivos/financeiro' já estão criados;
vi /etc/samba/smb.conf
[global]
workgroup = EMPRESA
realm = EMPRESA.LOCAL
netbios aliases = Servidor SAMBA Linux
server string = %h
security = ADS
obey pam restrictions = Yes
passdb backend = tdbsam
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
log level = 1
syslog = 1
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
wins server = 192.168.1.69
panic action = /usr/share/samba/panic-action %d
idmap backend = idmap_rid:EMPRESA=100000-200000
idmap uid = 100000-200000
idmap gid = 100000-200000
template shell = /bin/bash
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes

[Administrativo]
        comment = Servidor de Arquivos - Administrativo
        path = /arquivos/administrativo
        available = yes
        browseable = yes
        public = yes
        guest only = no
        writable = yes
        ;force user = suporte
        ;force group = flex
        guest account = root
        create mode = 0664
        directory mode = 0775
        valid users = @Administrativo
        veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/*.wav/*.mpeg/
        delete veto files = yes

[Financeiro]
        comment = Servidor de Arquivos - Financeiro
        path = /arquivos/financeiro
        available = yes
        browseable = yes
        public = yes
        guest only = no
        writable = yes
        ;force user = suporte
        ;force group = flex
        guest account = root
        create mode = 0664
        directory mode = 0775
        valid users = @Financeiro
        veto files = /*.mp3/*.wma/*.wmv/*.avi/*.mpg/*.wav/*.mpeg/
        delete veto files = yes

# Configurando o Kerberos. Mais uma vez como boas praticas faça uma cópia do arquivo krb5.conf para krb5.conf.default
vi /etc/krb5.conf
[libdefaults]
default_realm = EMPRESA.LOCAL
dns_lookup_realm= true
dns_lookup_kdc= true
ticket_lifetime= 24h
forwardable= yes

krb4_config = /etc/krb.conf
krb4_realms = /etc/krb.realms
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

        v4_instance_resolve = false
        v4_name_convert = {
host = {
rcmd = host
ftp = ftp
                }
plain = {
something = something-else
                }
        }
fcc-mit-ticketflags = true

[realms]
EMPRESA.LOCAL= {
kdc= win2003srv.EMPRESA.LOCAL
admin_server= win2003srv.EMPRESA.LOCAL
default_domain= EMPRESA.LOCAL
        }

[domain_realm]
.EMPRESA.LOCAL= EMPRESA.LOCAL
        EMPRESA.LOCAL= EMPRESA.LOCAL

[login]
        krb4_convert = true
        krb4_get_tickets = false

# Configuracao do arquivo /etc/nsswitch.conf sei que estou sendo repetitivo mas copie /etc/nsswitch.conf para /etc/nsswitch.conf.default
vi /etc/nsswitch.conf
passwd:         compat files winbind
group:          compat files winbind
shadow:         compat files winbind

hosts:          files dns wins
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

# Adicionando maquina linux no Active Directory
net ads join -U Administrador

Nota:
Apresentando a mensagem abaixo sua máquina foi inserida no ad com sucesso;
Using short domain name -- EMPRESA
Joined 'DEBIAN-01' to realm 'EMPRESA.LOCAL'

# Teste se o computador foi adicionado com sucesso no ad
net ads testjoin

# Teste se o AD está configurado com o winbind
wbinfo -u //retorna a lista de usuarios do AD

Feito isso seu Linux pode ser o servidor de arquivos dentro de sua rede utilizando seu Active Directory para autenticar seus usuários.

Comentários

Postagens mais visitadas