Mostrando entradas con la etiqueta how to. Mostrar todas las entradas
Mostrando entradas con la etiqueta how to. Mostrar todas las entradas

domingo, 21 de febrero de 2016

Restaurar GRUB con Rescatux


Rescatux es una distribución de GNU/Linux que nos permite recuperar el gestor de inicio GRUB.

Comencemos entonces con algunas definiciones.

GRUB es el acrónimo de GNU GRand Unified Bootloader, si desean ver la definición, justo en mi anterior artículo pueden leer un poco (http://ojedareinaldo.blogspot.fr/2016/02/cambiar-fondo-del-grub.html Febrero, 2016), igualmente les dejo la URL de la página oficial del GRUB https://www.gnu.org/software/grub/ Febrero, 2016.

Live CD: cada vez que iniciamos nuestro equipo, el sistema operativo es buscado en el disco duro y se comienza a colocar en RAM cada una de las rutinas necesarias para que el mismo funcione de manera correcta; ahora bien, imaginemos por un momento que nuestro equipo no inicia, pero tenemos que entregar urgentemente algún trabajo que hicimos y que está en el HDD (Hard Disk Drive o Disco Duro). Si, lo sé, es que Murphy siempre nos toma siempre desprevenidos con esa ley de “Si algo puede salir mal, saldrá mal” Ahora bien, ¿y si te digo que existe una solución y que teniendo la herramienta adecuada puedes solventar tu inconveniente en un momento?.

Digamos que tenemos un CD o USB booteable preparado con todos los archivos de un sistema operativo, un CD o USB que le dirá a nuestro equipo, “-GNU/Linux o Ms Windows está aquí, no en el HDD, carga todo a memoria RAM desde mi.-”

Eso es un Live CD, un disco que permite correr el sistema en VIVO o en caliente como decimos en español, es importante destacar que el sistema operativo, en este caso, no está instalado en el equipo y no se va a instalar por simplemente iniciarlo.

Casos en los que un Live CD es útil
  • Rescatar algún archivo cuando nuestro sistema operativo no inicia.
  • Respaldar información, sin iniciar equipo en su sistema actual.
  • Probar sistemas operativos específicos (muy útil si quieres ver cierta distribución de GNU/Linux sin instalarla en tu ordenador.)
  • Desinfectar un equipo que se encuentra full de virus (experiencia adicional requerida).
  • Restaurar GRUB luego de instalar Windows.
  • Entre otros...

Ahora bien, ¿Qué es Rescatux?

Rescatux, tal como lo indican en su página oficial, es un Cd de rescate de GNU/Linux (y eventualmente Ms Windows), sin embargo no es como cualquier disco de rescate. Rescatux viene con Rescapp, que es un excelente asistente que te guiará a través de las tareas.

¿Cuales son sus opciones?
  • Restaurar GRUB y GRUB2 (Con un solo clic)
  • Actualizar menús de GRUB2
Windows options:
  • Restaurar el MBR (de Master Boot Record)
  • Resetear claves de Ms Windows
  • Ascender permisos de un usuario de Ms Windows
  • Desbloqueo de usuarios de Ms Windows.
Password options:
  • Cambio de contraseñas de GNU/Linux (aún no he probado esta opción)
  • Regenerar el archivo sudoers
Filesystem options:
  • Chequeo de sistema de ficheros o FS check
Igualmente tiene otras herramientas para expertos, sin embargo no entraré en detalles ahora mismo sobre eso, si deseas obtener más información puedes ir a la página oficial http://www.supergrubdisk.org/rescatux/ (Inglés) Febrero, 2016.
Luego lo descargan y lo copian a un CD o hacen un USB booteable con la ISO.

Si lo que desean es restaurar el GRUB los pasos son los siguientes:
  1. Inicial el live CD (o USB)
  2. Hacer clic en el ícono de rescapp para visualizar el menú de opciones
  3. Hacer clic en Restore GRUB
  4. Y ya desde aquí el programa nos guía.
Aquí les dejo una imagen del menú principal.
Éxito.

Copyleft Rait3 - 2016

sábado, 13 de febrero de 2016

Cambiar fondo del GRUB


Bueno, hice una pausa de mis estudios para tunear un poco mi Debian Stretch, esta vez me decidí a quitar la imagen de Debian y poner algo un poco más a mi estilo. A contiuación indicaré como lo hice.

Antes de hablar de lo que se hizo, un poco de definiciones.
Un bootloader es el primer programa que corre cuando un computador inicia. Es responsable de leer y transferir el control al Kernel del sistema operativo. GRUB (GRand Unified Bootloader) es entonces el bootloader que viene por defecto con GNU/Linux Debian y sus derivados (como Ubuntu por ejemplo).
Para más información al respecto pueden visualizar la página original del proyecto, aunque está en inglés https://www.gnu.org/software/grub/

Lo primero que hice fue asegurarme de saber cual era la versión del Grub instalada en mi sistema; para ello usamos el comando
$sudo grub-install --version
grub-install (GRUB) 2.02~beta2-35
Sabiendo que mi versión es la "2.02~beta2-35" busqué entonces el directorio donde debían estar las imágenes del grub, /usr/share/images/desktop-base/, un simple ls me permitió ver los nombres de las imágenes que estaban allí.
$ls /usr/share/images/desktop-base/
Las imágenes que podremos usar serán las que tienen extensión .tga, .png, o .jpg/.jpeg y su tamaño normalmente es el de 640 × 480, aunque admito que en mi caso use una imagen de 1920 x 1080 y funcionó sin problemas.

Yo lo que hice fue copiar la imagen que quería al mismo directorio donde está el fondo actual de mi grub; vale acotar que mi imagen se llama me.png y la tengo en la ruta /media/Data/Imagenes/Wp/me.png
$sudo cp /media/Data/Imagenes/Wp/me.png /usr/share/images/desktop-base/
Y luego edité el script que llama a la imagen de fondo, dicho script se encuentra en la siguiente ruta: /usr/share/desktop-base/grub_background.sh y lo edité con nano que admito que es mi preferido (aunque en cuestiones de potencia debo igualmente admitir que VI lleva la delantera, a mi parecer).
$sudo nano /usr/share/desktop-base/grub_background.sh
El contenido original de este archivo, en mi caso, es el siguiente:
WALLPAPER=/usr/share/images/desktop-base/desktop-grub.png
COLOR_NORMAL=white/black
COLOR_HIGHLIGHT=black/white
Lo cual es muy sencillo de comprender; lo primero es la ruta de la imagen de fondo, luego tienes el color de las opciones (textos) y fondo, y por último el color de las opciones (textos) una vez las tengas seleccionadas (lo explicaré mas adelante si quieren cambiar colores). Procederemos a cambiar solamente la línea WALLPAPER.
#WALLPAPER=/usr/share/images/desktop-base/desktop-grub.png
WALLPAPER=/usr/share/images/desktop-base/me.png
COLOR_NORMAL=white/black
COLOR_HIGHLIGHT=black/white
Como verán, comenté la línea original y abajo puse la ruta a mi imagen (me.png)

Guardamos y cerramos (Ctrl + o Ctrl + x respectivamente)

Y ahora debemos proceder a decirle a nuestro equipo que actualice las configuraciones del grub2
$sudo update-grub2
Y listo, reinicié mi equipo solo para deleitarme de ver mi nueva imagen, jeje.

Cambiar Colores de Texto

Puede darse el caso, dependiendo de las características de tu imagen, que no se logre leer bien las opciones de los Sistemas operativos que se encuentran en el Grub, para solventar esto deberemos cambiar los colores de las mismas.

Vamos de nuevo al mismo script.
$sudo nano /usr/share/desktop-base/grub_background.sh
Lo que entonces nos muestra nuestro pequeño bloque de código, tal como sigue:
#WALLPAPER=/usr/share/images/desktop-base/desktop-grub.png
WALLPAPER=/usr/share/images/desktop-base/me.png
COLOR_NORMAL=white/black
COLOR_HIGHLIGHT=black/white
Y cambiamos el texto de COLOR_NORMAL, que vale acotar, indica el color de todas las letras del grub.

La primera opción de color indica es como tal el color de la letra, el segundo es el color del fondo que debe tener la línea de esa opción.
Ejemplo: COLOR_NORMAL=white/black
Significa, texto en blanco, fondo de esa línea en transparente.

Ahora simplemente tienen que hacer los cambios, sabiendo lo que quieren. A continuación les doy un listado de los colores que se pueden usar.
Opciones de colores:
white = blanco

black = transparente (Venga tio, que no es negro, NO ES NEGRO!!!)

blue = azul

light-blue = azul claro

cyan = cian (azul verdoso)

light-cyan = cian claro

green = verde

light-green = verde claro

light-gray = gris claro

dark-gray = gris oscuro

light-magenta = magenta claro

red = rojo

light-red = rojo claro

brown = marron

magenta = magenta

yellow = amarillo
Ahora, luego de cambiar los colores, deben de nuevo pedirle al grub que se actualize:
$sudo update-grub2
Bueno, como decían en Looney Tunes, "Eso es todo amigos" jajaja.

Éxito...

PD: Muestro a continuación como quedó el mio, ánimo, hagan uds lo mismo, y si quieren, pongan en los comentarios de este artículo la imagen de lo que hicieron, por cierto, la imagen no la hice yo, ni siquiera puedo decir la fuente original porque en realidad me la copié del computador de un amigo.

Copyleft Rait3 - 2016

sábado, 6 de febrero de 2016

Mostrar mensaje sobre uso de Cookies


Que la cosa es medio fastidiosa, ¿no?

Primero, algo de definición, para no perder la costumbre.
Las cookies permiten obtener datos para generar las estadísticas de uso y visitas de nuestra Web (Google Analytics), sin embargo, también es gracias a dichas cookies que podemos llegar a conocer preferencias del usuario y por lo tanto mostrar publicidad ajustada a su perfil (Google Adsense).

Ahora bien, la ley de cookies europea nos obliga a notificarle al usuario que nosotros almacenamos estas galletas (del término cookie en inglés) y que por lo tanto, cada vez que navegan en nuestra Web, nos dejan algo de información como rastro.

El hecho de que tengamos que avisarle al usuario que está viendo un sitio que almacena cookies lo pueden ver en la "Ley de Servicios de la Sociedad de Información (LSSI)", concretamente en el apartado 2 del artículo 22 de la ley 34/2002
http://noticias.juridicas.com/base_datos/Admin/l34-2002.t3.html#a22

Vale acotar que esta ley afecta a cualquier empresa o particular que posea una página web en Europa y use cookies. No importa si tu página vende productos o es un simplemente una web sencilla que tienes para comunicar locuras (como este Weblog).

Bueno, la cosa es que me encontré que mi blog no mostraba el dichoso mensajito, cosa que me ha inquietado un poco así que puse manos a la obra en la solución y consecuente redacción del presente artículo (Disculpen lo complicado del lenguaje, es que llevo rato leyendo la ley y algo se pega jajajajaja :P).

Lo que hice fue ingresar a la administración de mi Weblog y en el menú de administración hice clic en Plantillas, tal como lo muestro en la imagen.

Hice entonces clic en el botón de "Editar HTML" que aparece justamente debajo de una imagen que muestra nuestro Blog.

Como no veía todo el código, hice uso de una herramienta que ya uno termina por aprender de memoria, "Ctrl + f" o lo que es lo mismo, las teclas para "buscar", y allí escribí /head.
Ahora bien, ¿por qué escribí eso?, sencillo, lo que voy a añadir es un script, y los scripts a nivel de programación de HTML se colocan adentro del encabezado de la página, el cual está definido por una etiqueta para su inicio y /head para su fin, así que busque la línea del final del encabezado y justamente antes de ella voy a añadir mi script.

¿Cual es el script que voy a agregar?

A continuación una imagen para que sepan como quedó en mi caso.



Luego del cambio, hice clic en guardar plantilla y listo, ya aparece.

Gracias por leerme.

Fuentes adicionales:
http://www.iniciablog.com/2014/01/ley-de-cookies-en-blogger.html Febrero, 2016
http://www.mybloggertricks.com/2015/07/Custom-Cookies-notification-for-European-Union-countries.html Febrero, 2016

Copyleft Rait3 - 2016

jueves, 26 de marzo de 2015

Servidores Virtuales


 


Por razones estrictamente laborales me he visto obligado a estudiar un poco sobre virtualización, diversos software para virtualizar y la instalación de un sistema que permita virtualizar equipos para servidores; como resultado de la investigación, me he planteado la redacción del presente artículo, con el objetivo de ayudar a los que como yo, necesiten virtualizar equipos para distribuir servicios.

Para comenzar, vamos a definir Virtualización:

Hablamos de algo virtual cuando nos referimos a una cosa que es simulada, por ejemplo, la realidad virtual, es la simulación de una situación; podríamos decir que es la creación de una versión virtual (en lugar de real) de algo; para el caso específico en que trabajamos actualmente, ese algo es un sistema operativo.

Por lo tanto, cuando creamos un equipo y dentro del mismo virtualizamos (por ejemplo), dos sistemas operativos, tendríamos 3 sistemas diferentes compartiendo exactamente los mismos recursos; por ejemplo podrías tener GNU/Linux Debian, MS Windows y GNU/Linux Ubuntu corriendo simultáneamente en el mismo computador físico.

Microsoft, en su página oficial de españa, nos indica que "La virtualización del hardware implica utilizar software para crear maquinas virtuales (VM) que emulan un host físico. Esto crea un entorno de sistema operativo independiente que es, lógicamente, aislado del servidor host. Al ofrecer varias máquinas virtuales a la vez, este enfoque permite que varios sistemas operativos corran simultáneamente en una única máquina física." http://www.microsoft.com/spain/virtualizacion/products/server/default.mspx Marzo, 2015.

Ventajas y desventajas de la virtualización
Tener varios sistemas operativos en un mismo hardware nos permite, sin ocupar tanto espacio físico, poseer diversos servicios que se suministren desde un sistema operativo propio, así, si el sistema operativo se daña, no necesitas preparar todo el hardware para reinstalar el sistema, simplemente borrar la máquina virtual y crearla de nuevo.

El respaldo de máquinas virtuales (VM) en un estado específico es una gran ventaja, ya que al momento de restaurar, simplemente se restaura el archivo o conjunto de archivos de la VM y ya el equipo operaría como lo hacía en la fecha de ese respaldo.

Supongamos que poseemos un equipo i7 con 8 Gb de memoria RAM, y necesitamos tener un servidor Web y un servidor de datos, sin embargo, nuestro requerimiento nos obliga a que el servidor de datos sea GNU/Linux y el Web en MS porque lo desarrollaron para trabajar únicamente con ISS (o alguna escusa por el estilo; no se amarguen amantes y defensores del software libre, es sólo un ejemplo; yo también soy fan del free software y de GPL).

Si apagas el equipo donde tienes las máquinas virtuales, o se daña el mismo, obviamente todas las VM dejarán de funcionar, una gran desventaja a tomar en cuenta.

Hypervisor
Un hipervisor o monitor de máquina virtual (VMM por Virtual Machine Monitor) es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar, al mismo tiempo, diferentes VM.

Tipos de Virtualización
Existen tres tipos específicos de virtualización, los cuales mencionaré a continuación:

  • Virtualización Completa
En la virtualización completa, "...los sistemas operativos (OS) usan drivers genéricos y estos OS permanecen inalterados. Se traduciría en que el hipervisor hace todo el trabajo sin alterar nada. Hoy en dia el rendimiento es bastante alto alto (aún haciendo el trabajo el hypervisor) porque al usar los mismos drivers genéricos que el host el kernel que usan es muy pequeño “Microkernel” y ademas aprovechan cualidades del hardware que cada vez mas esta preparado para la virtualización." 
http://blogs.itpro.es/problemas/paravirtualizacion/ Marzo, 2015

  • Virtualización Asistida por Hardware
No es muy fàcil de explicar sin complicar los conceptos y entrar a hablar sobre el funcionamiento de los sistemas operativos; por ahora sólo diré que el hardware permite pasar de un modo a otro para que el sistema operativo sea virtualizado.

  • Paravirtualización
Los sistemas virtualizados corren directamente sobre el procesador, sin emulación. Mientras que sistemas de virtualización completa como VMware y Virtual PC o Virtual Server de Microsoft utilizan una técnica conocida como binary translation, donde las instrucciones privilegiadas son reemplazadas con fragmentos de código que simulan las mismas; los sistemas que soportan paravirtualización (PV), parten de la base de que el sistema operativo huesped conozca que está siendo ejecutado en un entorno virtual, y por lo tanto modifique su comportamiento. Es importante acotar que un sistema operativo virtualizado no ejecuta el mismo código ni opera igual que si corriera en hardware real.

A diferencia de la PV, La técnica de virtualización completa es muy compleja y provoca grandes perdidas de rendimiento, sobre todo en aplicaciones con un uso intensivo de dispositivos. 

Ahora bien, sabiendo esto, podemos ver porqué decidí buscar un sistema de virtualización que aplicara la técnica de PV.

Software Analizados
Los software analizados para la virtualización fueron los siguientes
  1. Virtualbox
  2. VMware
  3. KVM
  4. XEN
  • Virtualbox
 Software de virtualización producido por Oracle, realmente es de fácil uso, y posee una versión distribuida bajo licencia GPL, gratuita. utiliza la técnica de virtualización completa.
  • VMWare
VMware es un sistema de virtualización por software que hace uso de la técnica virtualización completa, es muy bueno para entornos de estudio y pruebas, al punto que para los sistemas de estudio, tiendo a usar este sistema, sin embargo no usaría su versión gratuita para una virtualización de servidores puesto que no se explota al hardware en su máxima capacidad.
  • KVM
KVM (Kernel-based Virtual Machine) es una solución de software libre para virtualización completa y asistida por hardware, consiste en un módulo de kernel que provee la infraestructura de virtualización y un módulo específico de procesamiento (kvm-intel.ko o kvm-amd.ko. dependiendo del tipo de procesador sobre el cual corra). El componente de Kernel de KVM se encuentra incluido por definición en 2.6.20 y superiores.
  • XEN
Xen soporta ejecución de sistemas operativos invitados haciendo uso de las técnicas de Paravirtualización (PV) y virtualización Asistida por Hardware (HVM).

Tabla Comparativa

Aspecto a Comparar
XEN
KVM
Virtualbox
VMware
Full Virtualización
SI
SI
SI
SI
Paravirtualización
SI
SI
NO
NO
Licencia
GPL
GPL
GPL/Propietaria
Propietaria
Arquitecturas soportadas
i686, x86-64, IA64, PPC
i686, x86-64, IA64, PPC, S390
i686, x86-64
i686, x86-64
Rendimiento
Paravirtualización: Rápido
Virtualización Completa: Rápido
Paravirtualización: Rápido
Virtualización Completa: Rápido
Virtualización Completa: Rápida
Virtualización Completa: Rápida
Hotplug de Memoria y CPU
SI
SI
NO
SI
Necesita VT y AMD-V
Para Virtualización Completa
Requisito para cualquier usar cualquier técnica



Sabiendo esto se ha decidido hacer uso de XEN puesto que se ha encontrado mayor soporte y documentación para el mismo, además debo indicar que en un par de sitios leí que el rendimiento era 1 o 2 % mejor en XEN que en KVM, sin embargo, como no he podido comprobar esa información, no me basé en ella para mi decisión.

Instalación de XEN

    1.-Verificación de equipo

Como bien saben, yo soy fanático de Debian, por lo tanto, montaré mi equipo para máquinas virtuales (VM) en GNU/Linux Debian Stable (que para este momento es Debian Wheezy); ya teniendo una instalación limpia (totalmente nueva) de nuestro sistema operativo, procedo con la verificación y preparación del equipo para luego instalar y configurar XEN.

Lo primero que debemos hacer es comprobar que nuestro equipo soporte paravirtualización, para ello haremos uso del comando egrep.
"egrep es el componente más potente de la familia de órdenes grep. Al igual que fgrep, se puede utilizar para buscar múltiples objetivos. Lo mismo que grep, permite usar expresiones regulares para especificar los objetivos, pero proporciona un conjunto más completo y potente de expresiones regulares que grep. egrep acepta todas las expresiones regulares básicas reconocidas por grep, así como varias extensiones" http://nereida.deioc.ull.es/~pcgull/ihiu01/cdrom/unix/unix1/contenido/node77.html Marzo, 2014
    #egrep '(vmx|svm)' --color=always /proc/cpuinfo

La opción –color obliga al sistema a remarcar en color las opciones indicadas entre comillas.
Debe aparecer remarcado "VMX" si el equipo es INTEL o "SVM" si el equipo es AMD.

    2.- Instalando XEN

Procederemos a instalar XEN
    #aptitude install xen-linux-system-XXX xen-utils-4.0 bridge-utils

Xen trae su propio Kernel, y de ahora en adelante, necesitamos que el equipo al arrancar, bootee por él; para ello debemos cambiarle la prioridad al archivo de inicio del grub, esto se logra haciendo
    #mv -i /etc/grub.d/10_linux /etc/grub.d/50_linux

Ahora actualizamos el la configuración del grub con el comando
    #update-grub2

     3.- Configurando parámetros de red a las virtuales

Debemos editar el archivo principal de configuración del xen, para esto editaremos el archivo /etc/xen/xen-config.sxp
    #nano /etc/xen/xen-config.sxp

Y debemos descomentar las líneas que posean lo siguiente
    (network-script network-bridge)
    (vif-script vif-bridge)
    (dom0-min-mem 1024) 

Explico un poco todas:
(network-script network-bridge): Es un script de Xen para habilitar el modo bridge (puente) en las Maquinas Virtuales , de esta manera, el equipo HOST de MV recibe una IP y sus GUEST reciben otras, sin embargo todas las máquinas se conectarán sin inconvenientes a la red.

(vif-script vif-bridge): Este script se utiliza para controlar el modo bridge.

(dom0-min-mem 1024): Ponemos un mínimo de memoria al dom0 que es el XEN en realidad, esto con la finalidad de asegurarnos de que la RAM no baje nunca de ese limite y poder certificar que en ningún momento tenga asignada menos memoria de la necesaria para poder funcionar correctamente.

    4.-Configurando los parámetros que se le darán a las VM al crearlas

Primero debemos instalar el paquete xen-tools, para ello hacemos uso del comando
    #aptitude install xen-tools

El archivo /etc/xen-tools/xen-tools.conf contiene los parámetros iniciales de configuración de las MV, debemos editarlo
    #nano /etc/xen-tools/xen-tools.conf

dir = /xen/vm
install-method = debootstrap
 # Tamaño del /
size   = 10Gb
# Memoria RAM
memory = 256Mb
# Tamaño del Swap
swap   = 1024Mb
# Tipo de sistema de archivos para /
fs     = ext4
#La distribución a utilizar
dist   = wheezy
# Configuración de red de las virtuales
gateway    = 192.168.1.1
netmask    = 255.255.255.0

# Contraseña al sistema.
Passwd = 123456

# Previene que las VM utilicen algún repositorio genérico obligándolos a utilizar el repositorio del Dom0.
mirror = `xt-guess-suite-and-mirror --mirror`

# Ext3 posee algunos valores definidos tales como, noatime. Si deseas cambiarlos, devuelvelos a “defaults”.
ext3_options     = defaults

# Permitir al comando xen-create-image el uso de pygrub, de esta manera el Grub de las VM es utilizado por ellas, así no se hace necesario almacenar los Kernels fuera de las VM. En resumen, esto es para permitir que nuestras VM arranquen solas.
pygrub=1

Explicación de lo que se acaba de hacer

dir: hace referencia al directorio donde se guardarán las imágenes de las maquinas virtuales .
install-method: método de instalación del sistema operativo al crear la maquina virtual. Existen 4 tipos diferentes
  1. copy: Instala copiando recursivamente un directorio .
  2. debootstrap: instala un sistema basado en Debian dentro de un subdirectorio de otro sistema ya instalado
  3. rpmstrap: Exactamente lo mismo que debootstrap pero con sistemas RPM .
  4. tar: Instala descomprimiendo un fichero .
size: Tamaño asignada la imagen que se generará para la maquina virtual. Esto generara un “disk.img” de ese tamaño.
memory: Memoria asignada a la maquina virtual.
swap: Swap que se asigna a la maquina virtual. Esto generara un “swap.img” de ese tamaño.
fs: Sistema de ficheros de la maquina virtual.
dist: Distribución que se instalará en la maquina virtual.
gateway: Puerta de enlace de la tarjeta de red de la maquina virtual .
netmask: Mascara de red de la tarjeta de red de la maquina virtual .
passwd: Contraseña por defecto del usuario root de la maquina virtual .
mirror: Repositorios por defecto del sistema operativo de la maquina virtual.
ext3_options: Opciones de la extensión de archivos ext3 que se pueden dar al montar el sistema de archivos .

Con esto ya tenemos todo configurado, es hora de crear las maquinas virtuales.

    5.-Creamos una MV

Pedimos a nuestro xen que cree la imagen de nuestra primera virtual .
    #xen-create-image --hostname servidorWeb --ip 192.168.1.111 --vcpus 1

Este comando es demora bastante puesto que descarga los paquetes, los descomprime y luego los instala, por esta razón yo prefiero ejecutar el comando conectándome por ssh al equipo; así podría desde mi PC remota mandar a ejecutarse el comando, y a la vez, desde el propio xen podría abrir el archivo .log que me muestra exactamente lo que está haciendo el comando.

Entonces, desde otro equipo hago 
         $ssh root@MI-IP

Así me conecto por SSH al equipo

Ahora ejecuto
   #xen-create-image --hostname servidorWeb --ip 192.168.1.111 --vcpus 1 
Y desde el xen abro el archivo /var/log/xen-tools/NombreVM.log
        #tail -f /var/log/xen-tools/NombreVM.log
Una vez el comando haya creado la imagen y regresado entonces a nuestro prompt normal continuaremos con el paso 6.

    6.-Levantamos la MV
Ejecutamos el comando para que suba las .img que se acaban de crear.
    #xm create servidorWeb.cfg

Con esto ya se ejecuta nuestra máquina virtual en Debian Wheezy.

    7.- Comando útiles
Ahora bien, indico los comandos que se utilizan para gestionar las VM

Comando Función
xm shutdow servidorWeb Solicita a la VM que se apague
xm pause servidorWeb Pausar la VM para hacer respaldos y acciones especiales.
xm destroy servidorWeb Destruir una VM esto la forza a que el equipo se reinicie.
xm reboot servidorWeb Reiniciar una VM.
xm list Saber qué VM se están ejecutando en el equipo.
xm consoleNombreVM Conectarse a la VM desde el propio XEN. Nótese que a mi parecer es preferible instalar SSH en la VM y conectarse remotamente a ella; así no se congelan en la sala de servidores.
xm rename NombreActualVM NuevoNombreVM Cambiar el nombre de una VM
xm top Monitorear todas las VM en tiempo real
xm uptime Saber el tiempo que las VM llevan operativas
xm vcpu-list Visualizar cada una de las VM y la información sobre sus CPU
xm vcpu-set NombreVM 2 Cambiar el número de procesadores de una VM, en este ejemplo específico se está cambiando a 2
xm mem-max NombreVM 1024 Cambiar el valor de la memoria RAM máxima de una VM, en este ejemplo se está cambiando a 1024MB.

    8.-Pasos para remover una VM

Si en realidad quieres eliminar tu VM y que no se pueda utilizar nuevamente, el proceso a ejecutar es el siguiente:

Si la VM está corriendo, mándala a detener utilizando
    #xm destroy NombreVM
Borra las imagenes creadas
    #rm /xen/vm
Elimina el archivo de configuración de la VM ubicado en /etc/xen
    #rm /etc/xen/NombreVM.cfg

     9.-Cambiar el número de loops de XEN
Como root debemos ejecutar el siguiente comando
    #modprobe loop max_loop=64

Para más información al respecto, recomiendo la lectura de las siguientes URLs:

Virtualización VS Paravirtualización http://blogs.itpro.es/problemas/paravirtualizacion/ 

PD: Todas estas páginas fueron revisadas durante el mes de Marzo de 2015.
Copyleft 2015 - RAITE

lunes, 24 de noviembre de 2014

Servidor Web, Correo y DNS -- Parte VIII ISPConfig


Por último, nuestro ISPConfig, que herramienta más útil por Dios...

A ver, descargaremos el tar.gz, lo descomprimiremos y luego entraremos a la carpeta de instalación.
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

Acto seguido, corremos el script que lo instala
php -q install.php
Nos pedirá alguna información básica como el idioma a instalar el programa y la clave de root de MySQL, de resto, en mi caso personal, no cambié ningún valor, a todos les dejé por defecto presionando "enter"

Luego de culminado el proceso, puedes ingresar a ISPConfig haciendo uso de

https://TU-IP:8080/ o en su defecto https://Nombre-Equipo:8080/

Como login y clave debes usar admin admin.

Listo muchachos. Gracias por leerme.

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte VII SquirrelMail



Primero procederemos a instalar SquirrelMail
aptitude install squirrelmail
Y luego debemos configurarlo
squirrelmail-configure
Debemos decirle a SquirrelMail que estamos usando Dovecot-Imap/Pop3.

Inicialmente, nos aparecerá un menú principal, en el cual la primera opción que seleccionaremos es la de "Definir los valores específicos predeterminados para servidores IMAP, esto lo hacemos con la opción "D"

Luego indicaremos que nuestro servidor IMAP es "dovecot"

Presionaremos cualquier tecla para continuar.

S para guardar
Q para salir

Con esto está funcionando nuestro SquirrelMail, pero aún no podemos ingresar al mismo vía Web, para ello debemos habilitarlo en nuestro PHP.
cd /etc/apache2/conf.d/
ln -s ../../squirrelmail/apache.conf squirrelmail.conf
/etc/init.d/apache2 reload
Con los comandos anteriores creamos el ln de nuestro archivo de configuración Apache del SquirrelMail y reiniciamos apache.

Ahora abrimos nuestro archivo de configuración
nano /etc/apache2/conf.d/squirrelmail.conf
Y procedemos a añadir unas cuantas líneas al  "" quedando la sección como se muestra a continuación

  Options FollowSymLinks
 
    AddType application/x-httpd-php .php
    php_flag magic_quotes_gpc Off
    php_flag track_vars On
    php_admin_flag allow_url_fopen Off
    php_value include_path .
    php_admin_value upload_tmp_dir /var/lib/squirrelmail/tmp
    php_admin_value open_basedir /usr/share/squirrelmail:/etc/squirrelmail:/var/lib/squirrelmail:/etc/hostname:/etc/mailname
    php_flag register_globals off
 
Crearemos un directorio temporal para el uso de nuestro SquirrelMail
mkdir /var/lib/squirrelmail/tmp
Y definiremos que www-data sea su usuario, para que pueda jugar con el a su antojo, recordemos que este es el usuario Web.
chown www-data /var/lib/squirrelmail/tmp
Reiniciamos apache
/etc/init.d/apache2 reload
Para ingresar a nuestro correo utilizaremos
http://TU-IP/squirrelmail

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte VI FTP, Quotas y DNS



Ya sabemos bien que es un FTP (para cualquier duda, lea el post http://ojedareinaldo.blogspot.com/2014/03/ftp-desde-consola.html en el cual se define FTP y se habla de como ingresar a un servidor FTP desde cónsola de comandos). Ahora bien, debemos instalar en nuestro equipo el servicio FTP también, para ello procederemos a hacer uso del pure-FTP.

Pure-FTP es un servidor FTP libre (bajo licencia BSD), seguro, cumple los estándares y provee una calidad asegurada para sistemas de producción. Para mayor información puede referirse a su página oficial.
http://www.pureftpd.org/project/pure-ftpd (Inglés) Noviembre, 2014
aptitude install pure-ftpd-common pure-ftpd-mysql
Debemos asegurarnos de que el FTP está configurado para iniciar como standalone y con el chroot virtual activado, para esto debemos abrir el archivo pure-ftpd-common con nuestro editor favorito
nano /etc/default/pure-ftpd-common
El archivo debe tener estas dos líneas, tal como se indica
STANDALONE_OR_INETD=standalone

VIRTUALCHROOT=true
Debemos configurar también Pure-FTP para que permita sesiones TLS, esto con el fin de añadir mayor seguridad a nuestro servidor, para ello ejecutaremos el siguiente comando.
echo 1 > /etc/pure-ftpd/conf/TLS
Y crearemos igualmente los certificados SSL, primero creamos su carpeta.
mkdir -p /etc/ssl/private/
Y luego el certificado como tal.
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Se le solicitará cierta información, la cual debe llenar con la mayor exactitud posible ya que de ella dependerá la fiabilidad de su certificado SSL.

Luego procederemos a cambiarle la permisología al certificado SSL

chmod 600 /etc/ssl/private/pure-ftpd.pem

QUOTES

Ahora bien, ¿qué es una Quota?

Wikipedia nos permite saber que "...Una quota es un límite indicado por el administrador de sistema con el fin de restringir ciertos aspectos del uso del sistema de archvios, su objetivo principal como tal es indicar el máximo de espacio (mb) que un usuario puede llegar a poseer en un sistema determinado." http://en.wikipedia.org/wiki/Disk_quota (Inglés) Noviembre, 2014

Procederemos entonces a instalar las herramientas necesarias para el Quota
aptitude install quota quotatool
Y deberemos reiniciar nuestro demonio de Pure-FTP para que tome las configuraciones
/etc/init.d/pure-ftpd-mysql restart
Se debe ahora editar el fstab para que monte los quotes
nano  /etc/fstab
Y se añade la siguiente línea
/dev/mapper/server1-root /               ext4    errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0       1
Activamos los quotes
mount -o remount /
quotacheck -avugm
quotaon -avug
Instalaremos el servidor BIND DNS.
aptitude install bind9 dnsutils
Y ahora unas cuantas herramientas de administración y estadísticas Web.
aptitude install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl
Evitaremos que awstats nos envíe correos editando su configuración y comentando todas las líneas que generan reportes, para ello usaremos nuestro editor favorito.
nano /etc/cron.d/awstats
Quedando nuestro archivo de la siguiente manera
#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Copyleft 2014 - RAITE

Servidor Web, Correo y DNS -- Parte V Opcache y Estadísticas




PHP es un lenguaje interpretado, por lo tanto, con cada ejecución, el servidor tiene que compilar el código. Un sistema opcode cache se encarga de almacenar en memoria los códigos php compilados para evitar tener que compilarlos nuevamente.

Xcache es un opcode cacher veloz y estable totalmente testeado en sistema GNU/Linux. Para mayor información puede visitar su página oficial.

http://xcache.lighttpd.net/ (Inglés) Noviembre, 2014

Procederemos a instalar Xcache

aptitude install php5-xcache

Luego de instalarlo, deberemos reiniciar apache para que opere con nuestro opcode cacher

/etc/init.d/apache2 restart

PHP-FPM

Un manejador de procesos que entre sus funciones principales incluye

  • Estadísticas básicas de apache
  • Manejo avanzado de procesos con posibilidad de iniciarlos y finalizarlos
  • Habilidad de iniciar usuarios con diferentes uid/gid/chroot/ambiente
  • Reinicio de emergencia en caso de una destrución accidental por el opcode cacher

Procederemos entonces a instalar PHP-FPM

aptitude install libapache2-mod-fastcgi php5-fpm

Ahora deberemos activar el módulo y reiniciar apache


a2enmod actions fastcgi alias
/etc/init.d/apache2 restart
Copyleft 2014 - RAITE

miércoles, 3 de septiembre de 2014

Servidor Web, Correo y DNS -- Parte III Paquetes de servidores de correo y sus adicionales


Instalaremos ahora binutils, rkhunter, postfix y dovecot.

GNU BINUTILS es una colección de herramientas de programación que hacen uso de la librería de descripción binaria de archivos para ejecutar operaciones de bajo nivel en el equipo, las binutils han sido migradas para la mayoría de las variantes de UNIX, incluso para Android y OSX.

En las Binutils se encuentran ensambladores, compiladores entre otras utilidades.

Para mayor información al respecto pueden visitar http://www.gnu.org/software/binutils/ Agosto, 2014

RKHUNTER, su nombre hace alución a Rootkit Hunter o cazador de Kits de Root. Y la información del proyecto nos indica que es un escaner que nos permite estar seguros de que nuestro sistema se encuentra lo mas limpio posible, evitando herramientas malintencionadas en el mismo. El kit permite buscar kits de root (rootkits), puertas traseras (backdoors) y exploits en nuestro sistema.
http://rkhunter.sourceforge.net/ Septiembre, 2014

Dovecot fue definido en la primera entrega de esta serie, puede verla haciendo clic aquí: http://ojedareinaldo.blogspot.com/2014/08/servidor-web-correo-y-dns-parte-i.html Agosto, 2014

Bien, ya sabemos el software instalaremos para operar con los protocolos POP3 e IMAP, sin embargo, no tenemos aún alguno para dialogar con SMTP, para ello procederemos con la instalación de postfix.

Postfix es un servidor de correo creado para ser rápido, fácil de administrar y seguro, permite de igual manera su integración con otras aplicaciones que provean filtros contra spam y virus entre otras.
He aquí la página del proyecto.
http://www.postfix.org/ Agosto 2014

Para proceder a instalar los aplicativos anteriormente mencionados debemos proceder a hacer uso del siguiente comando:
aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve
Al terminar la descarga e instalación de paquetes, el sistema nos solicitará la siguiente información:

Tipo de configuración general? (General type of mail configuration)

Debemos seleccionar Internet Site pues nuestro correo será configurado para trabajar en la Web, no es un servidor de correo local pues.
Nombre del sistema de correo? (System mail name)
Usaremos nuestro DNS.
Debemos decirle a nuestro equipo que puertos van a someterse a TLS y SSL, esto se hace descomentando las secciones de submission y smtps en archivo /etc/postfix/master.cf con su editor favorito, en mi caso haré uso de nano.
nano /etc/postfix/master.cf
Debes dejar el archivo de la siguiente manera.
...
submission inet n       -       -       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
smtps     inet  n       -       -       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
#  -o milter_macro_daemon_name=ORIGINATING
...

Luego debemos proceder a reiniciar el Postifx haciendo uso del comando
/etc/init.d/postfix restart
Ahora debemos configurar MySQL para que escuche todas las interfaces de red, para ello abrimos el archivo /etc/mysql/my.cnf con nuestro editor favorito, en mi caso, nano.
nano /etc/mysql/my.cnf
Procederemos ahora a comentar la línea que ata MySQL con la ip local colocándole un símbolo # al inicio, de tal manera que quede así:
#bind-address           = 127.0.0.1
Como acabamos de hacer cambios a MySQL, debemos reiniciar su servicio para que el cambio tome efecto, esto lo hacemos con el siguiente comando:
/etc/init.d/mysql restart
Si queremos asegurarnos de que MySQL está escuchando conexiones por cualquier puerto de la red podemos hacer uso del siguiente comando:
netstat -tap | grep mysql
Obteniendo, entre otras cosas, una respuesta como la que sigue
tcp        0      0 *:mysql                 *:*                     LISTEN
Que nos indica que con el protocolo TCP, se está escuchando cualquier cosa que entre hacia MySQL, desde cualquier usuario; claro está que MySQL tendrá sus restricciones de acceso, sin embargo las mismas serán consideradas en él.

Ahora procederemos a instalar los paquetes que nos permitirán hacer el filtrado de spam y virus al correo, los cuales son: Amavisd-new, SpamAssassin, y Clamav.

Amavisd: es una interface de alto rendimiento que se ubica entre los MTA de correo y los filtradores de virus y spam, se comunica con MTA haciendo uso de SMTP, funciona mejor con Postfix, Courier y qmail. http://www.ijs.si/software/amavisd/ Septiembre, 2014

SpamAssasin: es un proyecto de filtro de correo electrónico para identificar Spam. Spamassassin hace uso de ina variedad de mecanismos, incluido el análisis de cabeceras y texto, filtrado "Bayesian" (un filtrado inteligente que hace uso de listado de palabras y diversas clasificaciones de texto para compararlo con el texto del correo, entre otros métodos...)
http://wiki.apache.org/spamassassin/ Septiembre, 2014

Clamav: Motor para detectar troyano, virus, malware y otras amenazas maliciosas. http://www.clamav.net/index.html Septiembre, 2014
aptitude install amavisd-new spamassassin clamav clamav-daemon zoo unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl
ISP Config 3 hace uso de Amavisd, el cual carga los filtros de SpamAssassin internamente, de tal manera podemos detener SpamAssassin para liberar algo de RAM (esto obviamente dependerá de las especificaciones del equipo que estemos usando), si deseamos hacerlo procederemos a utilizar los siguientes comandos
/etc/init.d/spamassassin stop
update-rc.d -f spamassassin remove
Copyleft 2014 - RAITE

miércoles, 27 de agosto de 2014

Servidor Web, Correo y DNS -- Parte II Instalación Servidor LAMP



Bueno, luego de haber obtenido y analizado los requerimientos, así como también observado algunos conceptos generales, procederemos a instalar los paquetes necesarios.

Primero debemos tener nuestro Debian instalado, en mi caso voy a hacerlo con una instalación totalmente fresca (nueva), lo único diferente en esta instalación es que estoy generando una partición especial para /var pues como allí voy a guardar todo lo de mi www (que no es más que el directorio Web de apache).

Teniendo ya el GNU/Linux Debian full instalado, procedo a convertirlo en un Web Server LAMP (Linux, Apache, MySQL y PHP); para ello instalo Apache2, PHP5 y phpMyAdmin, haciendo uso del siguiente comando.
aptitude install install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby libapache2-mod-python php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl memcached mysql-server-5.5 phpmyadmin mysql-client
Si se preguntan la utilidad específica de alguno de estos paquetes, siempre pueden hacer uso de un aptitude show xxx donde xxx sería el nombre del paquete, por ejemplo, aptitude show libexpat1 me dará la información específica de ese paquete, el cual "...contiene la biblioteca compartida ejecutable de expat, la biblioteca de manejo de XML de C. Expat es un manipulador orientado a flujos, en él la aplicación registra manejadores para cosas que el manipulador puede encontrar en el documento XML (como etiquetas de inicio)."

Sin embargo, a continuación mencionaré los paquetes que pueden parecer extraños
mcrypt es un programa de cifrado, destinado a reemplazar al antiguo crypt(1) de UNIX. Aunque puede hacer mucho más, ya que con su biblioteca libmcrypt puede cifrar y descifrar los siguientes algoritmos: BLOWFISH, TWOFISH, DES, TripleDES, 3-WAY, SAFER-sk64, SAFER-sk128, SAFER+, OKI97, GOST, RC2, RC6, MARS, IDEA, RIJNDAEL-128, RIJNDAEL-192, SERPENT, RIJNDAEL-256, CAST-128 (conocido como CAST5), CAST-256, ARCFOUR, ENIGMA, PANAMA, XTEA y WAKE.
El uso que le daremos es simplemente de seguridad (simplemente jajajaja), puesto que en el futuro cifraremos la información que pasa del servidor de correo a los clientes.

imagemagick es un conjunto de programas para crear, editar y componer imágenes de mapas de bits. Puede leer, convertir y escribir en diversos formatos (sobre 100) incluyendo DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG y TIFF. Use ImageMagick para trasladar, voltear, reflejar, rotar, escalar, recortar y transformar imágenes, ajustar los colores, aplicar varios efectos especiales, o dibujar texto, lineas, polígonos, elipses y curvas de Bezier. Lo usarán algunos códigos de nuestro servidor de correo.

memcached Sistema de caché de objetos en memoria de alto rendimiento.
Memcached optimiza específicamente aplicaciones de alta carga de servicio que están diseñadas para tomar ventaja de este sistema de acceso a memoria versátil y no bloqueante.

ssl-cert Es una envoltura sencilla para la utilidad de solicitud de certificados de OpenSSL a la que hay que entregar las variables de usuario correctas.
Además de los paquetes para el servidor, siempre es recomendable tener la hora del equipo sincronizada, por lo tanto recomiendo la instalación de los paquetes de NTP (Network Time Protocol)necesarios haciendo uso del siguiente comando
aptitude install ntp ntpdate
Para mayor información sobre NTP siempre tenemos Wikipedia http://es.wikipedia.org/wiki/NTP, Agosto 2014.

Y ya saben, cualquier duda sobre la utilidad de un paquete, pueden usar aptitude show paquete.
Copyleft 2014 - RAITE