martes, 19 de febrero de 2019

Servidor SSH en Windows

Cuando no tenemos conocimientos en Linux para "instalar" un servidor SSH, y necesitamos uno por necesidad (Como el caso actual en el bloqueo del gobierno venezolano a sus ciudadanos que no pueden acceder a las páginas de internet banking de los bancos venezolanos porque son bloqueados, o los portales del gobierno e incluso otros que no son gobierno, como Mercado Libre para los usuarios vendedores) entonces tenemos la opción de hacerlo en Windows.

Existe un programa gratuito para windows, muy fácil de instalar y configurar, este programa en cuestión es FreeSSHd y lo pueden descargar de aquí. 

Bueno, ya que me tomé el tiempo de escribir hasta aquí, he conseguido (gracias a google) buscando el link de descarga de FreeSSHd, un blog bastante completo de cómo instalar FreeSSHd, así que mejor les dejo el link y configuran desde allí, está bien explicado, y me ahorro tanto en tiempo como en copy/paste de ventanas jajaja.

Si tienen alguna duda, pueden consultar en la página del enlace o pueden consultarme, que con gusto los ayudaré.

Anti Bloqueo (Venezolanos) usando Router DD-WRT o NO


En vista de las restricciones #CyberBloqueo que el gobierno de Venezuela está haciendo a los
ciudadanos venezolanos en el exilio para acceder a sus cuentas bancarias usando el internet banking
de la banca venezolana, además de otras páginas de gobierno, y otras no del gobierno pero que se
han tomado la atribución de realizar el mismo bloqueo (Ej. www.mercadolibre.com.ve para los usuarios
que venden por esa plataforma), voy a realizar este pequeño manual de ayuda para que aquellos
venezolanos que aún tienen sus casas y mantienen sus servicios o que por alguna razón aún tienen
familia en Venezuela y mantienen su conexión a internet y quieren librarse de este estúpido bloqueo,
con la única condición (para esta versión del manual) es que cuenten con un Router que use el firmware
DD-WRT ya que será mucho más fácil y rápido de hacer.. (El próximo Post lo haré para los que tienen
cualquier otro tipo de router, y básicamente será muy parecido a este.)

NOTA IMPORTANTE:
Como no tengo DD-WRT por ahora, las pantalllas que he colocado en este post fueron descargadas
desde internet, lo más importante es que no tienen derechos de autor, por lo que no estoy infringiendo
ninguna ley 😜.

Requerimientos:

1. Router con el firmware DD-WRT con soporte para SSH
2. PC con Windows (Puede ser linux, pero los que tienen linux ya saben hacer esto :D ) Les debo la
configuración a los que tengan MacOS, pero como no tengo una Mac, no podré hacer las pantallas
(Acepto donaciones 😋 )
3. Navegador Google Chrome o Firefox (Haré el manual con Chrome)
4. Descargar putty.exe de los siguientes enlaces. (Va a depender de la plataforma de tu windows, si es 32 bits o 64 bits).


1.- Lo primero que debemos hacer es activar el servicio SSH (Servidor) y configurar el puerto de entrada.
Vaya a la pestaña Servicios y la subpestaña Servicios en la Interfaz Web del DD-WRT.
Habilitar SSHd en la sección Secure Shell. 
El reenvío TCP SSH puede dejarse deshabilitado. 
El puerto se puede dejar configurado en 22.
Habilitar la Autorización de contraseña (Método más fácil para usuarios no avanzados) Los usuarios avanzados pueden configurar claves autorizadas, para mayor seguridad.
Presione el botón Aplicar configuración.


2.- Ahora debemos habilitar para que el SSH se pueda ver desde Internet.

Vamos a la pestaña Administración y la subpestaña Administración en la Interfaz Web Habilite la administración de SSH en la sección de acceso remoto. Establezca el Puerto remoto en el número de puerto TCP que desea utilizar para conectarse a su router desde Internet. Una buena opción es usar el puerto 443 porque normalmente se deja abierto para permitir el uso de HTTPS, por lo que Putty podrá conectarse incluso a través de firewalla restrictivos. Presionamos el botón Aplicar configuración. 

