Archivo

Entradas Etiquetadas ‘debian’

Xen + Debian Etch HOWTO

miércoles, 4 de junio de 2008 2 comentarios

Para los que están interesados en usar Xen, aquí les dejo el documento de como tener un servidor Xen de una forma sencilla usando Debian, lo único que necesitan es que el Dom0 (el Hipervisor, la máquina que va a hospedar los servidores virtuales) tenga 196Mb Ram y los DomU (los servidores virtualizados) por lo menos 128Mb ram. Voy a suponer de una vez que tienen un LVGroup llamado “data”.

Tener el sistema en el último upgrade de Debian.

aptitude dist-upgrade

Instalar el Hipervisor y las herramientas Debian de Xen (Modificar la versión del kernel por la última disponible).

aptitude install xen-hypervisor-3.0.3-1-i386-pae xen-linux-system-2.6.18-6-xen-686 xen-tools xen-utils

Instalar los módulos de bridge

aptitude install bridge-utils

Reiniciar la máquina en este punto. Al reiniciar asegurarse que esté booteando con el kernel de Xen.

Configurar los bridges (poner los IPs de su red que vayan a usar y que tengan IPs libres):

vi /etc/network/interfacesauto lo

iface lo inet loopback

allow-hotplug eth0

auto eth0

auto br-xen

iface br-xen inet static

address 10.1.0.5

netmask 255.255.255.0

gateway 10.1.0.2

bridge_ports eth0

bridge_maxwait 0

Configurar Xen

vi /etc/xen/xend-config.sxp

#habilitar lo siguiente

(xend-unix-server yes)

(network-script network-bridge)

(network-script network-dummy)

(vif-script vif-bridge)

(dom0-min-mem 196)

(dom0-cpus 0)

Configurar xen-tools

vi /etc/xen-tools/xen-tools.conf

#Modificar a la necesidad.

lvm = data #Este es el VolumeGroup

debootstrap = 1

size   = 15952Mb      # Tamaño en disco del DomU poner lo que se requiera.

memory = 256Mb    # Memory size

swap   = 2048Mb    # Swap size

fs     = ext3     # FS en ext3.

dist   = etch    # Distribución a instalar.

image  = sparse   # sparse vs. full disk images.

gateway = 10.1.0.2 #Poner el gateway que les corresponde

netmask = 255.255.255.0

passwd = 1

kernel = /boot/vmlinuz-2.6.18-6-xen-686 #Verificar que este sea el kernel

initrd = /boot/initrd.img-2.6.18-6-xen-686 #Verificar que este sea el initrd

arch=i386

mirror = http://ftp.us.debian.org/debian/ #Podria ser http://debian.velug.org.ve/debian/ si están en Venezuela

Correr el comando de xen-tools de la siguiente manera:

xen-create-image --hostname=ejemplodomU --ip=10.1.0.6 --verbose --force

Al Terminar levantar el servidor domU:

xm create /etc/xen/ejemplodomU.cfg -c

Para salir de la consola virtual usar el comando ^] (Ctrl+])

Se puede hacer que los dominios se inicien automáticamente cuando arranca el dom0 y para que guarde los estados cuando baje.
Para esto Editar el archivo /etc/default/xendomains el /var tiene que contener minimo el tamaño de la memoria total de los domU + 10%

mkdir /var/lib/xen

mkdir /var/lib/xen/save

mkdir /etc/xen/auto

mv /etc/xen/ejemplodomU.cfg /etc/xen/save/

Configuración post instalación:

xm console coromoto

#entrar en el sistema como root

aptitude install locales

dpkg-reconfigure locales

dpkg-reconfigure tzdata

ssh-keygen

#Guardar los key en /etc/ssh/ssh_host_rsa_key

ssh-keygen -t dsa

#Guardar los key dsa en /etc/ssh/ssh_host_dsa_key

Esto debe ser mas que suficiente para tener un dom0 con un domU, para crear otro domU solo tienen que cambiar el hostname en xen-create-image y listo, pueden crear cuantos quieran siempre y cuando les alcance la memoria 🙂

Categories: *nix Tags: ,

PAM con LDAP Debian Etch

martes, 3 de junio de 2008 2 comentarios

Esto es algo viejo, pero ya me lo han pedido varias veces, asi que aqui les publico mis tips.

Verificar si se tiene instalado el paquete openldap-utils.

Verificar si se tiene instalado el paquete libnss-ldap

