(51) 99877.8389
(51) 3022.5100
  • Blog COMDESK

    Acompanhe Artigos, Notícias e nossos Casos de Sucesso.

 

O objetivo principal deste tutorial é para complementar o artigo que descreve a configuração de rede em um servidor AD com SAMBA4. O artigo pode ser visto em: http://comdesk.com.br/blog/item/7-active-directory-com-samba-4-parte-1

 

REFERÊNCIAS

<ethX>: Interface IP nativa (ex: ens18) <DNS3>: IP de um DNS público (ex: 8.8.8.8)
<MascaraRede>: Máscara de rede utilizada (ex: 255.255.255.0 ou /24) <DNS4>: IP de um DNS público (8.8.4.4)
<DominioLocal>: Nome de seu domínio (ex: comdesk.local) <UUID>: UUID da interface de rede
<Gateway>: Endereço IP do seu gateway (ex: 192.168.9.1) <MACAddress>: Endereço MAC da interface de rede
<DNS1>: Endereço IP do Servidor AD (192.168.9.3) <Hostname>: Nome do Servidor AD (ex: srvArquivos)
<DNS2>: Endereço IP do DNS principal da rede (ex: 192.168.9.1)  

 


Configuração de Rede

O Guia de administração RHEL7 indica que o NetworkManager (Gerenciador de Rede) não suporta redes bridging, recurso que é utilizado em máquinas virtuais. Caso então, esteja fazendo esta configuração em uma máquina virtual, desinstale o NetworkManager.

  • Logado como usuário root, pare e desative o NetworkManager da inicialização padrão do Redhat/CentOS:

systemctl stop NetworkManager

chkconfig NetworkManager off

  • Agora remova o NetworkManager:

yum remove NetworkManager

  • Instale o pacote net-tools, a fim de termos os comandos tradicionais de configuração de rede. Caso precise configurar as interfaces antes de instalar o “net-tools” ou não tenha internet disponível nessa máquina, confira a última seção deste guia.

yum install net-tools

  • Faça uma cópia do arquivo de configurações da respectiva interface de rede (ex: ens18):

cp /etc/sysconfig/network-scripts/ifcfg-<ethX> /etc/sysconfig/network-scripts/ifcfg-<ethX>.ORI

  • Edite o arquivo de configurações da respectiva interface de rede (ex: eth1):

vi /etc/sysconfig/network-scripts/ifcfg-<ethX>

  •  Altere o arquivo para que fique com as configurações desejadas. Segue abaixo um exemplo:

    TYPE="Ethernet"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="<ethX>
    UUID="c0dd071c-8b47-47d3-8c1d-99a18a92ad9b" #ID variável de acordo com a interface
    DEVICE="<ethX>"
    ONBOOT="yes"
    IPADDR="<EnderecoIP>"
    PREFIX="24"
    GATEWAY="<Gateway>"
    DNS1="<DNS1>" #Se a rede possuir SAMBA4 e DNS no mesmo servidor, coloque o endereço IP do SAMBA4
    DNS2="<DNS2>"
    DNS3="<DNS3>"
    DNS4="<DNS4>"
    DOMAIN="<DominioLocal>" # Domínio da Rede
    IPV6_PEERDNS="yes"
    IPV6_PEERROUTES="yes"
    IPV6_PRIVACY="no"

  • Reinicie o serviço de rede:

systemctl restart network

  • Para iniciar a rede automaticamente na inicialização:

chkconfig network on

  • Para listar inicialização dos daemons do Redhat/CentOS faça:

chkconfig --list

 

