viernes, 29 de abril de 2016

Automatización de Nuevo Huso Horario Venezuela en Fortigate

Bueno, en vista de el nuevo cambio de Huso Horario en Venezuela, ahora con -4:00hs con respecto a UTC, se deberían hacer los cambios del nuevo Huso horario a las 02:30hs VET  (2:30am), con los Linux no hay problema, menos con Debian que ya actualizó tzdata, pero el problema lo tenemos con los Fortigate, por lo que se me ocurrió usar expect en un script para que desde mi máquina con Debian, a las 2:30 am del día 01 de Mayo 2016 cambiara el Huso horario de los equipos Fortigate. Siempre digo que las máquinas deben trabajar para uno, y no uno para las máquinas :D


Acá les dejo el script que hice para automatizar el cambio.


#############################################
### Script para Cambiar Huso Horario a -4:00 UTC
### Autor:  Raul Odria
### Date: 04/29/2016
### Dependencias: expect
### Debian:  aptitude install expect
###
#############################################

#!/usr/bin/expect -f

# Datos del Fortigate
set FortiIP "192.168.0.1"
set ADMIN_USER "TuUserName"
set PASSWORD "Tu-Cl4ve-$uper-Ultra-S3creta-WTF!!!!"

## SSH: agregar -p PUERTO en caso de no usar el pueto estandar ssh, por ejemplo:
## spawn ssh -p 8022 $ADMIN_USER@FortiIP
##
spawn ssh $ADMIN_USER@$FortiIP

expect {
        "password:" {
                send "$PASSWORD\r"
        }
        "(yes/no)? " {
                send "yes\r"
                expect "password:" {
                        send "$PASSWORD\r"
                }
        }
}
expect "$ "
send "config system global\r"
expect {
        "$ " {
               send "set timezone 15\r"
        }
}
expect {
        "$ " {
               send "end\r"
        }
}
expect "$ "
send "exit\r"

############## FIN SCRIPT ###########################

Luego se coloca en un cron para que se ejecute a las 02:30hs del 05/01/2016  (1° de Mayo 2016)

Espero que les sirva.

NOTA: el timezone 15 está relacionado a La Paz -4:00 UTC, pueden verificar en su fortinet que el 15 pertenece a -4:00, y para los que quieran usarlo en otros paises, verificar en su fortiOS el codigo equivalente al TZ que quieren configurar.
Otro punto es que si usas el usuarios admin, debes cambiar los expect $ por expect #

martes, 22 de marzo de 2016

Remote Desktop de manera segura.

Remote Desktop de manera segura.

Hoy me solicitaron opinión sobre el uso de herramientas para administración remota a los equipos portátiles que están en la calle, todo esto en caso de que falle la VPN, por cuestiones de credenciales y no poder actualizarse al Directorio Activo... (Qué problema con Windows...) me preguntaron si podrían hacer uso de TeamViewer o CygWin. 

Realmente no confío en la seguridad de TeamViewer, y para ser honestos, no he investigado y no tengo idea cómo harían para compartir su escritorio usando CygWin, además, que por muchas razones es mejor un programa que no requiera instalación como putty, a tener que instalar cywin. Con putty pude hacer la conexión con un usuario sin privilegios, lo cual es ideal en este caso, y menor es el riesgo en todo sentido. Se me ocurrió algo que hago desde hace años con linux... digamos que es mi llave maestra cuando quiero "evaluar" (burlar) un UTM, y no es otra cosa que mi preferido Secure SHell (SSH).

La idea de usar SSH es hacer un tunel inverso, desde Windows a un Linux/Debian (Sí, Debian, porque me gusta... además "todos los caminos conducen a Debian" :D Enjoy )...  Bueno..., usando la extraordinaria herramienta Putty sobre un Windows, en mi caso Windows 7 y haciendo uso de un usuario sin privilegios, hice un tunel inverso por SSH hasta el servidor Debian, luego desde mi Debian usando rdesktop (o remmina) hice un rdesktop a mi localhost con el puerto configurado en el tunel inverso y Voilà, me conecté por RDestop a la máquina Windows a través de un tunel cifrado, posiblemente ya eso lo hayan hecho antes, pero yo no :)  y me pareció divertido resolver ese "problema" en menos de 30 minutos.

Cuando nace la necesidad es cuando el hombre se vuelve más creativo...

Aquí  el video explicativo, porque es más fácil ver que leer :D
... espero que les sirva.

