que hacer para que nadie entre en el dominio

20 de julio de 2011

Antes de migrar un Samba 3.3 a una versión 3.4/3.5 hay que tener bien claro que parámetros cambian de una versión a otra. Parámetros que creíamos por default al cambiar de versión ya no lo son.

Esto me ha pasado al migrar de la 3.3 a la 3.4 con el efecto que nadie podía logearse en el sistema. En la versión 3.3 el parámetros “passdb backend = smbpasswd” pasa a ser por defecto “passdb backend = tdbsam”. Dado que son valores por defecto es muy complicado encontrar cual es problema ya que no se produce ningún error en el Samba (salvo un Access denied).

Para obtener todos los parámetros ya sean escritos en tú smb.conf como por defecto es dicha versión podemos hacer un: testpam –v –s > smb33.conf.bak Luego podemos comparar la versión de nuestra smb.conf cuando estaba en versión 3.3 con el smb.conf al migrar a la 3.4.

Más información:
+ http://lists.samba.org/archive/samba/2010-May/156135.html
+ http://samba.2283325.n4.nabble.com/problems-after-upgrade-from-3-3-2-to-3-4-0-td2440950.html

validar usuario y contraseña en una linea

16 de julio de 2011

Estoy creando un script PHP para cambiar la contraseña de un usuario creado en un sistema Linux. Previamente a cambiarla debe poner su anterior contraseña y para ello necesito validar un usuario y su contraseña. Es decir, necesito saber si un nombre de usuario y contraseña son válidos. Para ello básicamente cifro la contraseña del usuario y la comparo con el /etc/shadow de mi sistema Linux.

#!/bin/bash

# por Alejandro Moreno (Kernpharma) - julio 2011
# Utilizar en "--method=" el metodo de cifrado deseado (SHA-512, MD5, etc)
# Instalar la utilidad mkpasswd (http://pkgs.org/ubuntu-10.04/ubuntu-universe-i386/mkpasswd_5.0.0ubuntu3_i386.deb.html)

if test $# -lt 2 ;
then
   echo "Error de parametros."
   echo
   echo "Sintaxis:"
   echo "   # ./validatepwd.sh <username> <password>"
   exit 3
fi

username=$1
password=$2

contrl=`cat /etc/passwd | grep $username`

if [ "$contrl" != "" ]
then

   encrypt=`cat /etc/shadow | grep $username | cut -d: -f2 | cut -d$ -f 2`
   salt=`cat /etc/shadow | grep $username | cut -d: -f2 | cut -d$ -f 3`
   contrl=`mkpasswd --method=SHA-512 $password --salt=$salt`

   if [ "$contrl" = "`cat /etc/shadow | grep $username | cut -d: -f2`" ]
   then
      echo "Validacion OK."
      RETVAL=0
   else
      echo "ERROR de validacion."
      RETVAL=1
   fi
else
   RETVAL=2
fi

exit $RETVAL