Configuração de Hostname

  • Faça uma cópia do arquivo de configurações do hostname:
    cp /etc/hostname /etc/hostname.ORI

  • Edite o arquivo de configurações do hostname:
    vi /etc/hostname

  • Altere o arquivo para que fique com as configurações desejadas (ex: srvarquivos.comdesk.local):
    <Hostname>.<DominioLocal>

  • Faça uma cópia do arquivo “/etc/hosts”:
    cp /etc/hosts /etc/hosts.ORI

  • Edite o arquivo “/etc/hosts”:
    vi /etc/hosts

  • Adicione a seguinte linha no final do arquivo “/etc/hosts”:
    <EnderecoIP> <Hostname>.<DominioLocal> <Hostname>

 

 

Configuração de DNS

  • Faça uma cópia do arquivo de configurações do DNS:
    cp /etc/resolv.conf /etc/resolv.conf.ORI

  • Edite o arquivo de configurações do DNS:
    vi /etc/resolv.conf

  • Deixe o arquivo com o seguinte conteúdo:
    search <DominioLocal>
    domain <DominioLocal>
    nameserver <DNS1> #Se a rede possuir SAMBA4 e DNS no mesmo servidor, coloque o endereço IP do SAMBA4
    nameserver <DNS2>
    nameserver <DNS3>
    nameserver <DNS4>

  • Caso seja uma VM, o melhor é desativar o serviço de firewall, bem como, desabilitar da inicialização:
    systemctl stop firewalld
    systemctl disable firewalld

 

 

Servidor NTP (Chrony)

Sincronização de tempo é essencial para o bom funcionamento muitos serviços e aplicativos. O CentOS 7 utiliza como padrão o Chrony, que é uma implementação do protocolo NTP e que atualiza mesmo estando com problemas de rede (caso consiga fazer algumas conexões periódicas).

  • Caso não esteja instalado, instale o Chrony:
    yum install chrony

  • Edite o arquivo de configuração do Chrony:
    vi /etc/chrony.conf

  • Comente as linhas que se referem ao pool CentOS (centos.pool.ntp.org) e adicione os servidores NTP do registro.br:
    # These servers were defined in the installation:
    #server 0.centos.pool.ntp.org iburst
    #server 1.centos.pool.ntp.org iburst
    #server 2.centos.pool.ntp.org iburst
    #server 3.centos.pool.ntp.org iburst
    server a.ntp.br iburst
    server b.ntp.br iburst
    server c.ntp.br iburst
    # Use public servers from the pool.ntp.org project.
    ...

    # Allow NTP client access from local network.
    #allow 192.168/16
    ...


  • Após os ajustes, reinicie o serviço:
    systemctl restart chronyd

  • Para monitorar a correção do tempo, os comandos a seguir podem ser utilizados:
    chronyc tracking
    chronyc sources

 


Configuração de Rede nativo do CentOS 7 (ipaddr)

Os comandos mostrados nesta seção são para o caso de precisar configurar alguma Interface de rede antes de instalar o pacote "net-tools", que não é mais nativo do CentOS.

  • Ver status das Interfaces:
    ip addr show

  • Adicionar o endereço IP e máscara à interface (ex: ip addr add 192.168.9.3/24 dev eth1):
    ip addr add <EnderecoIP>/<Mascara> dev <ethX>

  • Adicionar o gateway (ex: 192.168.9.1) como rota padrão:
    ip route add default via <Gateway> dev <ethX>

  • Mostrar as rotas:
    ip r

  • Adicionar Alias de rede:
    ip address add dev <ethX> <EnderecoIP>/<Mascara> label <ethX>:0

 

 

 

Publicado em Tutoriais

 

 

Nesta continuação, vamos definir Informações de política de senhas, criação de Unidades Organizacionais (OU), grupos e usuários que serão autenticados no AD, além de ajustes dos parâmetros globais para o SAMBA 4.

 

Referências

 

<UsuarioAD>: Usuário básico do AD <GrupoAD>: grupo básico do AD
<SenhaUsuarioAD>: Senha do usuário <Descricao>: Descrição
<Nome>: Nome do usuário do AD <OU>: Nome da OU
<Sobrenome>: Sobrenome do usuário <Dominio>: Domínio já definido do AD

 