Verificar si se tiene instalado el paquete libpam-ldap

Verificar si se tiene instalado el paquete nscd

Configurar /etc/ldap/ldap.conf para facilitar las busquedas.

 BASE dc=ejemplo, dc=com

 URI  ldap://ldap.ejemplo.com
 # El URI podria ser un IP, y se recomienda usar el IP al menos que se tenga un buen servicio de DNS.

Configurar /etc/libnss-ldap.conf

uri ldap://ldap.ejemplo.com

base dc=ejemplo,dc=com

ldap_version 3

rootbinddn cn=admin,dc=ejemplo,dc=com
# El URI podria ser un IP, y se recomienda usar el IP al menos que se tenga un buen servicio de DNS.
# Se podria configurar un usuario en el ldap para el nsswitch para hacer solo busquedas.

Hacer lo mismo con el archivo /etc/pam_ldap.conf

Poner el password del admin de ldap en: /etc/libnss-ldap.secret

Respaldar el archivo /etc/nsswitch.conf

cp /etc/nsswitch.conf /etc/nsswitch.conf.old

Configurar /etc/nsswitch.conf

passwd:         files ldap

group:          files ldap

hosts:          dns ldap

services:   ldap [NOTFOUND=return] files

networks:   ldap [NOTFOUND=return] files

protocols:  ldap [NOTFOUND=return] files

rpc:        ldap [NOTFOUND=return] files

ethers:     ldap [NOTFOUND=return] files

netmasks:   files

bootparams: files

publickey:  files

automount:  files

aliases:    files

sendmailvars:   files

netgroup:   ldap [NOTFOUND=return] files

Editar /etc/pam.d/common-auth

 auth sufficient pam_ldap.so

 auth required   pam_unix.so use_first_pass

Editar /etc/pam.d/common-session

 session sufficient pam_ldap.so

 session required   pam_unix.so

Editar /etc/pam.d/common-account

 account sufficient pam_ldap.so

 account required   pam_unix.so

Reiniciar los servicios que usan PAM, por ejemplo:

 /etc/init.d/ssh restart

*POSIBLES FALLAS*
Revisar el archivo /var/log/auth para monitorear las conexiones, si fallan las credenciales revisar nscd y que los passwords esten en MD5
Reiniciar nscd cada vez que se haga un cambio grande

 /etc/init.d/nscd restart

Verificar que el uri sea: uri ldap://ldap.ejemplo.com en pam_ldap.conf y en libnss-ldap.conf o en su defecto el ip (192.168.1.1 por ejemplo).

Correr tshark para ver las trazas de conexion:

 tshark -i any port 389 -w ldap.archivo

 tshark -r ldap.txt -V
Categories: *nix Tags: ,

Debian Etch + LDAP + SSL + GoSA

martes, 16 de octubre de 2007 5 comentarios

Aquí les dejo una pequeña chuleta de como instalar LDAP + SSL + GoSA desde 0 en un Debian Etch recien instalado. Muchas veces me ha tocado hacerlo y siempre repito el mismo proceso, por lo que ahora puedo compartir mi experiencia.

Instalar paquetes:

Instalar estos paquetes y configurar.
slapd
ldap-utils
db4.2-util
openssl

(Puedes usar dpkg-reconfigure -plow slapd si deseas reconfigurar el slapd con otros valores)

Instalar estos paquetes y Configurar
apache2
php5
php5-imagick
php5-common
php5-gd
php5-ldap
php5-mhash
php5-cli
php5-recode
php5-imap*
php5-mysql*
php5-odbc
php5-pgsql*
php5-ps*
php5-sqlite
php5-tidy*
php5-xmlrpc*
php5-xls*

* = Opcionales (Los instalo por que los necesito para otras cosas).

Instalar (Si no está bien instalado el PHP5 con sus módulos, GoSA tratará de instalar PHP4, esto no debería de pasar).
gosa
gosa-schema

Pasamos a Crear la CA (si se necesita) y a crear un certificado para luego firmarlo y darselo a nuestro servidor OpenLDAP para de esta forma se use cifrado de datos SSL (Para los servicios).

Creamos la CA,

servidor:/usr/lib/ssl/misc# ./CA.sh -newca

Movemos a un directorio mas conveniente,

servidor:/usr/lib/ssl/misc# mv demoCA/ /etc/servidorCA

Ahora modificamos el fichero /usr/lib/ssl/openssl.cnf de manera que todo se haga con nuestra CA
[ CA_default ]

