Guía de Despliegue e instalación del servicio Samba¶
Preparación básica¶
- Descargar la imagen de: esta página de descarga de imágenes.
- Preparar la maquina virtual siguiendo ModularITXenUDeploymentGuideEs con los siguientes parametros:
- Tamaño Volumen: 3GB
- RAM: 512 MB
- Nombre: samba
vmcreate --size 3G --file samba-1.1_3.tgz --ip 128 --ip 192.168.69.22 samba
- Crear un volumen LVM llamado samba_home para el home del Samba. El tamaño sera el suficiente para albergar los datos. Por ejemplo, para crearlo de 30G:
lvcreate -L30G -n samba_home sys mkfs -t ext3 /dev/sys/samba_home
- Añadir este volumen a la configuración de la maquina virtual (/etc/xen/auto/samba) como disco hda2.
[ 'phy:/dev/sys/samba,hda1,w','phy:/dev/sys/samba_home,hda2,w','phy:/dev/sys/swap_samba,hdb1,w' ]
- Arrancar la maquina virtual:
xm create -c /etc/xen/auto/samba
- Entrar como root con clave passwd.root y cambiarla.
Configuración de la maquina¶
Existen dos opciones de configuración:- Configuración centralizada: Si la maquina va a estar integrada en una infraestructura de gestión ModularIT
- Configuración local: Si la maquina no va a estar integrada en una infraestructura de gestión ModularIT
Configuracion centralizadas¶
En el servidor Puppet
- En el grupo de cliente de la maquina, definimos los parametros globales referentes a los servicios de la maquina Samba
## Samba service variables # IP of the samba server $samba_ip = "192.168.69.22" # NetBIOS domain name $smbdomain = "DEVEL" # NetBIOS name of the samba server $smbname = "servidor"
- Crear la entrada de la maquina que estamos instalando, con su nombre ModularIT
node "devel.samba" inherits "devel" {
# First installation?
$bootstrap = yes
$modularit_name = "devel.samba"
$comment = "Development Samba"
include modularit
}
En el cliente (la máquina que estamos instalando)
- Paramos puppetd y lo arrancamos en modo debug para comprobar que actualiza todo:
/etc/init.d/puppet stop puppetd --debug --no-daemonize --runinterval 60 --fqdn NOMBRE_MODULARIT --server PUPPET_MODULARIT
- Los parametros NOMBRE_MODULARIT y PUPPET_MODULARIT serán facilitados por el responsable del servicio
- Una vez que el puppet completa varios ciclos sin error, lo ejecutamos como servicio
/etc/init.d/puppet restart
- Para comprobar que las notificaciones al Nagios funcionan correctamente, ejecutamos el planificador de PIFIA
/var/lib/pica/bin/scheduler Emergency /var/lib/pica/bin/scheduler Warning
- En el Nagios comprobamos si hay alguna alerta que no genere un OK. En este punto es normal tener alertas critical de AIDE
Configuración local¶
Este tipo de instalación es necesaria cuando la maquina no esta integrada en un entorno de gestion centralizado ModularIT- Ir al directorio /opt
- Descargar el árbol de configuraciones de ModularIT:
links --source "http://git.modularit.org/?p=modularit.git;a=snapshot;h=HEAD;sf=tgz" | tar xvzf -
- Esto nos creó un directorio /opt/modularit
- Creamos el directorio de módulos de puppet y enlazamos a ModularIT:
mkdir /etc/puppet/modules ln -s /opt/modularit/Puppet/modularit /etc/puppet/modules/
- Editamos el fichero de variables de configuración /opt/modularit/Puppet/offline/variables.pp y lo adaptamos a la configuración que queremos usar. Este fichero sera común para todas las maquinas ModularIT de esa instalación concreta
- Editamos el fichero /opt/modularit/Puppet/offline/offline.pp para establecer el nombre y el tipo de maquina ModularIT, en este caso samba. Este fichero sera diferente para cada maquina (el nombre y el tipo de maquina cambia)
- Una vez que tenemos la configuración, ejecutamos puppet en modo offline:
puppet --debug /opt/modularit/Puppet/offline/offline.pp
- El proceso debería terminar sin errores
Preparación del servicio¶
- Ejecutamos el script de inicialización del servicio Samba.
modularit_samba_init.rb
- Este script hace lo siguiente
- Configura el sistema para usar los usuarios del LDAP
- Establece el SSID configurado, que debe coincidir con el del LDAP
- Configura la clave de acceso al LDAP para el Samba
- Una vez inicializado el servicio, comprobamos que vemos las cuentas de usuario y grupo del ldap con getent passwd y getent group
- Comprobar que nos podemos conectar al samba con el usuario admin y que vemos su directorio home
smbclient -L server -Uadmin
Activacion SELinux¶
Para activar selinux:- FIXME: Con SELinux activo da error al agregar maquinas al dominio porque smbldap-useradd no encuentra el smbldap_tools.pm en el @INC
- En /etc/sysconfig/selinux establecer SELINUX=enforcing
- Etiquetar el sistema de ficheros y reiniciar
fixfiles relabel reboot
- Activar la compartición de los homes
setsebool -P samba_enable_home_dirs 1
- Activar soporte controlador de dominios para permitir ejecución de scripts de gestión de usuarios/grupos. Esta variable activa el permiso de ejecución desde samba de los scripts de gestión de usuarios y grupos (etiquetados con useradd_exec_t y groupadd_exec_t)
setsebool -P samba_domain_controller on
- Etiquetar los scripts de smbldap-tools en el contexto useradd_exec_t y groupadd_exec_t
semanage fcontext -a -t useradd_exec_t '/usr/sbin/smbldap-user.*' restorecon -R -v /usr/sbin/smbldap-user* semanage fcontext -a -t groupadd_exec_t '/usr/sbin/smbldap-group.*' restorecon -R -v /usr/sbin/smbldap-group*
- Para comprobar que las etiquetas son correctas. Comparar con las de los programas useradd y groupadd . Deberían ser iguales
ls -Z /usr/sbin/useradd /usr/sbin/smbldap-useradd ls -Z /usr/sbin/groupadd /usr/sbin/smbldap-groupadd
Inicializar AIDE¶
Una vez que esta todo funcionando, inicializar la BBDD de AIDE tal como se describe en AIDE
Configuración del fichero login.bat¶
- Podemos forzar a que las maquinas windows registradas en dominio cuando se hagan login sobre ellas ejecutar de forma obligatoria un scripts, este script esta en /home/samba/netlogon y de nombre login.bat
- Tambien tendremos que asegurarnos que en fichero /etc/samba/smb.conf tiene "logon script = login.bat "
- Un Ejemplo login.bat
@ECHO OFF :: ******************************* :: LOGIN SCRIPT :: Miguel Armas <kuko@canarytek.com> :: ******************************* :: NOTE! This file MUST have DOS style end-of-line!! :: ******[ Configuration variables ]************ Set SERVERNAME=SERVIDOR Set HOMEDRIVE=U :: ********************************************* ::echo Syncing time with the server... NET TIME \\%SERVERNAME% /SET /YES :: Map homedrive to homedir if it's not a NT host :: if '%OS%' == 'Windows_NT' goto :END echo Mapping user home to drive %HOMEDRIVE%: NET USE %HOMEDRIVE%: /HOME :: If member del grupo Ejemplo ejecuta \\%SERVERNAME%\netlogon\ifmember ExampleDomain\ExampleGroup if not errorlevel 1 goto ExampleGroupTwo NET USE h: \\%SERVERNAME%\examplegroup :: IF MEMBER OF ExampleGroupTwo :DominioEjemploDos \\%SERVERNAME%\netlogon\ifmember ExampleDomain\ExampleGroupTwo if not errorlevel 1 goto end NET USE h: \\%SERVERNAME%\grupoejemplodos :end
El ejecutable ifmember se encuentra dentro del Windows Server 2003 Resource Kit Tools en http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
Baterías de pruebas¶
- Agregar una maquina al dominio
- Iniciar sesion en el dominio con el usuario admin y comprobar que se crea el perfil móvil en /home/samba/profiles