jueves, 14 de abril de 2011

HP Quickweb

Artículo de phenobarbital

La HP Touchsmart de escritorio, de 19 pulgadas viene con Windows 7; pero de este equipo, lo que más le sorprende a la gente es por lo *avanzado* (tecnológicamente hablando) del software HP Quickweb, una forma de “encender” el equipo en segundos, sin tener que esperar los *casi* 45 segundos que tarda el Windows 7.

Ese software HP Quickweb viene con navegador para Internet, conectividad alámbrica e inalámbrica activada, “una interfaz limpia y mejorada”, Skype y otras aplicaciones para "surfear" la web.

Lo que la gente no sabe es que HP Quickweb es nada más y nada menos, que un LINUX! …

¿Qué es *técnicamente* HP Quickweb?

HP Quickeb es una opción de los nuevos equipos HP que permite arrancar en unos pocos segundos el equipo y viene ya con lo necesario para navegar, descargar las fotos de tu cámara via USB o Bluetooth, etc.

Lo que pocos saben es que HP Quickweb es simplemente un Puppy Linux “sembrado” en una partición especial del disco duro, con un Kernel Linux 2.6.32.1 monolítico especialmente compilado para la HP Touchsmart y que levanta en modo “Live” (por eso puede levantar en pocos segundos) un Gnome Shell con Firefox, Skype, Pidgin y todas las cosas que nosotros los Linuxeros llevamos “años” usando …

Y para la gente que tiene Windows 7, le parece una “asombrosa novedad tecnológica” …

Características Técnicas

Veamos algunas características de ese Puppy Linux:

  • uname -a
    Linux Splashtop 2.6.32.1 #1 SMP Mon Feb 8 14:54:05 CST 2010 i686 GNU/Linux
  • cat /proc/cmdline
    initva=skype baseva=scan MPIDX=SwSetup/QuickWeb/ dvmiofs.vapi=1,0×00000072,0x0000007C i8042.noloop=1 vga=869 loglevel=0 pad=033C5EF2 root=UUID=628AA19D8AA16E6B region=41D location=locationid defconf=sv_SE
  • whoami
    root
  • cat /proc/version #Pretty much the same as uname -a
    Linux version 2.6.32.1 (www-data@build-server2) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) #1 SMP Mon Feb 8 14:54:05 CST 2010
  • apt-get –version
    apt 0.6.46.4-0.1 for linux i386 compiled on Feb 26 2007 16:19:57
    Supported modules:
    *Ver: Standard .deb
    *Pkg: Debian dpkg interface (Priority 20)
    S.L: ‘deb’ Standard Debian binary tree
    S.L: ‘deb-src’ Standard Debian source tree
    Idx: Debian Source Index
    Idx: Debian Package Index
    Idx: Debian dpkg status file
  • cat /etc/apt/sources.list
    ## SCDN Updater package.gz source list
    deb http://sn.splashtop.com/file_system/apt_repository HPIMI00 released

La paquetería es semejante a Ubuntu Hardy Heron (que es binariamente compatible con Debian Lenny) con una serie de mejoras, como la incorporación de Gnome Shell y otras características.

¿Qué es SplashTop OS?

Es un “Web Browser-Based OS” diseñado en el tope de PuppyLinux por la gente de DeviceVM (llamados SplashTop Inc), han estado diseñando “versiones ligeras de splashTop” para fabricantes como Asus, MSI, HP/Compaq, Lenovo, Acer y Sony.

También Dell tiene un Linux-Inside, lo llaman “BlackTop” o “Latitude Services” (y está basado en el escritorio libre Blacbox).

SplashTop vive en los 512MB de ROM de la tarjeta madre, un kernel monolítico le permite ser lo más pequeño posible y ser lo más eficiente posible en la carga, es un sistema operativo “solo lectura”, no se pueden instalar aplicaciones, salvo que descarguemos toda una actualización del BIOS y para ser lo más eficiente posible, es parcheado con RTos (parches para Realtime).

El Sistema Operativo pesa aproximadamente 1.1 Gb y viene con absolutamente TODO lo necesario, para arrancarse en modo Live, en RAM, sin necesidad de utilizar disco duro, salvo para almacenar la información del usuario.

  • Navegador: Firefox
  • Mensajería: pidgin
  • Correo electrónico: thunderbird
  • voIP: Skype
  • Editor de textos: Abiword
  • Visor de imágenes: gThumb
  • Reproductor de música y video: mplayer
  • Películas: linDVD

