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:
Primera opción(compilar fuente).
- Configuración inicial:
sudo su
echo "# 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:
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
LOS COMENTARIOS (1)