Importante:
Tenha as pastas que serão compartilhadas já devidamente criadas, montadas e com permissões ‘700’.

Links:
https://wiki.samba.org/index.php/Adding_users_with_samba_tool
http://www.bitbull.ch/wiki/index.php/CentOS7_Samba4_AD

 

Políticas de Senhas e GPO

Em nosso caso, deixaremos a política de senha o mais branda possível, mas pode-se definir como desejado.

  • Estando logado como root em seu servidor, verifique as configurações de politicas de senha:
    samba-tool domain passwordsettings show
  • Definir a complexidade das senhas de usuários:
    samba-tool domain passwordsettings set --complexity=off
  • Desabilitar o histórico de senha:
    samba-tool domain passwordsettings set --history-length=0
  • Desabilitar idade mínima de senha:
    samba-tool domain passwordsettings set --min-pwd-age=0
  • Desabilitar idade máxima da senha:
    samba-tool domain passwordsettings set --max-pwd-age=0
  • Definir o tamanho máximo da senha em caracters:
    samba-tool domain passwordsettings set --min-pwd-length=4
  • Desabilitar expiração de senha de administrador:
    samba-tool user setexpiry Administrator --noexpiry 
  • Permitir o gerenciamento remoto das pastas compartilhadas. Informe a senha quando solicitado.
    net rpc rights grant '<DominioLocal>\Domain Admins' SeDiskOperatorPrivilege -U'<DominioLocal>\Administrator'
  • A seguinte mensagem deverá aparecer:
    Successfully granted rights.
  • Liste as contas do domínio. Informe a senha e uma série de contas deverão ser mostradas.
    net rpc rights list accounts -U'<DominioLocal>\Administrator'
  • Para o GPO funcionar corretamente, deve-se dar permissões completas em sysvol e netlogon.
    chmod 777 -R /usr/local/samba/var/locks/sysvol/<DominioLocal>/scripts
    chmod 777 -R /usr/local/samba/var/locks/sysvol

 


Criação das Unidades Organizacionais (OU) do AD

As unidades organizacionais são úteis quando é preciso implantar um grupo de políticas a um subconjunto de usuários, grupos e computadores dentro de um domínio.

Comumente utiliza-se a ferramenta RSAT do Windows para a criação e gerenciamento de OU, mas nesse caso, a partir da ferramenta “ldbmodify”, vamos adicionar ao arquivo especial “sam.ldb”, localizado na pasta “/usr/local/samba/private/” o conteúdo da nova Unidade Organizacional (OU).

 

  • Por segurança, como 'root', faça uma cópia do arquivo “/usr/local/samba/private/sam.ldb”:
    cp /usr/local/samba/private/sam.ldb /usr/local/samba/private/sam.ldb.ORI 
  • Usaremos a ferramenta “ldbmodify” para inserir o conteúdo desejado ao arquivo. Pode-se inserir o número de Unidades Organizacionais (<NomeOU>) que desejar.
    ldbmodify -H /usr/local/samba/private/sam.ldb << EOF
    dn: ou=<NomeOU>,dc=<Dominio>,dc=local
    changetype: add
    objectClass: top
    objectClass: organizationalunit
    EOF

  • Após inserido o registro, deverá aparecer a seguinte mensagem:
    Modified 1 records successfully

 

 

Criação dos grupos e usuários do AD

Os grupos do AD são usados para atribuir permissões aos recursos da empresa. A melhor prática é alocar usuários em grupos e então aplicá-los a uma lista de controle de acesso. É comum ter grupos que reflitam a estrutura hierárquica da empresa, como grupos do financeiro, do marketing, do jurídico e outros.

O SAMBA 4 fornece um conjunto de grupos padrão na instalação. Os grupos padrão, assim como o grupo 'Admins' do Domínio, são grupos de segurança criados automaticamente. Use esses grupos predefinidos para ajudar a controlar o acesso e delegar funções administrativas.