#dir = ./demoCA # Where everything is kept
dir = /etc/servidorCA

Creamos los certificados,

servidor:/etc/servidorCA# openssl req -newkey rsa:1024 -nodes -keyout newreq.pem -out newreq.pem

Firmamos el certificado,

/usr/lib/ssl/misc/CA.sh -sign

(FIRMAR EL CERTIFICADO CON LA CLAVE QUE SE USO)

Con esto las claves ya estarán firmadas, ahora debemos crear un directorio donde se guardarán para su posterior uso por slapd:

servidor:#mkdir /etc/ldap/slapd-certs

servidor:#cp cacert.pem /etc/ldap/slapd-certs/

servidor:#mv newcert.pem /etc/ldap/slapd-certs/servercrt.pem

servidor:#mv newreq.pem /etc/ldap/slapd-certs/serverkey.pem

servidor:#chmod 400 /etc/ldap/slapd-certs/serverkey.pem

servidor:#cd /etc/ldap/slapd-certs/

servidor:#chown openldap.openldap *

A continuación debemos editar el fichero /etc/ldap/slapd.conf para que contenga las siguientes líneas:

TLSCipherSuite HIGH:MEDIUM:+SSLv2:RSA

TLSCACertificateFile /etc/ldap/slapd-certs/cacert.pem

TLSCertificateFile /etc/ldap/slapd-certs/servercrt.pem

TLSCertificateKeyFile /etc/ldap/slapd-certs/serverkey.pem

Para que el servidor arranque tanto en modo no seguro como en modo seguro, hay que modificar el fichero /etc/default/slapd de la siguiente manera:

SLAPD_SERVICES=”ldap:/ ldaps:/”

Si todo ha ido bien, al arrancar el servidor ldap, no debería dar ningún error:

servidor:#/etc/init.d/slapd restart

Starting OpenLDAP: slapd.

Para comprobar que el servidor está corriendo podemos ejecutar:

servidor:# netstat -alnp | grep slapd

tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 7716/slapd

tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 7716/slapd

tcp 0 0 127.0.0.1:389 127.0.0.1:49456 ESTABLISHED7716/slapd

tcp6 0 0 :::389 :::* LISTEN 7716/slapd

tcp6 0 0 :::636 :::* LISTEN 7716/slapd‘’

Podemos ver cómo el servidor está corriendo en los puertos 389 (no seguro) y 636(seguro).

Configurar PHP5
servidor:#vi /etc/php5/apache2/php.ini

Cambiar memory_limit (está en 16) por:
memory_limit = 64M #(Podría ser 32, depende de lo que se quiera).

Configurar GoSA
Traerse unos esquemas extras:
servidor:/etc/ldap/schema# cp /usr/share/doc/gosa/contrib/openldap/samba3.schema.gz .
servidor:/etc/ldap/schema# gunzip samba3.schema.gz
servidor:/etc/ldap/schema# cp /usr/share/doc/gosa/contrib/openldap/trust.schema .

Poner los SCHEMAS así:
servidor:/etc/ldap# vi slapd.conf

#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

Agregamos unos OU que va a usar GoSA con este ldiff:
# people, servidor.red
dn: ou=people,dc=servidor,dc=red
objectClass: organizationalUnit
ou: people

# groups, servidor.red
dn: ou=groups,dc=servidor,dc=red
objectClass: organizationalUnit
ou: groups

(Lo Agregamos con ldapadd o algo similar.)

Entramos en: http://servidor-web/gosa/setup.php
(Configuramos y obviamos el mensaje de error con el GoSA, el usuario se puede crear desde el Setup).

Esto crea un archivo gosa.conf, bajarlo y guardarlo en:
/etc/gosa

Cambiar los permisos
servidor:# chown root.www-data /etc/gosa/gosa.conf
servidor:# chmod 640 /etc/gosa/gosa.conf

LISTO! ahora entrar en http://servidor-web/gosa/ y empezar a usar.

NOTA: En este caso GoSA no está usando SSL por que está instalado en el mismo servidor y lo va a hacer por socket por lo que no es necesario, en caso de que tengamos el GoSA u otros servicios fuera del mismo servidor entonces se tendría que copiar los respectivos certificados y decirle al servicio que use SSL para comunicarse con LDAP.

Cualquier comentario lo pueden dejar en este blog o mandarme un correo a koshrf at gmail dot com

Categories: *nix Tags: ,