Para el día a día, ¿alguien necesita algo más?

Conclusiones

Cada vez más empresas te van “acostumbrando” a Linux en sus distintas versiones y sabores (Android en los celulares, Splashtop y Quickweb en los browser-OS, maemo en dispositivos convergentes, las netbook-Mini de HP vendrán con Ubuntu y Gnome-Shell, etc) y la gente aún sigue “repitiendo como loros” lo que los mercadotécnicos les dicen, “acá Microsoft Windows es lo que manda”; no importa que el 70% de los teléfonos a nivel mundial se vendan con Android o que el 80% de los equipos de escritorio te los vendan con “alguna forma de Linux” dentro, o que la mayoría de los dispositivos convergentes (tablets, pads, cámaras digitales, smartphones, etc) sean basados en alguna forma de Unix (Linux, BSD, macOSX), la gente seguirá diciendo que usa más MS Windows.

Un conocido de "Phenobarbital" encendía más veces su PC para ver facebook, leer correo y escuchar música, usando el navegador y el reproductor multimedia de Quickweb que el de Windows 7, pasaba cerca del 70% del tiempo en GNU/Linux y ciertamente, no se daba cuenta!.

Y tú? vas a seguir usando Windows?

viernes, 11 de junio de 2010

Compilar Kernel a la Debian Way corrigiendo el Bug

Tenía tiempo que no escribía en mi blog, bueno... por falta de tiempo atendiendo razones personales y de trabajo, aunque con Debian todo funciona, hoy me tocó compilar un kernel porque lo requería y quise hacerlo de la manera fácil, osea a la Debian Way, pero me topé con un pequeño error y quiero publicar la solución para que otros puedan aprovecharlo.

Comenzaré por el principio y como siempre lo hago, haré un paso a paso para que los que quieran aprender y están desesperados no se desesperen y continúen usando Software Libre y específicamente Debian.

Lo primero es seleccionar el Kernel que quiero instalar desde www.kernel.org y bajárselo, en mi caso haré el ejemplo con el último kernel estable para la fecha en que escribo este documento.

Nos cambiamos al directorio /usr/src para mantener en orden donde va cada cosa en debian ;) aunque pueden hacerlo en cualquier directorio que deseen.

# cd /usr/src

Nos bajamos los fuentes del kernel que queremos, en mi caso es el 2.6.34

# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2

Descomprimimos los fuentes.

# tar xvjf linux-2.6.34.tar.bz2

Nos cambiamos al directorio donde están los fuentes:

# cd linux-2.6.34

Configuramos nuestro kernel con los parámetros que queramos, agregamos o quitamos los soportes del kernel que no queramos :)

# make menuconfig

Corregimos el Bug ;) y pueden probar sin realizar el siguiente comando a ver si les pasa o ya esté corregido.

# cp include/generated/utsrelease.h include/linux/

Procedemos a compilar el Kernel con la magia Debian :)

# make-kpkg clean
# make-kpkg -append-to-version --initrd linux_image linux_headers

Instalamos el kernel

# cd /usr/src

# dpkg -i /linux-image-2.6.34-10.00.Custom_amd64.deb

Y si desean instalamos los headers.

# dpkg -i linux-headers-2.6.34-10.00.Custom_amd64.deb

Eso es todo ;)

Saludos

miércoles, 20 de mayo de 2009

Quotas en Debian

Es típico querer compartir archivos en algún momento, o tal vez necesariamente en una oficina, pero el problema de esto es que hay algunos usuarios que se sobrepasan en el uso o mejor dicho, mal uso de este recurso, por lo que es importante acotarles el espacio al usuario o al recurso compratido, es por ello que voy a explicar la forma sencilla de hacerlo.

1.- Preparar la Partición

Para poder acotar un espacio del disco debemos identificar qué parte de él se va establecer con este servicio, el más común de todos es /home y es con el que voy a explicar (también se suelen usar quotas en los servicios de correo)

Editamos /etc/fstab usando el editor de tu preferencia.

snx# vi /etc/fsatab

En este ejemplo activaremos quotas para la partición /dev/sda3 agregando despues de default "usrquota" para implementar quotas a los usuarios y "grpquota" para activar quotas por grupos, se pueden usar ambas o una de ellas solamente.

/dev/sda3/ /home ext3 defaults,usrquota,grpquota 0 2

Luego hay que activar la partición:

snx# mount -o remount,usrquota,grpquota /home (recomendable reiniciar de ser posible)

2.- Se deben crear 2 archivos en la partición que queremos colocarle quotas, en el caso del ejemplo es /home

snx# touch /home/aquota.user /home/aquota.group

3.- Ahora le daremos permiso SOLO a root para estos archivos

snx# chmod 600 /home/aquota.user /home/aquota.group

4.- Instalación de quota y quotatool:

snx# aptitude install quota quotatool

5.- Activamos las cuotas:

quotacheck -vagumf

6.- Probamos las cuotas activándola a un usuario:

(Usuario="usuario", Quota=10MB)

quotatool -u usuario -bq 10M -l '10M Mb' /home

7.- Checar las cuotas asignadas

snx# repquota -vs /home

8.- Ahora como usuario probaremos que funcione:

snx# su usuario
snx# cd /home/usuario (la carpeta del Usuario)

Crearemos un archivo llamado borrame.img de 10MB, para ello usamos dd

snx# dd if=/dev/zero of=borrame.img bs=1M count=10

Si la carpeta está vacía creará el archivo, ya que no excede la cuota, de lo contrario dará error por exceso de quota.

Si no da error volver a ejecutar dd cambiando el nombre del archivo borrane.img para crear uno nuevo, esto hará que se trate de crear un nuevo archivo de 10MB el cual no se permitirá, o en su defecto lo crea con 0 Bytes

9.- Si queremos eliminar la quota del Usuario "usuario" sencillamente le colocamos 0 a sus quotas

snx# quotatool -u usuario -bq 0M -l '0 Mb' /home

Nota: Las comillas de '0 Mb' son comillas simples.

Enjoy

lunes, 11 de agosto de 2008

Convertir AWR a JPG en Debian

Me enviaron unas fotos en formato AWR de Sony, las cuales obviamente no podía ver, así que buscando en Internet conseguí un script que facilita el proceso de usar imagemagick y dcraw, así que lo comparto. Obviamente debemos tener instalado los dos paquetes que necesitamos, sino, a instalarlos con aptitude ;) (que fácil es en Debian)

#aptitude install imagemagick dcraw

El script original se llama raw2jpg.sh, así que se quedará con ese mismo nombre, aunque podrían colocarle el formato Sony awr, da lo mismo.

El Script Original y los datos de su autor....

#raw2jpg.sh april 2008
#Converts .raw files to .jpg
#Must be installed dcraw and convert utilities before run this program.
#Jorge Muñoz Rodenas Albacete (Spain)
#bash script licensed under GPL v3.0

echo Step 1 of 3: .arw to .ppm conversion, wait...
for file in *.ARW; do
dcraw $file
done

echo Step 2 of 3: .ppm to .jpg conversion, wait...
for file in *.ppm ; do
convert $file ${file/.ppm/%d.jpg}
done

echo Step 3 of 3: Deleting .ppm files, wait...
rm *.ppm
echo done!


Luego podemos ejecutar el script en el directorio donde están las fotos.

pc:/home/pepito/los-awr$ ./raw2jpg.sh

Luego esperar a que convierta las fotos y despues a disfrutarlas :D

Saludos

lunes, 23 de junio de 2008

Debian+Ldap+GOsa+Samba+pam PDC

Paquetes:
# aptitude install rsync perl screen less make gcc locales-all
# aptitude install slapd ldap-utils db4.4-util
# aptitude install apache2 php5 php5-imagick php5-imap php5-pgsql
# aptitude install php5-ldap php5-mysql libapache-mod-php5 php5-common
# aptitude install php5-tidy php5-xmlrpc php5-xls php5-snmp
# aptitude install gosa gosa-schema
# aptitude install smbldap-tools
# aptitude install samba samba-doc
# aptitude install libnss-ldap
# aptitude install libpam-ldap
# aptitude install nscd

### groups.ldif #####################
dn: ou=groups,dc=rodria,dc=com,dc=ve
ou: groups
objectClass: organizationalUnit
objectClass: top
objectClass: gosaObject
gosaSubtreeACL: :all
#####################################

### people.ldif #####################
dn: ou=people,dc=rodria,dc=com,dc=ve
ou: people
objectClass: organizationalUnit
objectClass: top
objectClass: gosaObject
gosaSubtreeACL: :all
#####################################

### machines.ldif ###################
dn: ou=machines,dc=rodria,dc=com,dc=ve
objectClass: organizationalUnit
objectClass: top
objectClass: gosaObject
gosaSubtreeACL: :all
ou: machines
#####################################



