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

lunes, 16 de junio de 2008

Debian Etch+Xen

El mundo de la virtualización es increible cuando quieres hacer laboratorios y cuando requieres hacer Deployment de Servidores a unas velocidades antes inimaginables, es por eso que he elaborado este pequeño manual para que puedan incluirse en este excelente mundo "virtual" :)

Instalar Debian, Preferiblemente con la imagen Etch Bussines Card

Realizamos nuestra instalación básica, instalamos el sistema base, configuramos todo, y NO seleccionamos ningún paquete de instalación... Ni entorno Gráfico, ni sistema Base; dejamos la instalación mínima que nos hará el bussines Card... Recuerden usar un Mirror Local para hacer esto más rápido.

Seleccionamos el kernel linux-kernel-2.6-686
Seleccionamos Grub como gestor de arranque preferiblemente y listo... a reiniciar.

Luego de reiniciar procedemos a instalar los paquetes:

# aptitude install xen-linux-system-2.6.18-4-xen-686
# aptitude install ssh rsync xen-tools locales

Editar Grub, y colocar en esta línea "dom0_men"= "cantidad de RAM para el servidor Xen"
ejemplo para asignarle solo 256MB de RAM al Dom0:

kernel /boot/xen-3.0.3-1-i386-pae.gz dom0_mem=256M

Xen por defecto solo viene para poder crear 4 máquinas virtuales, pero no es propiamente Xen, sino /dev/loop que originalmente viene por defecto para 8 /dev/loop0 ... loop7 pero si requerimos más de 4 máquinas virtuales vamos a tener que crear más loops.

Una forma de hacerlo es que se lo pasemos como parámetro al kernel en Grub.

agregándole esto en la línea del kernel: max_loop=128 en nuestro ejemplo sería algo como:

kernel /boot/xen-3.0.3-1-i386-pae.gz dom0_mem=256M max_loop=128

Para configurar las interfaces:

Editar /etc/xen/xend-config.sxp

Solo dejar las siguientes líneas activas:

Debemos tener solo activado estas lineas:

1.- (network-script network-bridge)
2.- (vif-script vif-bridge)
3.- (dom0-min-mem 196)
4.- (dom0-cpus 0)

En mi caso puse esta porque mi etXh por default es la 2, entonces reemplazo (1.-) por esta:
(network-script 'network-bridge netdev=eth2')

Con esto ya tenemos configurado nuestro Dom0.

Para crear lás máquinas virtuales podemos editar /etc/xen-tools/xen-tools.conf y adaptar una instalación por defecto.

Ejemplo:

****************************************************
## Este es el directorio donde se guardarán los discos de las máquinas virtuales
## Puede ser /home/xen en mi caso /xen
dir = /xen
## Uso el método debootstrap para las instalaciones
debootstrap = 1
## Capacidad del tamaño de disco por defecto:
size = 10Gb
## Tamaño de la memoria por defecto:
memory = 128Mb
## Tamaño del Swap por defecto:
swap = 512Mb
## Sistemas de Archivos a usar por defecto
fs = ext3
## Distribución en este caso de linux a usar por defecto:
dist = etch
#Seleccionamos entre Images full disk o sparse
image = sparse

## Red... Colocamos el Gateway por defecto, y el netmask ... en mi caso....
## ya que las direcciones IP las coloco al momento de crear la máquina virtual
## como se explicará más adelante:
gateway = 192.168.100.1
netmask = 255.255.255.0

## Esto es para que nos pida el passwd del root cuando termine de instalar la VM
passwd = 1

#Kernel a usar
kernel = /boot/vmlinuz-2.6.18-6-xen-686
initrd = /boot/initrd.img-2.6.18-6-xen-686

## Arquitectura
arch=i386
## Dirección del Mirror en el caso de debian, yo uso uno local
mirror = http://192.168.100.10/debian/
## Boot me permite iniciar la VM una ves creada.
boot = 1

****************************************************
Hasta aca el archivo por defecto....

Ejemplo para crear una máquina virtual, obviamente usando xen-tool, y voy a colocar como ejemplo algunos parámetros que voy a modificar en "caliente" sin afectar el archivo de configuración de xen tool.

# xen-create-image --hostname=correo --ip=192.168.100.5 --size=4G --memory=512 --swap=512

Luego:

# xm console correo.cfg

y ya estamos en nuestro servidor llamado correo.

Pronto más tips...

Saludos

lunes, 9 de junio de 2008

Debian+Ldap+GoSA

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

Ahora los paquetes para el ldap

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

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

# dpkg-reconfigure slapd

# 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

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

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, podemos usar ldapadd

# /etc/init.d/slapd stop

pueden crear los archivos ldiff como siguen:

=============== groups.ldif ================
dn: ou=groups,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: groups
#FIN

=============== people.ldif ================
dn: ou=people,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: people
#FIN

============= machines.ldif =================
dn: ou=machines,dc=midominio,dc=com,dc=ve
objectClass: organizationalUnit
ou: machines
#FIN

nótese que en el dn de cada ldif los dc pertenecen al dominio que configuramos al hacer
dpkg-recongfigure slapd, en este ejemplo el dominio es: midominio.com.ve, podemos probar el nombre del dominio con:

# slapcat

Agregamos los ldiff ue acabamos de crear con "vi" o "nano"

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

# /etc/init.d/slapd start

Si deciden hacerlo con phpldapadmin:

#aptitude install phpldapadmin

luego desde el firefox/iceweasel

http://ip_del_server/phpldapadmin

la versión que instalé no se si tenga o no un error, pero cuando accedía a mi cuenta de ldap me aparecía dc=nodomain estándo autenticado con mi cn y dc respectivos, entonces comenté una línea que me corrigó el error en el archivo config.php del phpldapadmin.

# nano /etc/phpldapadmin/config.php

$ldapservers->SetValue($i,'server','base',array('dc=nodomain'));

la cambié por:

//$ldapservers->SetValue($i,'server','base',array('dc=nodomain'));

y volví a ingresar al phpldapadmin desde el browser y todo funcionó bien. Ya luego ahí cree los OU respectivos que va usar GoSA, que son "groups" y "people".

Una vez que ya hayamos creado los OU de cualquiera de las dos maneras explicadas, pasamos a configurar GoSA.

desde el Browser:

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, 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

Esto es todo, aunque hay algunos tunnig que faltan, pero con esto ya podrán trabajar ;)

Saludos.

miércoles, 4 de junio de 2008

EVDO CDU-680 Movilnet y Debian

Existen muchas alternativas para conectarse con los dispositivos EVDO de Movilnet, específicamente el modelo de Cmotech CDU-680, que a su ves es un dispositivo de almacenamiento donde trae los "drivers" para conectarse con Ubuntu/Guindos pero que para otras distros no funciona.

Aquí les dejo una menera super fácil de configurar estos dispositivos, lo explicaré con Debian, pero debe funcionar para cualquier distro.

# aptitude install wvdial pppconfig

estos son los programas que usaremos para la conexión.

en pppconfig seleccionaremos lo siguiente:

Create a Connection:
Provider Name: aba
Configure Name Servers: dynamic
Authentication Method: PAP
User Name: 1234567@cantv.net ## 1234567=numero movilnet sin el 0416
Password: 12345 ##clave del usuario movilnet (EVDO)
Speed: 115200
Pulse or Tone: Tone
Phone Numbre: #777
Mode Com Port: /dev/ttyACM0

Con esto hemos terminado de configurar el archivo de configuración que se encontrará en:

/etc/ppp/peers/aba

Será algo como esto:
-------------------------------------------------------------------------------
# This optionfile was generated by pppconfig 2.3.18.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/aba"
debug
/dev/ttyACM0
115200
defaultroute
noipdefault
user "1234567@cantv.net"
remotename aba
nodeflate
nobsdcomp
ipparam aba
persist
--------------------------------------------------------------------------
Claro, que este del ejemplo tiene otros parámetros que debemos agregar, como por ejemplo "nodeflate" "nobsdcomp" y "persist"

con esto hemos terminado la parte "difícil"

Lo segundo es escribir:

#pon aba

y a navegar... pero esto no es todo, hay algo que debemos ejecutar para que active el "modem" en ttyACM0, para ello debemos ejecutar un archivo que viene dentro del Cmotech en el directorio linux... este es itfchg, aunque podemos copiarlo en /usr/bin para no tener que usarlo desde el Cmotech.

Si lo tenemos en /usr/bin solo tendremos que escribir:

# itfchg /dev/sdX

Donde X es la letra donde ha reconocido el Cmotech USB, generalmente es "a" sin embargo, si tenemos algún pendrive colocado o un disco usb posiblemente lo reconozca como sdb sdc sdd, o si tenemos por ejemplo disco sata, lo más seguro es que no lo monte como sda, que sería el disco principal sata. así que podrían hacer un dmesg para verificar en que dispositivo lo ha reconocido... supongamos que es en /dev/sda haríamos lo siguiente:

# itfchg /dev/sda

con esto ya quedaría activo ttyACM0 y con tan solo escribir luego

# pon aba y esperar a que sincronice el dispositivo, ya estaríamos navegando.

para terminar la conexión basta con esxribir:

# poff aba

eso es todo, sin muchos dolores de cabeza ;)

Saludos.