Resultado de imagen para ssh "DD WRT"

Es importante mas no imprescindible tener configurado un servicio de DNS dinámico, especialmente si su proveedor de servicios de internet cambia su dirección IP de forma dinámica. Esto le permitirá acceder a su router utilizando un nombre de dominio fácil de recordar en lugar de la dirección IP  WAN.



3.- Configurar y guardar la configuración de Putty.

Desde Windows, daremos doble clic a Putty.exe para que nos abra el programa que nor permite tanto configurar como hacer la conexión SSH para hacer el tunel.
Agregamos el nombre que creamos en el DNS Dinámico o la IP WAN del router.

Vamos a la sección Conexión -> Datos. (ver la figura siguiente) y escribamos el nombre del administrador del router o uno que haya creado y que tenga acceso al router, preferiblemente un usuario sin perfil administrador, pero para no complicar a los usuarios, colocamos el usuario estándar, que en este caso será "root" y dependiendo del firmware podría ser "admin".


Ahora vamos a establecer los valores para nuestro tunel, vamos a Conexión -> SSH -> Túneles. colocamos 8080 en el puerto de origen, seleccionamos el botón de opción Dinámico para convertirlo en un túnel dinámico que actuará como un servidor proxy SOCKS, hacemos clic en el botón Agregar para agregarlo a la lista de puertos reenviados. Aparecerá como D8080 en la lista. Podemos activar la opción de que nuestro equipo acepte conexiones de otros hosts en la red, esto nos permitirá compartir la navegación a través del tunel con otros usuarios en nuestra red.


Ahora regresamos a la sección de Sesión para terminar de configurar los datos de nuestro servidor SSH (Nuestro Router DD-WRT)
En la imagen de abajo está escrito un nombre "micasa.ddns.net" que fue previamente configurado en un DynDNS y también configurado en el DD-WRT, pero allí también podría colocar la dirección IP de Internet de su Router.
Configuramos el puerto remoto, para nuestro ejemplo habíamos usado el 443
Marcamos el tipo de conexión en SSH.
Y guardamos la configuración.

Ahora podemos realizar el tunel haciendo doble clic en el nombre de la sesión guardada en la lista para cargarla y abrir la conexión al servidor (Router DD-WRT)

Cada vez que se conecte, deberá ingresar la contraseña del router a menos que esté usando una clave de autenticación.


4.- Configurar el Proxy en tu navegador.

Ahora que ya tenemos el tunel SSH corriendo, lo que nos queda hacer es configurar las opciones de internet para configurar un servidor proxy SOCKS.
Los datos que requerimos para configurar el proxy son los siguiente:
Tipo de Proxy: SOCKS
Dirección: 127.0.0.1
Puerto: 8080

Abrimos Google Chrome y en la barra de navegación escribimos:
chrome://settings/

Esto nos abrirá la siguiente ventana de configuración en donde haremos la configuración del proxy, iremos al final y seleccionamos las opciones avanzadas.


Igualmente, iremos al final y seleccionamos Abrir configuración de Proxy

Nos aparecerá la siguiente ventana, y seleccionaremos Configuración LAN


Seleccionamos lo que está marcado en amarillo en la ventana de abajo, y haremos clic en Opciones Avanzadas.


Agregamos los datos del proxy SOCKS y le damos aceptar a todas las ventanas hasta cerrar la configuración de Chrome.

Ahora podrá navegar como si estuviese en la red del router DD-WRT, en este caso en Venezuela. Puede probra que su dirección IP es la de Venezuela, navegando en Google Chrome la página:
cualesmiip.com

5.- Compartir el tunel para otras máquinas en tu red.

Realizar todo lo del paso 4, con la diferencia que en la dirección del proxy, en lugar de usar 127.0.0.1 deberán colocar la dirección IP Privada de su máquina, algo como 192.168.1.12 o 192.168.0.5 o la que tenga en ese momento su máquina.
Podrá verla pulsando la tecla Windows+R escribiendo luego cmd.exe y presiona y en la consola CMD escribir ipconfig y presionando allí podrá ver su dirección su dirección IP que tiene actualmente.