Debian+Ldap+GoSA+Samba
Luego de darme algunos golpes con GoSA y LDAP decidí colocar esta receta para ayudar a otros que posiblemente tengan algunos problemitas.

Lo primero es acotar que he usado PHP5 en lugar de usar PHP4 que es el que instala por defecto GoSA.

Los primeros pasos como en todo debian es asegurarse de tener la lista de paquetes actualizada, como esto lo he hecho sobre una máquina virtual en xen y _solo_ tiene el sistema base instalado debo instalar algunos paquetes necesarios y otros que me gusta usar, como rsync y screen por ejemplo ;).

# aptitude update
# aptitude dist-upgrade
# aptitude install rsync perl screen less make gcc locales-all

Ahora los paquetes para el ldap

# aptitude install slapd ldap-utils db4.4-util

Preguntas de SLAPD
* Contraseñe Administrador: 123456
* Verificación Contraseña: 123456

Luego debemos reconfigurar ldap para asegurarnos de que nuestro dominio esté configurado como queremos.

# dpkg-reconfigure slapd

* ¿Desea omitir la configuración del servidor OpenLDAP?: No
* Introduzca su nombre de dominio DNS: rodria.com.ve
* Introduzca el nombre de su organización: Raul Odria Corp.
* Contraseña del administrador: 123456
* Motor de base de datos a utilizar: BDB
* ¿Desea que se borre la base de datos cuando se purgue el paquete slapd? : No
* ¿Desea mover la base de datos antigua? Si
* ¿Permitir el protocolo LDAPv2? Si

# aptitude install apache2 php5 php5-imagick php5-imap php5-pgsql

** Configuring libc-client2002edebian
* Continue installing libc-client without Maildir support? Si

# aptitude install php5-ldap php5-mysql libapache-mod-php5 php5-common
# aptitude install php5-tidy php5-xmlrpc php5-xls php5-snmp

Instalación de GOSA

# aptitude install gosa gosa-schema

Iniciamos ldap y todo debería de funcionar bien

# /etc/init.d/slapd start

Editamos /etc/php5/apache2/php.ini

# nano /etc/php5/apache2/php.ini

Cambiamos memory_limit = 16M por memory_limit = 64M
session.gc_maxlifetime = 86400


Luego copiamos los esquemas que usaremos para gosa

# cp /usr/share/doc/gosa/contrib/openldap/samba3.schema.gz /etc/ldap/schema/
# cp /usr/share/doc/gosa/contrib/openldap/trust.schema /etc/ldap/schema/

# cd /etc/ldap/schema/
# gunzip samba3.schema.gz

# nano /etc/ldap/slapd.conf

Agregar lo siguiente: (los 4 primeros include ya los tendrán, son colocados como referencia para que sepan el orden en que van)

==================================================
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

#Esquemas de GoSA
include /etc/ldap/schema/samba3.schema
include /etc/ldap/schema/trust.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/gofon.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gosa+samba3.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/goto-mime.schema

schemacheck on
password-hash {MD5}

==================================================

Ahora nos falta agregar los ldiff que necesitará GoSA, si usamos ldapadd debemos primero detener slapd

# /etc/init.d/slapd stop

# slapadd -l people.ldif
# slapadd -l machines.ldif
# slapadd -l groups.ldif

# /etc/init.d/slapd start


Ahora Configuraremos GoSA

http://ip_server/gosa/setup.php

Relativamente esto es sencillo, solo hay que hacer unos ajustes simples y todo debe funcionar.
Las dos primeras pantallas son para verificar si nos falta algún módulo que querramos tener, si hace falta alguno, agregarlos. Luego en las siguientes solo hay que agregar lo siguiente:

1.- cambiar [Example] por el Nombre de su Empresa por ejemplo: RO Corp.
2.- luego nos pide el dn y la clave del usuario ldap, que según este ejemplo sería así:
DN: cn=admin, dc=midominio, dc=com, dc=ve
--- "admin" es el nombre que usé para el login del usuarios administrador del LDAP
Passwd: 123456
--- "123456" es la clave que usé para el login del usuarios administrador del LDAP
Este login y clave es el que configuraron cuando reconfiguraron slapd

3.- Base: dc=midominio, dc=com, dc=ve