Neste caso, não teremos pastas dos usuários, por isso, não usaremos as opções “--profile-path”, “--home-drive” e “--home-directory”. Utilizaremos a ferramenta “samba-tool”, para gerenciar os grupos e usuários.

 

  • Criação de grupos de usuário. Pode-se criar quantos desejar.
    samba-tool group add <GrupoAD> --description="<Descricao>" --groupou=OU=<OU> 
  • A mensagem de retorno deve ser:
    Added group <GrupoAD> 
  • Criação de usuários. Pode-se criar quantos desejar.
    samba-tool user create <UsuarioAD> <SenhaUsuarioAD> --given-name=<Nome> --surname=<Sobrenome> --userou=OU=<OU> 
  • A mensagem de retorno deve ser:
    User '<UsuarioAD>' created successfully 
  • Adicionar um usuário a um grupo:
    samba-tool group addmembers <GrupoAD> <UsuarioAD> 
  • A mensagem de retorno deve ser:
    Added members to group <GrupoAD> 
  • Adicionar mais de um usuário a um grupo:
    samba-tool group addmembers <GrupoAD> “<UsuarioAD1>, <UsuarioAD2>" 
  • Adicionar um grupo dentro de outro. Esse recurso é bastante utilizado para definir permissões mais abrangente a determinado grupo de usuários.
    samba-tool group addmembers Administrators <GrupoAD>

    Ex: O grupo hipotético “TI” adicionado ao grupo dos “Administradores”. 
  • O SAMBA também possui ferramenta para debug do LDAP:
    ldbsearch -H /usr/local/samba/private/sam.ldb
    ldbsearch -H /usr/local/samba/private/secrets.ldb

 

 

Comandos comumente utilizados da ferramenta “samba-tools”

  • Por ser de fácil identificação, não colocaremos a identificação da função de cada comando.

samba-tool group list
samba-tool user list
samba-tool gpo listall
samba-tool group listmembers "Domain Users"
samba-tool group listmembers "Domain Admins"
samba-tool group listmembers Administrators
samba-tool group listmembers <GrupoAD>
samba-tool group removemembers <GrupoAD> <UsuarioAD>
samba-tool user disable <UsuarioAD>
samba-tool user delete <UsuarioAD>
samba-tool user setpassword <UsuarioAD>

smbclient -L localhost -U%

 

 

Definir acesso às pastas por usuário

Se for necessário que somente usuários tenham acesso a alguma pasta compartilhada, deve-se criar o respectivo usuário no Linux e fazer a respectiva associação no arquivo “smb.conf”, que será visto com mais detalhes na próxima seção.

  • Criar o respectivo usuário no Linux e tornar dono da respectiva pasta compartilhada. O usuário/senha Linux devem ser o mesmo que do usuário do AD.
    adduser <UsuarioLinux>
    passwd <UsuarioLinux>
    chown <UsuarioLinux> <PastaCompartilhada>

    Obs: Será criada uma pasta com o nome do <UsuarioLinux> em /home

  • Após, no arquivo “smb.conf” (/usr/local/samba/etc/smb.conf), na respectiva seção da <PastaCompartilhada>, adicione a linha “valid users = <UsuarioLinux>”.

    [<PastaCompartilhada>]

    comment = Pasta acessivel somente por usuário
    path = <PontoMontagem>/<PastaCompartilhada>
    ...
    valid users = <UsuarioLinux>
    guest ok = no
    vfs objects = acl_xattr recycle

 

 

Parâmetros do SAMBA (Arquivo smb.conf)