Sin Router DD-WRT

Básicamente lo que nos ahorra el DD-WRT es tener que instalar un servidor SSH, y hacer la redirección de puerto hacia ese servidor.
Si no tenemos un servidor SSH y no sabemos nada de Linux, podemos instalar un servidor SSH en una máquina con Windows, usando FreeSSHd, y podemos ver cómo aquí

Lo único que nos queda después de instalar el servidor, es hacer la redirección de puertos (Port Forward) en nuestro Router (Linksys, TP-Link, Cisco, etc.) pero como cada Router tiene su forma particular de hacer la redirección, entonces deben buscar en el manual de su router o en internet "cómo hacer la redirección de puertos a su servidor SSH y lo demás ya está escrito arriba.

Saludos.

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

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.

domingo, 18 de mayo de 2008

Xen+Windows

Configuración del servidor dom0
Para ello debemos tener ya corriendo Xen (hypervisor) más detalles en mi antiguo blog rodria1 Es imprescindible tener un procesador INTEL VT o AMD Pacífica.
Para comprobar que nuestro procesador soporta tecnología de virtualización podremos verificarlo de las siguientes maneras.

# xm info | grep xen_caps
xen_caps : xen-3.0-x86_64 hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64

o

# cat /proc/cpuinfo

en la primera opción verificar si tenemso "hvm" y en la segunda verificar si tiene el flag vmx


Si podemos ver hvm en xen_caps entonces seguiremos con:

# apt-get install xen-ioemu-3.0.3-1

Configuración de la VM domU

Requeriremos de una imagen del CD de windows, y crear el disco para la VM

# dd if=/dev/cdrom0 of=w2k.iso

# lvcreate -L 10G -n w2k-dsk vg0

(si no tienes lvm entonces puedes usar dd)

# dd if=/dev/zero of=w2k-dsk.img bs=1M count 10000

Luego crearemos el archivo de configuración de la máquina virtual para windows.

# nano /etc/xen/w2k.cfg

#
# Archivo de configuración para Windows 2000
#
#

# Kernel y memoria
#
kernel = ‘/usr/lib/xen-default/boot/hvmloader’
builder = ‘hvm’
memory = ‘256′
#
# Disk device(s).
#
disk = [ 'phy:/dev/vg0/w2k-dsk,ioemu:hda,w', 'file:/root/w2k.iso,hdc:cdrom,r' ]
#
# Hostname
#
name = ‘w2k’

vcpus = 1

#
# Networking
#
dhcp = ‘dhcp’
vif = [ 'type=ioemu, mac=00:a1:b2:c3:e4:ff' ]
#
# Behaviour
#
on_poweroff = ‘destroy’
on_reboot = ‘restart’
on_crash = ‘restart’
# New stuff
device_model = ‘/usr/lib/xen-3.0.3-1/bin/qemu-dm’
boot = ‘d’
ne2000 = 1
acpi = 1
sdl = 0
vnc = 1
vncviewer = 0
nographic = 0

Lo nuevo en esta configuración son los parámetros :

boot = 'd' para que arranque por la unidad "d", la emulación de la tarjeta de red ne2000, activar ACPI y que nos permita conectarnos por VNC, con ello lograremos terminar la instalación.

Debemos editar el archivo de configuración de Xen para permitir la conexión de vnc desde otra máquina que no sea el localhost.

# nano /etc/xen/xend-config.sxp y cambiar la línea

(vnc-listen '127.0.0.1') por (vnc-listen '0.0.0.0')

Luego:

# /etc/init.d/xend restart (para que tome en cuenta los cambios)

Recordemos que VNC no está protegido por contraseña y cualquiera con acceso al servidor se podría conectar.

Instalación del S.O.
El primer paso será arrancar la nueva máquina virtual:

# xm create windows.cfg

Desde nuestro PC podremos conecarnos por VNC al domU y continuar con la instalación de w2k. Ejemplo:

# vncviewer xen-w2k (suponiendo que nuestro server se llama xen-w2k)

Ahora podremos continuar la instalación como la conocemos normalmente en una máquina sola :)
Una vez terminada la instalación, configuramos todo lo necesario para poder conectarnos por RDP con el usuario permitido. y desactivaremos la opción del vnc en la configuración de la VM

# nano /etc/xen/w2k.cnf

vnc = 0
nographic = 1

# nano /etc/xen/xend-config.sxp

(vnc-listen '127.0.0.1')

y volvemos a reiniciar el hypervisor

/etc/init.d/xend restart


martes, 6 de mayo de 2008

Debian+ddclient+whatismyip.org

Uno de los problemas que tenemos cuando tenemos una dirección IP dinámica que nos entrega nuestro proveedor de Internet (ISP) es que en el momento más crítico (ley de Morphy) este proveedor nos cambia la dirección IP y morimos en el intento de conectarnos.

Bueno, existen servidores de DNS Dinámico como DynDNS, ZoneEdit, No-IP, entre muchos otros que nos facilitan la tarea de configurarnos un nombre a nuestra dirección IP y que estos a su vez se encarguen de actualizar la dirección al nombre asociado para que mantengamos el nombre con cualesquiera de las direcciones que nos entregue nuestro ISP. El problema de esto es que necesitamos tener un programa que esté informándole a estos servidores de nombres los cambios de nuestra dirección IP.

En Debian tenemos una estupenda alternativa para hacer esto y es lo que les explicaré a continuación.

Requisitos:

  1. Tener una cuenta en uno de estos servidores de nombres dinámicos configurada con el nombre del host que quieras tener. Por ejemplo mi_host.dyndns.org. No es parte de este HowTo el como crear ni configurar una cuenta de dyndns.org no-ip.com, zoneedit.org o cualquier otro. Este manual no contempla explicar como crearse una cuenta en un servidor de DNS dinámico, y tampoco como crearse un hostname en él.
  2. Tener obviamente un sistema Linux, yo explicaré como usar ddclient con debian lenny.
  3. Conexión a Internet ;)

Lo primero será instalar ddclient en nuestro Debian.

# aptitude install ddclient (recuerde usar aptitude en lugar de apt)

Luego el sistema nos preguntará la información de la cuenta que creamos, en este caso en dyndns.org.

  • Proveedor de Servicio: www.dyndns.org
  • Nombre Completo del Dominio: mi_host.dyndns.org
  • Nombre de Usuario: mi_usuario_en_dyndns.org (el login en www.dyndns.org)
  • Contraseña para el Servicio: mi_contraseña_en_dyndns.org
  • Interfaz Usada por el Servicio DNS Dinámico: eth0
Para este caso, la eth0 sería la que está conectada a la WAN, si su WAN está en una interface diferente, especifiquela ahí.
  • Ejecutar ddclient: Si
  • Ejecutar ddclient como demonio: Si
  • Ejecutar cada: 3m

Mostraré un ejemplo de como quedaría el archivo de condiguración de ddclient.

#cat /etc/ddclient.conf

pid=/var/run/ddclient.pid
protocol=dyndns2
use=if, if=eth0
server=members.dyndns.org
login=milogin
password='mipasswd'
mihost.dyndns.org,mihost2.dyndns.org

Nótese que en este ejemplo he configurado dos host con diferentes nombres que he creado en mi cuenta dyndns.

Ahora bien, un problema que tenemos cuando estamos detrás de un proxy o nat es que nuestra dirección IP de la WAN puede ser una dirección privada al estilo de 192.168.0.1, lo cual no nos sirve de nada, ya que use=if tomará esa IP privada 192.168.0.1 y es la que registrará en el servidor dyndns. para ello debemos modificar la linea 'use=if, if=eth0' por algo como esto.

use=web, web='http://whatismyip.org' ó
'http://www.whatismyip.com/automation/n09230945.asp'

Con esto solucionamos ese problema, y les pasará si por ejemplo están derás de un "router" lynksys por dar una idea....

Espero que le sirva a algún novato.

Saludos