teóricamente no deben modificar más nada, deben tener en cuenta que al darle check el único error que debe arrojar es que aun no se ha creado un usuario y clave para el administrador de GoSA, así que omitir el error y crear el usuario y clave del admin gosa en la pantalla que corresponde.

Luego les aparecerá una pantalla para generar el gosa.conf, generen este archivo y creen un archivo en el servidor y copien todo de este, o sencillamente copien el archivo en el server gosa en la ruta siguiente:

/etc/gosa/gosa.conf

luego debemos cambiarle los permisos:

# chown root.www-data /etc/gosa/gosa.conf
# chmod 640 /etc/gosa/gosa.conf


Instalando Samba....

# aptitude install smbldap-tools
# aptitude install samba samba-doc


Nombre del dominio o del grupo de trabajo: midominio.com.ve
¿Modificar smb.conf para usar la configuración WINS que proviene de DHCP? No


CREACION DE CARPETAS PARA SAMBA
#mkdir /home/samba/
#mkdir /home/samba/netlogon
#mkdir /home/samba/profiles


INSTALACION DE MKNTPWD
$ cd /opt/
$ wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz
$ tar -zxf mkntpwd.tar.gz
$ cd mkntpwd
$ make
$ cp mkntpwd /usr/local/bin
VERIFICAR
#mkntpwd
Usage: mkntpwd [-L lanmgrpwd] [-N ntpasswd]
mkntpwd password
mkntpwd -f [-] [filename]

-L lanmgrpasswd LanManager cleartextpwd <= 14 chars
-N ntpasswd NT cleartextpwd <=128 chars (usually <=14)

with both options present the encrypted LanManager-Pwd is
printed first, followed by a ‘:’ and the encrypted NT-Pwd.

The second usage behaves like mkntpwd -L pwd -N pwd

The third usage reads the password from STDIN or a File. Printout
is the same as second.

anton@genua.de


CONFIGURACIÓN DE SAMBA
# cd /etc/samba
# cp smb.conf smb.conf.bkp
# vi smb.conf

EL ARCHIVO QUEDARA DE LA SIGUIENTE FORMA:

=========================================================================
# /etc/samba/smb.conf
# archivo de configuracion de samba
[global]
# configuracion basica del servidor
workgroup = RODRIA
netbios name = pdc
server string = Samba PDC Version %v
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
# configuracion para que la maquina sea el PDC master
os level = 65
preferred master = yes
local master = yes
domain master = yes
domain logons = yes
# configuracion de seguridad y conexion
security = user
guest ok = no
encrypt passwords = yes
null passwords = no
# hosts allow es para que solo permita las maquinas de la LAN (192.168.0.x)
hosts allow = 127.0.0.1 192.168.100.0/255.255.255.0
wins support = yes
name resolve order = wins lmhosts host bcast

dns proxy = no
# otras configuraciones varias para SAMBA
log file = /var/log/samba/log.%m
log level = 2
max log size = 50
hide unreadable = yes
hide dot files = yes
# parametros para el soporte de LDAP
passdb backend = ldapsam:ldap://127.0.0.1
ldap suffix = dc=rodria,dc=com,dc=ve
ldap machine suffix = ou=machines
ldap user suffix = ou=people
ldap group suffix = ou=groups
ldap admin dn = cn=admin,dc=rodria,dc=com,dc=ve
ldap delete dn = no
enable privileges = yes
# para permitir a los usuarios cambiar su clave desde Windows
ldap password sync = yes
# perfiles moviles de usuario, carpeta home y script de inicio
logon home = \\%L\%U\.profile
logon drive = H:
logon path = \\%L\profiles\%U
logon script = netlogon.bat OR %U.bat
# script para automatizar la adicion de cuentas de maquinas
# al arbol LDAP cuando estas se unan por primera vez al dominio
add machine script = /usr/sbin/smbldap-useradd -w "%u"
unix charset = ISO8859-1

#=== Recursos SAMBA ===
# ruta en donde se alojaran el(los) script(s) de inicio
[netlogon]
path = /home/samba/netlogon
guest ok = no
read only = yes
browseable = no
# carpetas home de los usuarios
[homes]
path = /home/%U
comment = Carpetas HOME
root preexec = /etc/samba/mk_sambadir “/home/%u” “%u” “%g”
browseable = no
writeable = yes
valid users = %S
read only = no
guest ok = no
inherit permissions = yes
# carpeta en donde se guardan los perfiles de los usuarios
[profiles]
path = /home/samba/profiles
writeable = yes
browseable = no
default case = lower
preserve case = no
short preserve case = no
case sensitive = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
create mask = 0600
directory mask = 0700
csc policy = disable

