====== Servidor de dominio Samba4 con DNS externos ======
En el siguiente manual vamos a instalar samba4 con un servidor de nombres (DNS) externo.
===== Preparativos =====
Partiendo de que el servidor DNS está funcionando, lo primero es dar un IP a nuestro servidor de dominio.
root@dominio:~# nano /etc/network/interfaces
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.2
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.1 192.168.0.3 192.168.0.4
dns-search abtss.co.cu
dns-domain abtss.co.cu
Donde:
* **address**: la IP de nuestro equipo.
* **netmask**: la mascara de red. En una red pequeña o de una casa suele ser esta.
* **gateway**: la puerta de enlace. Normalmente es la IP del router que nos da la salida a Internet en mi caso el al firewall de mi red.
* **dns-nameservers**: La ip del servidor DNS. En este caso el del servidor, pero se puede añadir un segundo, en mi caso es el DNS de mi red.
Las dos últimas indican el nombre de búsqueda del dominio y el nombre del dominio en si.
Después editamos el fichero ''/etc/resolv.conf'' quedando de la siguiente forma.
root@dominio:~# nano /etc/resolv.conf
domain abtss.co.cu
search abtss.co.cu
nameserver 192.168.0.3
Donde las 2 primeras líneas son el dominio de nuestra red y la tercera es el ip de la maquina.
Entramos en el fichero ''/etc/fstab'', y configuramos que todas las unidades de disco duro nos queden con la configuración.
root@dominio:~# nano /etc/fstab
UUID=b99750a8-9c39-11e3-82f1-525400990c6c / ext4 user_xattr,acl 0 2
Y por último configuramos el fichero ''/etc/apt/sources.list'' para los repositorios de debian wheezy, en este caso pongo los de jovenclub.
root@dominio:~# nano /etc/apt/sources.list
deb http://descargas.jovenclub.cu/repos/debian/wheezy wheezy main contrib non-free
deb http://descargas.jovenclub.cu/repos/debian/wheezy-backports wheezy-backports main contrib non-free
deb http://descargas.jovenclub.cu/repos/debian/wheezy-multimedia wheezy main contrib non-free
deb http://descargas.jovenclub.cu/repos/debian/wheezy-security wheezy/updates main contrib non-free
deb http://descargas.jovenclub.cu/repos/debian/wheezy-updates wheezy main contrib non-free
Reiniciamos para que el servidor tome bien todas las configuraciones hechas hasta ahora, y hasta aquí tenemos el servidor listo para comenzar a configurar samba4.
root@dominio:~# init 6
===== Descarga, instalación, configuración =====
En este caso vamos a descargar la última versión estable disponible, en el momento de hacer este documento es **samba-4.2.0**.
Puedes descargarla de [[http://descargas.jovenclub.cu/GUTL/Aplicaciones_Softwares/Linux/TAR_X/samba-4.2.0.tar.gz|aquí]].
Para comenzar con la instalación y configuración de samba4, debemos instalar unos paquetes que son necesarios para su posterior configuración.
root@dominio:~# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev \
libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config \
libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl
Como parte de la instalación, debemos configurar keberos 5. Las configuraciones que nos va a pedir son las siguientes:
- Dominio Real al que pertenece la maquina, siempre (debemos tener en cuenta que se escribe con mayúsculas completo **ABTSS.CO.CU**).
- Nombre del servidor que estamos utilizando. (se escribe con minúsculas **dominio**)
- El nombre de la maquina con el dominio incluido. (se escribe con minúsculas **dominio.abtss.co.cu**)
Una vez hechas estas configuraciones pasamos a instalar el servicio NTP.
root@dominio:~# apt-get install ntp
Después de instalado el servicio pasamos a configurarlo.
root@dominio:~# mv /etc/ntp.conf /etc/ntp.conf.original
root@dominio:~# nano /etc/ntp.conf
y lo dejamos con el siguiente contenido:
# mensaje de registro (notrap)
restrict default modify notrap noquery
# Permitir todo el acceso a la interfaz de retorno del sistema
restrict 127.0.0.1
# Reloj Local indisciplinado
driftfile /var/lib/ntp/drift broadcastdelay 0.008
logfile /var/log/ntpd.log
server 127.0.0.1
fudge 127.0.0.1 stratum 12
server domain.abtss.co.cu iburst prefer
ntpsigndsocket /usr/local/samba/var/lib/ntp_signd/
# Se le permite a la red local sincronizar con el servidor
restrict -4 default kod notrap nomodify nopeer noquery mssntp
restrict default mssntp
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap nopeer noquery
# Se activa la difucion hacia los clientes
broadcastclient
Después de puestas estas opciones guardamos y reiniciamos el servicio
root@dominio:~# service ntp restart
Después de tener configurado el servidor de tiempo pasamos a la carpeta ''/usr/src/'' para descargar el samba4.
root@dominio:~# cd /usr/src/
root@dominio:/usr/src# wget http://descargas.jovenclub.cu/GUTL/Aplicaciones_Softwares/Linux/TAR_X/samba-4.2.0.tar.gz
Descompactamos el fichero.
root@dominio:/usr/src# tar -zxvf samba-4.2.0.tar.gz
Y comenzamos con la configuración usando los siguientes comandos. (En estos puntos se demora bastante la instalación así que no se preocupen por eso.)
root@dominio:/usr/src # cd samba-4.2.0
root@dominio:/usr/src/samba-4.2.0# ./configure --enable-debug
root@dominio:/usr/src/samba-4.2.0# make
root@dominio:/usr/src/samba-4.2.0# make install
Una vez terminado este proceso, estamos a la mitad del camino en cuanto a configuraciones se refiere, pero en tiempo estamos terminando.
La instalación por defecto es en ''/usr/local/samba'', por lo que añadimos las nuevas rutas en la variable de entorno ''$PATH''. En mi caso se declara en ''/etc/bash.bashrc'' para que se aplique a todos los usuarios, ''root'' incluido:
root@dominio:/usr/src/samba-4.2.0# nano /etc/bash.bashrc
Dentro del fichero agregaremos la línea de exportación de la variable debajo de las lineas comentadas, quedando como lo pongo a continuación:
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin
Además, lo ejecutamos para comenzar a utilizar el servicio samba.
root@dominio:/usr/src/samba-4.2.0# export PATH=$PATH:/usr/local/samba/bin:/usr/local/samba/sbin
También creamos un enlace dentro de ''/etc'' para que Samba encuentre el archivo de configuración:
root@dominio:/usr/src/samba-4.2.0# ln -s /usr/local/samba/etc/ /etc/samba
Vamos ya a configurar el servidor Samba. Para ello ejecutamos:
root@dominio:/usr/src/samba-4.2.0# samba-tool domain provision --realm=abtss.co.cu --domain=ABTSS --adminpass=Contraseña --use-rfc2307
Donde:
* **realm**: es el nombre completo del dominio.
* **domain**: es el dominio. Tiene que estar en mayúsculas
* **adminspass**: es la contraseña del administrador de la red.
* **use-rfc2307**: para activar AC.
Si todo sale bien tras un ratito Samba terminara de configurarse y te mostrará unas salidas donde aparecen:
Server Role: active directory domain controler
Hostname: dominio
NetBIOS Domain: ABTSS
DNS Domain: abtss.co.cu
DOMAIN SID: S-1-5-21-236987452-85659585-695823657
Ahora vamos a editar el archivo ''/etc/samba/smb.conf''. Por ahora lo que nos interesa es la siguiente línea:
dns forwarder = 192.168.0.3
Esta línea debe de apuntar al servidor DNS que nos da salida a Internet (en este caso, el DNS de mi red). Samba la toma por defecto de la configuración de la red pero es recomendable verificarlo.
Ahora iniciamos el servicio:
root@dominio:/usr/src/samba-4.2.0# samba
Comprobamos la conexión ejecutando:
root@dominio:/usr/src/samba-4.2.0# smbclient -L localhost -U%
Y si todo esta correcto nos mostrará una en pantallas unos letreros donde los ultimos son:
Server Comment
------ -------
Workgoup Master
------ -------
En caso de que de error es que cometimos algún error en los pasos anteriores.
===== Comprobación =====
Ahora vamos a comprobar que nos podemos conectar:
root@dominio:/usr/src/samba-4.2.0# kinit administrator@ABTSS.CO.CU
Ojo, el dominio tiene que escribirse en mayúsculas.
Acto seguido nos pedirá la contraseña del usuario, en este caso el del administrador. OJO, la contraseña tiene que ser compleja, de lo contrario puede traer problemas. Si nos sale un mensaje que dice "**Warning: Your password will expire in 41 days on dia-semana mes dia hora año**" es que salió correctamente.
Bueno, ya hemos completado este pequeño tutorial. Ya podemos incluso conectarnos con RSAT desde una máquina que este unida al dominio y con un usuario con privilegios administrativos.
Para finalizar solo nos queda un pequeño detalle, cuando el servidor se apague por alguna razón no va a ejecutar el samba, pero la solución es muy sencilla. Agregar en /etc/init.d/ el siguiente script, para poder tratar la instalacion como si la hubieses hecho directo desde el paquete.
root@dominio: # nano /etc/init.d/samba4
#! /bin/sh
### BEGIN INIT INFO
# Este Script ha sido Adaptado por Arnel González Rodríguez
### END INIT INFO
#
# Start/stops the Samba daemon (samba).
# Adapted from the Samba 3 packages.
#
# Defaults
RUN_MODE="daemons"
[ -r /etc/default/samba ] && . /etc/default/samba
PIDDIR=/usr/local/samba/var/run
SAMBAPID=$PIDDIR/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/samba -a -r /etc/samba/smb.conf || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting Samba 4 daemon" "samba"
# Make sure we have our PIDDIR, even if it's on a tmpfs
install -o root -g root -m 755 -d $PIDDIR
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
Le damos permiso de ejecución.
root@dominio: # chmod 777 /etc/init.d/samba4
Ahora solo nos falta que se ejecute siempre que inicie el sitema para ello aplicamos el comando:
root@dominio: # update-rc.d samba4 defaults
Ahora si tenemos el samba funcionando sin problemas de ningún tipo, además podemos hacer uso de stop, start y restart.
----
----
----
**Autor:** Arnel González Rodríguez
**Correo electrónico:** dir.informatica@abtss.co.cu
Muy bueno el tutorial, Arnel. De hecho, lo utilicé acá en mi red. Solo te faltó, en mi opinión, lanzar al final de todo el comando rcconf y allí declarar Samba4 como un programa que debe levantar al (re)iniciarse el sistema.