Revista Tecnología

Servidor de dominio en ubuntu server 12.04.2 con samba 4

Publicado el 29 julio 2013 por Antonio Carmona López @acarmonalopez

Servidor de dominio en ubuntu server 12.04.2 con samba 4
Os dejo un tuto sobre como montar un servidor de dominio con samba 4.
A continuación voy a explicar 2 métodos de como hacerlo, mediante apt y compilar el código fuente, personalmente prefiero el segundo método, pero de todas formas hay lo dejo:
Para montar el servidor de dominio en ubuntu 12.04.2, para este ejemplo, necesitaremos el anteriormente mencionado samba 4, bind9 y kerberos aplicable a la siguiente topología:
topologia
Primera opción(compilar fuente).
- Configuración inicial:

sudo suecho "# The primary network interface auto eth0 iface eth0 inet static address 192.168.1.103 netmask 255.255.255.0 gateway 192.168.1.1 network 192.168.1.0 dns-nameserves 192.168.1.103 192.168.1.1 dns-search servidorlocal.test.local# Secundary network interfaceauto eth1iface eth1 inet dhcp" >> /etc/network/interfacesecho "servidorlocal" > /etc/hostnameecho "127.0.0.1 localhost 192.168.1.103 servidorlocal servidorlocal.test.local" >/etc/hosts- Actualizamos nuestro servidor e instalamos los paquetes necesarios:apt-get update & apt-get dist-upgrade

apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls-dev libblkid-dev libreadline-dev libattr1-dev python-dnspython libpopt-dev libbsd-dev attr docbook-xsl libcups2-dev git
reboot
- Descargamos samba 4 y lo dejamos en la ruta /usr/src/samba4:
 git clone git://git.samba.org/samba.git /usr/src/samba4/ 
 - Antes de compilar, se prepara el paquete conforme a nuestras necesidades: 
 cd /usr/src/samba4/  
 ./configure --enable-debug 
 - Se compila el paquete, en este punto paciencia, porque dependiendo de los recursos del equipo, puede tardar más o menos: 
 make 
- Una vez compilado, procedemos al instalar samba 4: 
make install
 - Añadimos al path la ruta de los ejecutables de samba 4 para lo cual, editamos/creamos el archivo .bashrc e introducimos la siguiente linea:
export PATH="/usr/local/samba/sbin:/usr/local/samba/bin:$PATH"


- Creamos el dominio:

samba-tool domain provision --realm test.local --domain TEST --adminpass P$ssword --server-role=dc --use-ntvfs- Probamos que samba funciona correctamente: 


root@servidorlocal:/home/antonio#smbclient -L localhost -U% Domain=[TEST] OS=[Unix] Server=[Samba 4.2.0pre1-GIT-44429f9]

Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service Domain=[TEST] OS=[Unix] Server=[Samba 4.2.0pre1-GIT-44429f9] Server Comment --------- ------- Workgroup Master --------- -------root@servidorlocal:/home/antonio# /usr/local/samba/bin/smbclient //localhost/netlogon -U 'administrator'

    Enter administrator's password: Domain=[TEST] OS=[Unix] Server=[Samba 4.2.0pre1-GIT-44429f9]
- Antes de probar que los DNS funcionan correctamente listar el archivo /usr/local/samba/etc/smb.conf, debiendo quedar:# Global parameters [global] workgroup = TEST realm = test.local netbios name = SERVIDORLOCAL server role = active directory domain controller dns forwarder = 192.168.1.1 allow dns updates = nonsecure and secure server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, dns, smb dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc [netlogon] path = /usr/local/samba/var/locks/sysvol/test.local/scripts read only = No [sysvol] path = /usr/local/samba/var/locks/sysvol read only = No- Tambien listaremos el contenido del fichero /etc/resolv.conf, donde la salida que obtendremos será al parecido a esto:
    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN nameserver 192.168.1.103 search test.local
* Si modificamos/introducimos algún parámetro, sera conveniente reiniciar.- - Para comprobar que nuestro servidor DNS funciona, podemos ejecutar:r root@servidorlocal:/home/antonio# netstat -tunpe | grep ":53"    tcp 0 0 127.0.0.1:53699 127.0.0.1:953 TIME_WAIT 0 0
root@servidorlocal:/home/antonio# host -t SRV _ldap._tcp.test.local.


_ldap._tcp.test.local has SRV record 0 100 389 servidorlocal.test.local.

root@servidorlocal:/home/antonio# host -t SRV _kerberos._udp.test.local.


       _kerberos._udp.test.local has SRV record 0 100 88 servidorlocal.test.local.
root@servidorlocal:/home/antonio# host -t servidorlocal.test.local. 
    
         servidorlocal.test.local has address 192.168.1.103 
 - Para hacer que nuestros clientes modifique sus DNS cuando el servidor los modifica, editamos el archivo /etc/bind/named.conf e introducimos la siguiente linea: 
        tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
 
- Instalamos kerberos:
apt-get install krb5-user 
root@servidorlocal:/home/antonio# kinit [email protected] 
    Password for [email protected]: Warning: Your password will expire in 41 days on Fri Aug 30 15:06:12 2013  * En caso de nos devuelva una fallo, editar fichero /usr/local/samba/share/setup/krb5.conf:
[libdefaults] default_realm = TEST.LOCAL dns_lookup_realm = true dns_lookup_kdc = true

root@servidorlocal:/home/antonio# klist -e

    Ticket cache: FILE:/tmp/krb5cc_0 Default principal: [email protected] Valid starting Expires Service principal 20/07/2013 01:30 20/07/2013 11:30 krbtgt/[email protected] renew until 21/07/2013 01:30
-Para hacer que samba 4 se ejecute al inicio, creamos el archivo /etc/init.d/samba4 con el siguiente contenido:

#! /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 -- -D; 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
chmod 755 /etc/init.d/samba4
update-rc.d samba4 defaults


Volver a la Portada de Logo Paperblog

LOS COMENTARIOS (1)