=======================================================================

PROBAR LA CONFIGURACIÓN
#testparm

Load smb config files from /etc/samba/smb.conf
Processing section “[netlogon]”
Processing section “[homes]”
Processing section “[profiles]”
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions


LE DAMOS A CONTRASEÑA DE LDAP A SAMBA
#smbpasswd -w 123456

REINICIAR SAMBA
# /etc/init.d/samba restart


VOLVER A PHPLDAPADMIN Y VERIFICAR LA ENTRADA
sambaDomainName=RODRIA
IDENTIFICAR EL SID DEL DOMINIO ejem :
S-1-5-21-2893205429-3405179508-402743511
CREACIÓN DE GRUPOS DE DOMINIO
DENTRO DE PHPLDAPADMIN EN CONTENEDOR “groups” ELEGIR CREAR “New
Samba3 Group Mapping” Y CREAR LOS SIGUIENTES GRUPOS:

Group: Windows Name: Gid: samba sid:
sambaadmins Domain Admins 20000 512
sambausers Domain Users 20001 513
sambaguests Domain Guests 20002 514
sambamachines Domain Computers 20003 515



INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP
INSTALACIÓN NSS LDAP

#aptitude install libnss-ldap

#dpkg-reconfigure libnss-ldap

Servidor LDAP : 127.0.0.1
Nombre distintivo (DN) : dc=rodria,dc=com,dc=ve
Vercion de LDAP a utilizar : 3
Hace falta un usuario para acceder a la base de datos ldap : No
Dar privilegios especiales de ldap para root : SI
Desea hacer que la configuracion solo pueda leer o escribir el propietario : SI
Cuenta ldap para root : cn=admin,dc=rodria,dc=com,dc=ve
contraseña ldap para root : 123456


CONFIGURACION
#vi /etc/nsswitch.conf

Estas líneas deberán quedar de la siguiente manera:

passwd: compat ldap
group: compat ldap
shadow: compat ldap


COMPROBAR
# getent group

DEBE MOSTRAR
sambaadmins:*:20000:
sambausers:*:20001:
sambaguests:*:20002:
sambamachines:*:20003:


INSTALACION PAM LDAP

# aptitude install libpam-ldap
# dpkg-reconfigure libpam-ldap

Servidor ldap : 127.0.0.1
Nombre distintivo : dc=rodria,dc=com,dc=ve
Vercion de ldap : 3
Make local root Database admin : si
Hace falta un usuario para la base de datos LDAP : no
Ldap account for root : cn=admin,dc=rodria,dc=com,dc=ve
contraseña para la cuenta ldap de root : 123456
Local crypt to use when changing passwords : md5

# vi /etc/pam.d/common-account


COMENTAR
account required pam_unix.so

Y AGREGAR
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass

#vi /etc/pam.d/common-auth

COMENTAR
auth required pam_unix.so nullok_secure

Y AGREGAR
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass

# vi /etc/pam.d/common-password
COMENTAR
password required pam_unix.so nullok obscure min=4 max=8 md5

Y AGREGAR AL FINAL
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass


INSTALACION DE NSCD
# aptitude install nscd


REINICIAR SAMBA
/etc/init.d/samba restart

####################################################################################
AGREGAR USUARIOS
En la “UO” users crear un nuevo “Samba3 Account” se creara el usuario
“administrator” que tendra permisos para ingresar maquinas al dominio
y otro usuario “rodria” que pertenecera al grupo adminstradores y otro llamado
“usuario” que solo será un usuario de dominio , esto se hará de la siguiente
forma :

Fist Name : Administrador
Last Name : Global
Comon Name : Administrador
User ID : administrador
UID Number : 0
Samba SID : 512
Password : 123456
Verify Password : 123456
Gid number : sambaadmins
Primary Group ID : sambaadmins
Home Directory : /home/administrador

Fist Name : Raul
Last Name : Odria
Comon Name : Raul Odria
User ID : rodria
UID Number : 10000
Samba SID : 512
Password : 123456
Verify Password : 123456
Gid number : sambaadmins
Primary Group ID : sambaadmins
Home Directory : /home/rodria

Fist Name : Pedro
Last Name : Perez
Comon Name : Pedro Perez
User ID : pperez
UID Number : 10001
Samba SID : 513
Password : 123456
Verify Password : 123456
Gid number : sambausers
Primary Group ID : sambausers
Home Directory : /home/sebastian


