Hola mundo

Destacado

NOTA: hasta terminar de migrar los post antiguos, vaya al sitio anterior.

Por que decidí empezar de nuevo? bueno necesitaba un CMS que se mantenga sin necesitad de mucho mantenimiento (ya no tengo el tiempo libre que tenía antes). Muchos años me deleité usando drupal y lo recomiendo mucho, ahora le daré una oportunidad a wordpress con la premisa de dedicar mas a compartir el conocimiento.

Muchos de los instructivos que tengo en mi blog los he creado con el fin de que sean útiles y didácticos; mi idea es compartir lo mas posible del conocimiento que adquiero a diario al trabajar con y vivir del FOSS.
Esto ha convertido a elajonjoli.org en un punto de referencia al momento de realizar ciertas tareas, en especial con asterisk y elastix.

Por que el ajonjolí? por que cuando era pequeño mis principales fuentes de conocimiento eran Plaza Sésamo (o ajonjolí) y mi NES (si, hubiera podido comprar el dominio nintendo.org, si no estuviera registrado desde 1998 ;-) ); este nombre significa para mí una fuente de conocimiento.

Instalación de servidor dhcp en Debian GNU/Linux

Lo primero que tenemos que hacer es instalar el paquete dhcp3-server:
root@~:# apt-get install dhcp3-server
al intentar iniciar nos va a salir un mensaje de “failed”, esto es por que aun no hemos creado el archivo de configuración así que vamos primero a hacer un backup del archivo original que nos puede servir luego para consultar opciones:
root@~:# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
y empezamos con un archivo vacío de configuración ejecutando el siguiente comando:
root@~:# rm -f /etc/dhcp/dhcpd.conf && nano /etc/dhcp/dhcpd.conf
(en el comando anterior podemos usar nuestro editor de textos favorito)

como ejemplo he puesto la red local a 192.168.3.0/24, suponiendo que nuestro ruteador tenga la ip 192.168.3.254, nuestro servidor de nombres (DNS) es 8.8.8.8 y que el rango de ips que queremos que asigne nuestro servidor es desde la 192.168.3.50 hasta la 192.168.3.99.
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.3.0 netmask 255.255.255.0 {
next-server 192.168.3.254;
filename "pxelinux.0";
option routers 192.168.3.254;
option subnet-mask 255.255.255.0;
# option domain-name "example.com";
option domain-name-servers 8.8.8.8;
option time-offset -18000;
option ntp-servers pool.ntp.org;
range dynamic-bootp 192.168.3.50 192.168.3.99;
}

Una ves puestos nuestros datos de red, guardamos el archivo (en “nano” con Crtl+X) y ejecutamos:
root@~:# /etc/init.d/isc-dhcp-server restart
Si no nos sale el mensaje de error, todo estará configurado bien. Podemos verificar que el servicio haya arrancado con el comando:
root@~:# ps fax|grep dhcp
debería salir una linea así:
1620 ? Ss 0:00 /usr/sbin/dhcpd -q

Imagen syslinux para pxe boot

Primero debemos descomprimir el contenido del archivo que adjunto a este post (abajo esta el enlace).
root@~:# tar xjvf syslinux-pxe.tar.bz2
El contenido de la capeta extraída debemos copiarlo a la carpeta raíz del servidor tftp, P. EJ:
root@~:# cp -r syslinux-pxe/* /srv/tftp/

Una vez hecho esto, ya podemos realizar una prueba de booteo; aparecerá un menú desde el cual vamos a poder escoger que sistema operativo instalar o ejecutar en modo live siempre y cuando hayamos instalado el servidor tftpboot y el dhcp.

En la carpeta raíz del servidor tftp:

  • pxelinux.0 – Cargador de arranque:
    Este archivo contiene la imagen syslinux para pxe (Pre-Execution Environment), en palabras simples, el cargador de arranque.
  • pxelinux.cfg/default – Configuración del cargador de arranque:
    Este archivo contiene las opciones del cargador de arranque (usa la misma sintaxis de isolinux.cfg). Aquí definimos las opciones de arranque que va a tener. Este archivo contiene algunos ejemplos para bootear Ubuntu 10.04, CentOS 5.2 y Fedora 9. Cada sistema operativo que desea que arrancar debe tener una entrada aquí.
  • pxeboot.msg – Archivo de texto con las opciones del menú:
    Aquí esta el menú que aparece cuando una computadora bootea por red; debemos tener aquí instrucciones de como bootear cada sistema operativo que se ha configurado en el archivo pxelinux.cfg/default. El archivo contiene un esquema de ejemplo que conserva 80 columnas por 24 filas de texto. Podemos personalizar este menú a gusto.
  • help.msg – Archivo de texto con las opciones de ayuda:
    Este archivo contiene el menú que aparecerá cuando se presiona la tecla “F1″ en el menú principal. Podemos personalizar este menú a gusto.
  • options.msg – Archivo de texto con las opciones:
    Este archivo contiene el menú que aparecerá cuando se presiona la tecla “F2″ en el menú principal. Podemos personalizar este menú a gusto.

