En el siguiente manual vamos a instalar samba4 con un servidor de nombres (DNS) externo.
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:
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
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 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:
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</code>
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:
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.
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.