VERIFICAR LA CREACIÓN DE USUARIOS EN LINUX
# getent passwd
administrador:*:0:20000:Administrador:/home/administrador:
rodria:*:10000:20000:Raul Odria:/home/rodria:
pperez:*:10001:20001:Pedro Perez:/home/pperez:

CREACION DE HOME
# mkdir /home/rodria
# cp /etc/skel/.* /home/rodria/
# chown -R rodria /home/rodria
# chgrp -R sambaadmins /home/rodria

# mkdir /home/pperez
# cp /etc/skel/.* /home/pperez
# chown -R pperez /home/pperez
# chgrp -R sambausers /home/pperez


AUTOMATIZANDO INGRESO DE CUENTAS MAQUINA A LDAP
# cd /usr/share/doc/smbldap-tools/examples
# cp smbldap.conf.gz smbldap_bind.conf /etc/smbldap-tools
# cd /etc/smbldap-tools
# gunzip smbldap.conf.gz
# chown root:root *
# chmod 600 *

HAY QUE EDITAR 2 ARCHIVOS

#vi /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=rodria,dc=com,dc=ve"
slavePw="123456"
masterDN="cn=admin,dc=rodria,dc=com,dc=ve"
masterPw="123456"
smbldap.conf

#vi /etc/smbldap-tools/smbldap.conf

SID="S-1-5-21-2893205429-3405179508-402743511"
sambaDomain="RODRIA"

slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify="none"
cafile=""
clientcert=""
clientkey=""
suffix="dc=rodria,dc=com,dc=ve"
usersdn="ou=people,${suffix}"
computersdn="ou=machines,${suffix}"
groupsdn="ou=groups,${suffix}"
groups
sambaUnixIdPooldn="sambaDomainName=RODRIA,${suffix}"
scope="sub"
hash_encrypt="MD5"
crypt_salt_format="%s"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="20003"
skeletonDir="/etc/skel"
userSmbHome=""
userProfile=""
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="rodria.com.ve"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"



POR ULTIMO
# cp smbldap_bind.conf /etc/
# cp smbldap.conf /etc/

AGREGANDO OBJECTCLASS

Tenemos que ir al phpldapadmin vamos a agragar el atributo SAMBAUNIXIDPOOL para el dominio samba
nos ubicamos en sambaDomainName=RODRIA
En la etiqueta objectClass agragamos un nuevo valor "add value" Seleccionamos SAMBAUNIXIDPOOL
En la Siguiente ventana colocaremos:
GID: 20003 Corresponde al Grupo sambamachines
UID: 30000 Número inicial que usaremos para las cuentas de máquinas
Una vez hecho esto, ya podemos registrar nuestras máquinas win$ el dominio

ANEXO 1
CREACIÓN DE HOMES POR DEFECTO

Crear el archivo /etc/samba/mk_sambadir con lo siguiente:

#!/bin/bash
if [ ! -d $1 ]
then
mkdir $1
fi
chmod 770 $1 -R
chown $2 $1 -R
chgrp $3 $1 -R

###############

Luego REINICIAR SAMBA

# /etc/init.d/samba restart


ANEXO2

PRUEBA 1

PODER VALIDAR POR SSH AL PDC, SI BIEN ES CIERTO LOS USUARIOS DEL DOMINIO
NO TIENEN SHELL DEBERIA SER POSIBLE HACER UN INICIO VIA SSH
#ssh -l administrador 192.168.100.5
#ssh -l rodria 192.168.100.5

PRUEBA 2
PODER VALIDAR DESDE UN WIN$ AUN ASI NO SE HALLA UNIDO AL DOMINIO, SIN
PERTENECER AL DOMINIO DEBERÍA PODER VALIDAR COMO UN SIMPLE SERVER DE
ARCHIVOS
\\pdc\rodria


Para Registrar máquinas con Windows XP se debe crear/modificar la siguiente etiqueta de registro usando regedit

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000

Si nos sale este error al tratar de meter el equipo al dominio:
"Las conexiones múltiples para un servidor o recurso compartido compatible por el musmo usuario, usando más de un nombre de usuario, no están permitidas. Desconecte todas las conexiones anteriores al servidor o recursos compartidos y vuelva a intentarlo de nuevo."
Debemos correr esto en una consola DOS:
net use * /d /y