O arquivo de configuração do SAMBA fica localicado em “/usr/local/samba/etc/smb.conf”, sendo bem documentado e organizado em diferentes seções para facilitar sua configuração. É neste arquivo que são definidos o compartilhamento de pastas, permissões a usuários e/ou grupos, entre outros ajustes.

 

  • Por motivos de segurança, faça uma cópia do arquivo original:
    cp /usr/local/samba/etc/smb.conf /usr/local/samba/etc/smb.conf.ORI 
  • Edite o arquivo “smb.conf”:
    vi /usr/local/samba/etc/smb.conf 
  • Confira a seguir um modelo de configuração do arquivo. Tenha atenção especial aos itens em negrito. Adapte para o seu uso.

[global]
netbios name = <HOSTNAME>
realm = <DOMINIO.LOCAL>
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
workgroup = <DOMINIO>
server role = active directory domain controller
idmap_ldb:use rfc2307 = yes

# Diz se o servidor samba terá ou não vantagens de ganhar uma eleição local
preferred master = yes

# Endereço IP da máquina na qual está sendo configurado o samba (ex: lo eth1 192.168.9.3/24)
interfaces = lo <ethX> <EnderecoIP>/<Mascara>

# Nome do servidor na rede.
server string = Servidor de Arquivos

security = user
map to guest = bad User

# Caso tenha um encaminhador DNS na rede (ex: 192.168.9.1)
dns forwarder = <DNSFirewall>

ldap server require strong auth = no

vfs objects = dfs_samba4, acl_xattr recycle
map acl inherit = yes
store dos attributes = yes

wins support = yes
hosts allow = ALL
name resolve order = lmhosts host wins bcast

template shell = /bin/bash
template homedir = /home/%U

# Default ID mapping configuration for local BUILTIN accounts and groups on a domain member. The default (*) domain:
# - must not overlap with any domain ID mapping configuration!
# - must use an read-write-enabled back end, such as tdb.
idmap config * : backend = tdb
idmap config * : range = 3000-7999

#############################################################
###### DESABILITA COMPARTILHAMENTO DE IMPRESSORAS #######
printcap name = /dev/null
load printers = no
disable spoolss = yes
printing = bsd

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

#############################################################
######### LIXEIRA #########
  vfs objects = recycle crossrename
##Grava arquivos até 2GB, se não houver esta linha, só serão armazenados arquivos de até 20MB.
crossrename:sizelimit = 2000
recycle:directory_mode = 0774
recycle:subdir_mode = 0774
##Cria uma árvore de diretórios, pastas, subpastas e seus arquivos
recycle:keeptree = true
recycle:touch = true
##Cria várias versões de arquivos deletados que contenham o mesmo nome
recycle:versions = true
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.exe, *.bin
recycle:noversions = *.tmp, *.temp, *.o, *.obj, *.TMP, *.TEMP
recycle:exclude_dir = tmp, temp, cache
##Grava no diretório 'lixeira' com a pasta no nome do usuário que deletou o arquivo
#caminho completo da pasta lixeira. (ex: /mnt/vdisk-srvArquivos/samba/lixeira/%U)
recycle:repository = <PontoMontagem><PastaLixeira>/%U

#############################################################
######### AUDITORIA #########
vfs objects = full_audit
full_audit:success = open, opendir, write, unlink, rename, mkdir, rmdir, chmod, chown
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facility = LOCAL1
full_audit:priority = notice
local1.notice /var/log/auditoria-samba.log

[netlogon]
path = /usr/local/samba/var/locks/sysvol/<DominioLocal>/scripts
read only = No
browseable = no