Todos los archivos contienen ejemplos de configuración y comentarios en español para personalizarlos completamente.

syslinux-pxe.tar

Instalación de servidor nfs en Debian GNU/Linux

Lo primero que tenemos que hacer es instalar el paquete nfs-kernel-server:
root@~:# apt-get install nfs-kernel-server

Luego definimos las carpetas que queremos exportar en el archivo /etc/exports, de forma básica y simple podemos compartir archivos en toda nuestra red (o cualquier red).
Por ejemplo supongamos que queremos compartir nuestra carpeta /home/usuario en nuestra red 192.168.3.0/24, así añadiríamos la siguiente linea al final del archivo /etc/exports:
/home/usuario 192.168.3.0/255.255.255.0(no_root_squash,no_subtree_check,rw)
Para aplicar los cambios ejecutamos:
root@~:# /etc/init.d/nfs-kernel-server reload

Si queremos crear una compartición para cualquier red pondríamos en la parte de la red/mascara algo así: 0.0.0.0/0.0.0.0
Al final de la linea de configuración están las letras “rw”, si queremos que solo se pueda visualizar los archivos solo hay que quitar la w.

Ya podemos revisar la capeta que compartimos montándola desde otra computadora de la red con el comando:
sudo mount -t nfs 192.168.3.254:/home/usuario /mnt/
Asumiendo que nuestro servidor NFS tiene la ip 192.168.3.254 y que queremos montarla en la ubicación /mnt/.

Instalación de servidor tftp en Debian GNU/Linux

Lo primero que tenemos que hacer es instalar el paquete tftpd-hpa para esto ejecutamos como el usuario root:
root@~:# apt-get install tftpd-hpa
Al momento de instalar el paquete preguntara la ubicación por defecto de los archivos servirá desde tftp.
dpkg tftpd

Podemos dejar la ruta por defecto ya que esta configuración se puede modificar en el archivo
/etc/default/tftpd-hpa

Si realiza un cambio a la configuración deberá reiniciar el servidor tftpd con el comando
root@~:# /etc/init.d/tftpd-hpa restart.

Puede comprobar que el servidor tftp esta escuchando ejecutando el comando
root@~:# netstat -atunp | grep tftp
Con esto queda configurado tftpd y esta listo para ser usado.

Si dejamos las opciones por defecto debería cargar los archivos para servirlos por tftp en el directorio /srv/tftp .

Como generar Certificados SSL

Primero debemos crear una carpeta donde se ubicaran los certificados:
root@~:# mkdir $HOME/certificados
root@~:#cd $HOME/certificados

El primer paso es crear la clave RSA privada. Esta clave es del tipo RSA de 1024 bits y estará encriptada usando Triple DES y guardada en formato PEM de forma tal que será visible como texto ASCII.

root@~:# openssl genrsa -rand /usr/bin/lsattr:/bin/cat -out server.key 1024
NOTA: Aqui /usr/bin/lsattr:/bin/cat son archivos binarios que nos servirán de fuente para generar números aleatorios, lo que ayudara a que el certificado sea mas seguro. Es posible usar archivos comprimidos con gzip también u otros binarios “chiquitos”.

Luego se genera petición de certificación (Certificate Signed Request). Con esta ya se puede realizar la petición de un certificado a la entidad certificadora (pronto publicare como hacerlo).

root@~:# openssl req -new -key server.key -out server.csr

Aqui se preguntaran algunos datos que deberia contener el certificado, basicamente ubicacion, empresa, y contactos. Aqui un ejemplo:
Country Name (2 letter code) [GB]:EC
State or Province Name (full name) [Berkshire]:Pichincha
Locality Name (eg, city) [Newbury]:Quito
Organization Name (eg, company) [My Company Ltd]:el ajonjoli
Organizational Unit Name (eg, section) []:IT

Common Name (eg, your name or your server’s hostname) []:elajonjoli.org
Email Address []:ejemplo@ejemplo.com
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:cualquiercontraseña
An optional company name []:puede dejarse en blanco

Ahora creamos el certificado autofirmado:
root@~:# openssl x509 -req -days 1400 -in server.csr -signkey server.key -out server.crt
NOTA:

Aqui 1400 es el numero de dias que va a ser valido nuestro certificado, como los planes es no comprar uno, se le pone un nuemero alto.

Si ejecutamos el comando:
root@~:# ls -alF
veremos algo asi:
total 12

-rw-r–r–  1 root root 952 feb  2 16:06 server.crt
-rw-r–r–  1 root root 777 feb  2 16:05 server.csr
-rw-r–r–  1 root root 887 feb  2 16:03 server.key

Y ya tenemos los tres archivos generados que son todo lo que necesitamos para usar con cualquier aplicacion que requiera un certificado.