fabiano_araujo
(usa Conectiva)
Enviado em 07/03/2016 - 14:47h
Parceiro eu utilizo o Ubuntu que é baseado no Debian, e seguindo os passos abaixo eu já instalei alguns servidores:
Instalação do Samba4 – Active Directory compatible Domain Controler
Ubuntu 12.04LTS utilizando o Bind como DNS backend.
- Bind – DNS
Ubuntu 12.04LTS
Dependências necessárias:
# apt-get install devscripts build-essential libkrb5-dev debhelper libssl-dev libtool bison libdb-dev libldap2-dev libxml2-dev libpcap-dev hardening-wrapper libgeoip-dev dpkg-dev
No Ubuntu o pacote disponível no repositório atende aos requisitos do Samba4, nesse caso não é necessário compilar o pacote, a instalação pode ser feita via apt-get:
# apt-get install bind9
Para que o Samba possa alterar as configurações e criar as entradas para o domínio é necessário fazer algumas alterações, são elas:
# vim /etc/bind/named.conf
include “/usr/local/samba/private/named.conf”;
# vim /etc/bind/named.conf.options
tkey-gssapi-keytab “/usr/local/samba/private/dns.keytab”;
forwarders {
8.8.8.8;
8.8.4.4;
};
Nota: A opção forwarders só deve ser usada caso o servidor encaminha solicitações que ele não consiga resolver para servidores DNS externos.
Samba4
Dependências necessárias:
Ubuntu 12.04LTS
# apt-get install libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
Nota: Serão solicitados o domínio do servidor e FQDN dos servidores do Kerberos. quando pedir o REALM informar o "dominio.local"
No Ubuntu ainda é necessária uma alteração no apparmor para que ele permita alterações no bind
Se o sistema de arquivos utilizado for ext3 ou ext4 será necessário configurá-lo para suportar acl e attr. Para isso vamos editar o arquivo /etc/fstab e incluir as opções “user_xattr,acl,barrier=1? na montagem do volume. Após alterado o arquivo deve estar parecido com este:
********* ATENÇÃO DEVE SER INCLUSO as opções: "errors=remount-ro,user_xattr,acl,barrier=1"
### OBS A PARTIÇÃO QUE DEVE SER INCLUSA ESTAS OPÇÕES DE MONTAGEM E NA PARTIÇÃO ONDE ESTÃO OS ARQUIVOS QUE SERÃO COMPARTILHADOS
# SE FOR MAIS DE UMA TAMBÉM DEVE INCLUIR;
# vim /etc/fstab
/dev/hda / ext3 errors=remount-ro,user_xattr,acl,barrier=1 0 1
Montar novamente o sistema de arquivos
# mount -o remount,rw /
Também é importante verificar se o nome do host está definido corretamente, verifique as configurações dos arquivos /etc/hosts e /etc/hostname, faça as alterações necessárias e reincie o servidor.
Download, configuração e instalação do Samba
# wget -c
http://www.samba.org/samba/ftp/stable/samba-4.0.X.tar.gz
# tar -xvf samba-4.0.X.tar.gz
# cd samba-4.0.X/
# ./configure –enable-debug –enable-selftest
# make
# make install
Após instalado o samba, vamos criar o domínio:
# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --use-xattrs=yes --interactive
Serão solicitadas informações como: realm,domain, server role, DNS backend e password. As configurações serão aplicadas e o domínio criado, uma saída semelhante a esta será apresentada:
Realm: TESTE.COM
Domain [TESTE]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=teste,DC=com
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=teste,DC=com
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
See /usr/local/samba/private/named.conf for an example configuration include file for BIND
and /usr/local/samba/private/named.txt for further documentation required for secure DNS updates
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
Once the above files are installed, your Samba4 server will be ready to use
Server Role: active directory domain controller
Hostname: samba4-dc
NetBIOS Domain: TESTE
DNS Domain: teste.com
DOMAIN SID: S-1-5-21-2228987782-1448195482-472659170
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Após o provisionamento copiar o arquivo de configuração (/etc/krb5.conf)
# cp /usr/local/samba/private/krb5.conf /etc/
Editar o arquivo /etc/krb5.conf e incluir abaixo das existentes as seguintes informações:
[realms]
SEU.DOMINIO = { # INFORMAR O DOMINIO
kdc = 192.168.0.1 #IP da sua máquina samba4
admin_server = 192.168.0.1 #IP da sua máquina samba4
}
Antes de iniciar o Samba, reiniciar o bind para que as alterações sejam aplicadas:
# /etc/init.d/bind9 restart
Editar o arquivos /usr/local/samba/etc/smb.conf , e incluir as linhas abaixo para incluir a lixeira e as permissões:
# Lixeira da rede
vfs objects = full_audit, recycle,acl_xattr
map acl inherit = Yes
store dos attributes = Yes
recycle:repository = /home/lixeira
recycle:directory_mode = 0774
recycle:subdir_mode = 0774
recycle:keeptree = true
recycle:touch = true
recycle:versions = true
recycle:exclude = *.tmp, *.log, *.obj, ~*.*, *.bak, *.exe, *.bin
recycle:exclude_dir = tmp, temp, cache
create mask = 0774
directory mask = 0774
full_audit:sucess = open, opendir, write, unlink, rename, mkdir, rmdir,
chmod, chown
full_audit:prefix = %u|%I|%S
full_audit:failure = none
full_audit:facility = local5
full_audit:priority = notice
log level = 1
log file = /var/log/samba/%m-samba.log
max log size = 1000
Dar permissão e configurar permissões de compartilhamento , você precisa de uma conta com " SeDiskOperatorPrivilege " . Para conceder esse privilégio, e. g . para o grupo "Domain Admin" , execute o seguinte comando em seu servidor ( s) membro do AD:
# net rpc rights grant 'TESTE\Domain Admins' SeDiskOperatorPrivilege -U'SEUDOMINIO\administrator'
Iniciar o samba
# /usr/local/samba/sbin/samba
Rodar o comando kinit para iniciar o kerberos
# kinit administrator@TESTE.COM
Atualizar a base DNS
# /usr/local/samba/sbin/samba_dnsupdate –verbose –all-names
Testar o DNS
# host -t SRV _ldap._tcp.teste.local
Para ingressar as máquinas no dominio, é importante que Servidor DNS Primário das estações seja o IP Servidor do samba4 ;
Nota: Para funcionamento correto dos comandos acima, é necessário que no /etc/resolv.conf o nameserver contenha o IP do servidor local.
Editar o arquivo /etc/profile - incluir as linhas abaixo no final do arquivo.
# vi /etc/profile
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr
/local/samba/sbin:/usr/local/samba/bin:/opt
Criar o script de inicialização do SAMBA junto com Sistema
# vi /etc/init.d/samba4.sh
Colar as linhas abaixo no arquivo vazio
#! /bin/sh
### BEGIN INIT INFO
# Provides: samba
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start Samba daemons
### END INIT INFO
#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#
SAMBAPID=/var/run/samba/samba.pid
# clear conflicting settings from the environment
unset TMPDIR
# See if the daemon and the config file are there
test -x /usr/local/samba/sbin -a -r /usr/local/samba/etc/ || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting Samba 4 daemon" "samba"
if ! start-stop-daemon --start --quiet --oknodo --exec /usr/local/samba/sbin/samba;
then
log_end_msg 1
exit 1
fi
log_end_msg 0
;;
stop)
log_daemon_msg "Stopping Samba 4 daemon" "samba"
start-stop-daemon --stop --quiet --name samba $SAMBAPID
# Wait a little and remove stale PID file
sleep 1
if [ -f $SAMBAPID ] && ! ps h `cat $SAMBAPID` > /dev/null
then
# Stale PID file (samba was succesfully stopped),
# remove it (should be removed by samba itself IMHO.)
rm -f $SAMBAPID
fi
log_end_msg 0
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
*)
echo "Usage: /etc/init.d/samba {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
#-----------------------fim do arquivo ---------------------------------------------------
Coloca-lo na inicialização do Sistema
# cd /etc/init.d/
# chmod 777 samba4.sh
# update-rc.d -f samba4.sh defaults
*** Outro serviço importante a ser configurado para o correto funcionamento do samba4 e kerberos é o NTP, caso os relógios não estejam sincronizados os serviços podem apresentar problemas.
Referências:
:: Wiki :: Samba4 – AD DC How To
:: Wiki :: Samba4 – OS Requirements
Samba4-AD with Ubuntu