[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = No
browseable = no
writable = yes
force directory mode = 0777
force create mode = 0777

[Lixeira]
comment = Lixeira
# Caminho completo da pasta lixeira. (ex: /mnt/vdiskStorage/samba/lixeira)
path = <PontoMontagem><PastaLixeira>
valid users = %U
force create mode = 0777
force directory mode = 0777
browseable = yes
writable = yes
public = yes
guest ok = yes
vfs objects = acl_xattr recycle

#========================= Pastas Compartilhadas ==============================#
##############################################################################

[Backup]
comment = Backup
# Localização do ponto de montagem de backup (ex: /mnt/nfs-backup1)
path = <PontoMontagemBackup1>
valid users = @<GrupoAD1>
invalid users = @<GrupoAD2>
read only = no
browseable = yes
writable = yes
#Todo arquivo criado neste compartilhamento será criado com permissão 777
force create mode = 0777
#Toda pasta criada neste compartilhamento será criado com permissão 777
force directory mode = 0777
guest ok = yes
vfs objects = acl_xattr recycle

[Usuario1]
comment = Pasta do Usuário 1
# Caminho completo da pasta do usuário1 (ex: /mnt/vdiskStorage/samba/users/Usuario1)
path = <PontoMontagem><PastaUsuario1>
read only = no
browseable = yes
writable = yes
force create mode = 0777
force directory mode = 0777
# Controle de acesso definido por usuário. Neste caso, somente os usuário 1 e 2 teriam acesso a esse compartilhamento. Conferir instruções informadas anteriormente neste documento
valid users = <UsuarioLinux1> <UsuarioLinux2>
guest ok = no
vfs objects = acl_xattr recycle

[Pasta1]
comment = Pasta 1
# Caminho completo da pasta compartilhada 1 (ex: /mnt/vdiskStorage/samba/shares/pasta1)
path = <PontoMontagem><PastaCompartilhada1>
valid users = @<GrupoAD1>, @<GrupoAD2>
read only = no
browseable = yes
writable = yes
force create mode = 0777
force directory mode = 0777
guest ok = no
vfs objects = acl_xattr recycle

[Pasta2]
comment = Pasta 2
# Caminho completo da pasta compartilhada 2 (ex: /mnt/vdiskStorage/samba/shares/pasta2)
path = <PontoMontagem><PastaCompartilhada2>
valid users = @<GrupoAD1>, @<GrupoAD2>
read only = no
browseable = yes
writable = yes
force create mode = 0777
force directory mode = 0777
# Permitir o acesso a visitantes
guest ok = yes
public = yes
vfs objects = acl_xattr recycle

 

  • Após concluídos os ajustes, confira se os serviços estão executando de forma correta:
    systemctl restart samba-ad-dc
    systemctl restart named

  • Se nenhum erro ocorrer, reinicie o sistema:
    init 6

  • Confira se os principais serviços estão em execução
    systemctl status samba-ad-dc
    systemctl status named

 

  • Se tudo estiver ok, já é possível ingressar as estações Windows no AD. Utilize o usuário Administrator e a respectiva senha.

 

Publicado em Tutoriais
Proxmox VE
Proxmox VE
Plataforma completa para virtualização a nível empresarial.
www.proxmox.com
pfSense
pfSense
Sistema que possui recursos avançados para controle e segurança de redes.
www.pfsense.org
FreeNAS
FreeNAS
Sistema operacional para NAS (Network Attached Storage).
www.freenas.org
Zabbix
Zabbix
Ferramenta para monitoramento de redes, servidores e serviços.
www.zabbix.org
XenServer
XenServer
Plataforma de virtualização abrangente, com recursos de classe empresarial.
www.xenserver.org
GLPI
GLPI
Ferramenta completa para gestão de ativos e service desk.
www.glpi-project.org
redhat
redhat
Líder no fornecimento de soluções open source para TI corporativa
www.redhat.com.br
Suse
Suse
Sistema Operacional Linux e soluções de código aberto para serviços corporativos.
www.suse.com
Samba
Samba
Software que implementa solução semelhante ao Active Directory da Microsoft.
www.samba.org

Somos especialistas em Open Source

Conforme as empresas, de todos os portes, passam a seguir o filosofia do open source, começa a ficar claro que as vantagens de adotar esse conceito não se restringem somente aos preços.

Diferente do que pensa o senso comum, o open source é uma filosofia alternativa de negócios e não apenas a disponibilização de softwares gratuitos.


O software de código aberto, proporciona maior liberdade, flexibilidade, agilidade e segurança.