Category Archives: Linux/Solaris/BSD

Actualizando Ubuntu

Acerca de la política de actualización

La política de actualizaciones del sistema operativo determina que tipos de actualizaciones disponibles serán tenidas en cuenta para ser sugeridas al usuario y ser finalmente instaladas en el equipo.

Las políticas disponibles corresponden a las siguientes.

  1. Tener en cuenta las versiones nuevas y estables (normal).
  2. Tener en cuenta sólo actualizaciones LTS (lts).
  3. Nunca tener en cuenta actualizaciones (never).

Para modificar la política de actualización vigente se debe editar el archivo /etc/update-manager/release-upgrades y ajustar el valor de la variable Prompt.

Este procedimiento también se puede realizar desde la interfaz gráfica de usuario ejecutando la aplicación Software & Updates y bajo el tab de Updates, modificar el valor de la opción Notify me of a new Ubuntu version.

Server Edition

$ sudo aptitude install update-manager-core
$ sudo do-release-upgrade

Desktop Edition

Utilizar la aplicación Update Manager o Software Updater desde la interfaz gráfica de usuario.

Ejecute el Update Manager (System > Administration > Update Manager)  o Software Updater desde Unity.

$ sudo /usr/bin/update-manager

Presione el botón Upgrade el cual se activará únicamente si se detecta una actualización disponible.

Enlaces

Uso de NX 3.5 con GNOME Fallback en Ubuntu 12.10

Introducción

Cómo se mencionó en el post anterior, la versión 3.5 de NX no soporta sistemas de escritorio como Unity o GNOME3 ya que no a su vez no soporta los efectos de escritorio compuesto provistos por Compiz.  Por este motivo es necesario utilizar un sistema de escritorio diferente.

En mi caso decidí experimentar con la versión fallback de GNOME3 con buenos resultados.  A continuación se detallan los proceso de instalación y configuración necesarios para utilzar este manejador de ventanas con NX 3.5.

Instalación de GNOME Fallback en el servidor

Para instalar el sistema de escritorio en el servidor es necesario ejecutar los siguientes comandos.

$ sudo apt-get install gnome-session-fallback
$ sudo apt-get install indicator-applet-appmenu

Verificar los tipos de sesiones disponibles en el servidor

Para listar las sesiones disponibles en el servidor se debe ejecutar el siguiente comando.

$ ls /usr/share/gnome-session/sessions/
gnome.session  gnome-classic.session  gnome-fallback.session  ubuntu.session

Las sesiones gnome y ubuntu las incluye por defecto Ubuntu y hacen referencia a Unity.  Las sesiones gnome-* son las instaladas por GNOME Fallback en el paso anterior, la diferencia entre estos dos tipos de sesiones consiste en que gnome-fallback no utiliza los efectos de Compiz por lo que es preferible utilizarlo en este contexto.

Configurar el cliente de NX para establecer conexiones utilizando GNOME Fallback

Desde el cliente de NX elija la sesión que desea modificar y presione el botón de configuración mostrado en la imagen a continuación.

Configuración del cliente NX

Configuración del cliente NX

En la congiruación de la sesión bajo las opciones del escritorio, seleccione Unix (para utilizar el protocolo NX), Custom (para personalizarlo) y presione el botón Settings.

Configurar sesión de NX

Configurar sesión de NX

En la configuración del escritorio, bajo la sección de aplicación seleccione la opción Run the following command y especifique el siguiente comando, siendo gnome-fallback el sistema de escritorio a utilizar.

gnome-session --session=gnome-fallback

Bajo la sección de opciones se recomienda marcar la opción New virtual desktop como se muestra a continuación.

Configuración de escritorio del cliente NX

Configuración de escritorio del cliente NX

Alternativa del lado del servidor

Si se desea evitar que cada cliente deba realizar esta modificación para utilizar el sistema de escritorio de GNOME Fallback, esta modificación puede realizarse del lado del servidor de la siguiente manera.

$ vi /usr/NX/etc/node.conf
COMMAND_START_GNOME='gnome-session --session=gnome-fallback'

O con la siguiente opción si se desea ejecutar al cliente NX en una ventana y tener mayor control sobre su configuración.

COMMAND_START_GNOME="/etc/X11/Xsession 'gnome-session --session=gnome-fallback'"

Enlaces

Instalación de NX 3.5 en Ubuntu 12.10 utilizando SSH y autenticación basada en contraseñas

Introducción

NX es un producto de NoMachine que permite acceder al escritorio de un servidor remoto.  A diferencia de software similar como VNC, NX ofrece por defecto el cifrado del tráfico a través de conexiones SSH y de SSH con túnel para el protocolo X, NX ofrece un mayor desempeño al optimizar la transmisión de datos.

NoMachine provee una versión gratuita para servidores Linux que se encuentra limitada a dos conexiones concurrentes.

En el pasado realicé la instalación de FreeNX, un fork del proyecto NX original el cual parece que ya no recibe actualizaciones.  En esta ocasión se va a realizar la instalación de NX 3.5 encontrándose también que versiones preliminares de la 4 pueden descargarse para experimentación.

Recomendaciones

En caso de actualizarse de una versión mayor es mejor desinstalar por completo los paquetes antiguos antes de instalar los nuevos.  Inclusive remover (o renombrar) el directorio del software.

$ sudo rm -rf /usr/NX

También debe tenerse en cuenta que la versión 3.5 de NX no soporta los entornos de escritorio que incluyan los efectos de escritorio compuesto provistos por Compiz, por este motivo se tendrán serios problemas al intentar acceder a escritorio remotos utilizando Unity o GNOME3.  En este caso se recomienda instalar otros manejadores de escritorio como XFCE o GNOME Fallback.

El transporte de la información se realiza a través de SSH así que el servicio (OpenSSH o similar) debe estar previamente instalado y funcionando.

Instalación en el cliente

Descargar del siguiente enlace el paquete cliente (NX Client Products) de la plataforma y arquitectura que corresponda.

http://www.nomachine.com/download.php

En este caso se realiza la instalación de la versión 3.5.0 para Ubuntu de 32 bits.

$ sudo dpkg -i nxclient_3.5.0-7_i386.deb

Instalación del servidor

Descargar del siguiente enlace los paquetes correspondientes a la plataforma y arquitectura del servidor.  Del lado del servidor es necesario instalar los paquetes de cliente, nodo y servidor.

http://www.nomachine.com/select-package-server.php?id=1&ids=2

En este caso se realiza la instalación de la versión 3.5.0 para Ubuntu Server de 64 bits.

$ sudo dpkg -i nxclient_3.5.0-7_amd64.deb
$ sudo dpkg -i nxnode_3.5.0-9_amd64.deb
$ sudo dpkg -i nxserver_3.5.0-11_amd64.deb

En algunas ocasiones la instalación del paquete servidor falla siendo requerido ejecutar la siguiente instrucción antes de volver a correr el comando de instalación mencionado anteriomente.

$ sudo /usr/NX/scripts/setup/nxserver --install

Autorizar a un usuario para realizar conexiones

Para autorizar a un usuario del sistema a realizar conexiones a su escritorio remoto se debe ejecutar el siguiente comando.

$ sudo /usr/NX/bin/nxserver --useradd USERNAME

Para mas información acerca de la gestión de los usuarios consultar la sección #5 (NX Users Administration on the Server Host) del NX Server Administrator’s Guide.

Realizar la conexión desde el cliente

Desde el equipo cliente ejecute la aplicación nxclient.

$ /usr/NX/bin/nxclient

Desde ella especifique la información básica para la conexión, incluyendo como mínimo la siguiente información.

  1. Nombre para la sesión
  2. Dirección o nombre del servidor
  3. Puerto del servicio SSH
  4. Nombre de usuario para realizar la conexión
  5. Contraseña del usuario especificado

Enlaces

  1. Getting Started with NX.
    http://www.nomachine.com/documents/getting-started.php
  2. NX Free Edition (for Linux & Solaris)
    http://www.nomachine.com/select-package-server.php?id=1&ids=2
  3. Documentación de instalación y configuración.
    1. Cliente
      http://www.nomachine.com/documents/client/install.php
      http://www.nomachine.com/documents/configuration/client-guide.php
    2. Nodo
      http://www.nomachine.com/documents/node/install.php
    3. Servidor
      http://www.nomachine.com/documents/server/install.php
      http://www.nomachine.com/documents/admin-guide.php
  4. Instalación de NoMachineNX en Ubuntu
    https://help.ubuntu.com/community/NomachineNX
  5. Why can't I run the Unity or the Gnome 3 desktop environments with NX?
    http://www.nomachine.com/ar/view.php?ar_id=AR0500591

Actualizar a LibreOffice 4 desde Ubuntu 12.10 (o posteriores)

Introducción

La actualización de los paquetes de LibreOffice suele tomar un tiempo adicional desde que son oficialmente liberados hasta que se encuentran disponibles en los repositorios de Ubuntu para ser actualizados.  Si se desea realizar esta actualización rápidamente y utilizando el sistema de paquetes de Ubuntu es necesario agregar el repositorio oficial de LibreOffice al sistema como se muestra a continuación.

Método #1: para una versión específica (recomendado)

Existen dos formas básicas en las que es posible instalar una versión recién publicada de LibreOffice.  El primero de los métodos corresponde con agregar el repositorio exacto de la versión específica que se desea instalar, en este caso, la 4.x.  Esto se hace de la siguiente manera.

$ sudo add-apt-repository ppa:libreoffice/libreoffice-4-0
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Método #2: para la versión mas reciente

Agregando el repositorio general de LibreOffice es posible mantener el sistema actualizado a la última versión disponible.  Debe tenerse en cuenta que es posible que se actualice el software a versiones no necesariamente estables y se actualicen también paquetes relacionados con LibreOffice.  Para hacer esto se deben realizar los pasos mostrados a continuación.

$ sudo add-apt-repository ppa:libreoffice/ppa
$ sudo apt-get update
$ sudo apt-get dist-upgrade

Instalar otros manejadores de ventanas en Linux Ubuntu

Cinnamon

$ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
$ sudo apt-get update
$ sudo apt-get install cinnamon

 Mate

$ sudo add-apt-repository "deb http://packages.mate-desktop.org/repo/ubuntu quantal main"
$ sudo apt-get update
$ sudo apt-get install mate-archive-keyring
$ sudo apt-get update
$ sudo apt-get install mate-core
$ sudo apt-get install mate-desktop-environment

Identificar la información de red de una interfaz dinámica

Introducción

Comúnmente configuramos las interfaces de red con una dirección dinámica, es decir, un servidor DHCP disponible en la red se encarga de asignar (de manera dinámica) la dirección de red del equipo y otra información relacionada con esta.

Esto es algo muy cómodo y flexible, sin embargo en algunos casos (servidores por ejemplo) no es conveniente tener una dirección dinámica y es necesario configurarla de manera estática, es decir, valores predefinidos que no se modifican en el tiempo.  Para hacer esto es necesario conocer la información de la red que puede determinarse a partir de la configuración dinámica de la interfaz.

Determinar la información de red

La máscara de la subred (netmask) puede determinarse utilizando el comando ifconfig con la interfaz de red elegida (eth1 en este caso) verificando el valor de Mask.  De manera similar puede obtenerse la dirección de broadcast con el valor de Bcast.

$ ifconfig eth1
    eth1      Link encap:Ethernet  HWaddr 00:23:08:dc:cf:35
              inet addr:192.168.60.133  Bcast:192.168.61.255  Mask:255.255.254.0
                                        ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
              inet6 addr: fe80::223:8ff:fedf:cf31/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:2046 errors:0 dropped:0 overruns:0 frame:62938
              TX packets:65 errors:11 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:277651 (277.6 KB)  TX bytes:13904 (13.9 KB)
              Interrupt:17

La puerta de enlace (gateway) puede determinarse mediante el uso del comando route de la siguiente manera.

$ route | grep default
    default         192.168.20.1    0.0.0.0         UG    0      0        0 eth0
                    ^^^^^^^^^^^^

Los servidores DNS pueden obtenerse de la información registrada en el archivo resolv.conf.

$ cat /etc/resolv.conf | grep nameserver
    nameserver 8.8.8.8
    nameserver 8.8.4.4

 

Montar una partición cifrada en Ubuntu

Introducción

Las versiones recientes de los sistemas operativos como Ubuntu permiten que se cifren las particiones (usualmente la que contiene a /home) para evitar así que terceros tengan acceso a la información contenida en estas si se obtiene el acceso físico a las mismas.

Esta mejora en la seguridad algunas veces se convierte en problema cuando por razones válidas es necesario acceder a esta partición desde otro sistema diferente del original.  Tal es el caso cuando se desactiva o pierde la contraseña del usuario administrador.

En ese caso es necesario iniciar el sistema con un livecd de Ubuntu (o montarlo físicamente en otro equipo), montar la partición que contenga al sistema de archivos raíz y realizar las modificaciones necesarias en los archivos de configuración para garantizar el futuro acceso a la cuenta de usuario en cuestión.  Estos pasos se ven modificados cuando la partición a montarse se encuentra cifrada.

Montar la partición cifrada

Identificar cual es la partición que se desea montar.

$ sudo fdisk -l
   Device Boot      Start         End      Blocks   Id  System
   /dev/sda1              63       96389       48163+  de  Dell Utility
   /dev/sda2   *       98304   163938303    81920000    7  HPFS/NTFS/exFAT
   /dev/sda3       163938304   167843839     1952768   82  Linux swap / Solaris
   /dev/sda4       167845886   234440703    33297409    5  Extended
   /dev/sda5       167845888   189327359    10740736   83  Linux
   /dev/sda6       189329408   234440703    22555648   83  Linux

En este ejemplo se determina que la partición que se desea montar temporalmente es /dev/sda5 que contiene al sistema de archivos raíz.

Instalar los paquetes requeridos si estos no se encuentran aún en el sistema.

$ sudo apt-get install lvm2 cryptsetup

Agregar el módulo del kernel necesario para acceder a los dispositivos de bloque cifrados.

$ sudo modprobe dm-crypt

Configurar al módulo de cifrado de Linux para que reconozca a la partición que se va a montar.

$ sudo cryptsetup luksOpen /dev/sda5 crypt1

En este punto el sistema solicita al usuario la contraseña secreta (passphrase) que se utilizó para el cifrado de la partición.

Identificar los grupos de volúmenes cifrados disponibles.  El nombre obtenido aquí debe tenerse en cuenta para un paso posterior.  En el caso de la partición cifrada por defecto se encontró que el nombre del grupo era ubuntu.

$ sudo vgscan --mknodes

Crear un directorio que servirá como punto de montaje para la partición cifrada.

$ mkdir /montaje

Montar la partición cifrada en el punto de montaje recién creado.

$ sudo mount /dev/ubuntu/root /montaje

A partir de este momento el sistema de archivos cifrado puede accederse normalmente bajo el punto de montaje establecido.  Por ejemplo para acceder gráficamente a sus archivos es necesario utilizar las herramientas del sistema.

$ sudo nautilus /montaje

Desbloquear un usuario

Una vez se pueda acceder al sistema de archivos raíz de la máquina afectada es posible realizar tareas de gestión de los usuarios como desbloquear cuentas o cambiar sus contraseñas.

Primero es necesario tomar temporalmente a la partición montada como partición raíz del sistema para que sean tenidos en cuenta sus usuarios durante las tareas de administración y no los del livecd, para hacer esto es necesario ejecutar el siguiente comando.

$ sudo chroot /montaje

Desbloquear las cuentas de usuario requeridas.

$ sudo passwd -u usuario

O simplemente modificar sus contraseñas.

$ sudo passwd usuario

Una vez terminadas las modificaciones que se iban a realizar sobre la partición cifrada se debe reiniciar el sistema normalmente.

Instalación de un escritorio en Linux Ubuntu Server 12.10

Introducción

La edición de servidores de Ubuntu viene por defecto sin un escritorio gráfico lo cual es preferible por motivos de seguridad y desempeño.  Sin embargo existen algunos casos en los que es deseable contar con una interfaz gráfica de usuario en el servidor, para estos casos es posible instalar estos paquetes siguiendo el procedimiento mostrado a continuación.

Instalar el escritorio

El escritorio por defecto para Ubuntu es Unity el cual puede instalarse ejecutando el siguiente comando.

$ sudo apt-get install ubuntu-desktop

También es posible instalar un escritorio diferente a Unity, por ejemplo KDE de la siguiente manera.

$ sudo apt-get install kubuntu-desktop

O XFCE como se muestra a continuación.

$ sudo apt-get install xubuntu-desktop

Instalación reducida

La instalación del escritorio incluye por defecto los paquetes de las aplicaciones complementarias que en caso del servidor muy probablemente no se deseen instalar.  Para omitir el instalar estas aplicaciones adicionales se deberá realizar la instalación del escritorio con el modificador mostrado a continuación dependiendo de si se utiliza apt-get para realizar la instalación.

$ sudo apt-get install ubuntu-desktop --no-install-recommends

O aptitude.

$ sudo aptitude install ubuntu-desktop --without-recommends

Como hecho curioso los dos modificadores son análogos en su funcionalidad sin embargo parecen incluir diferentes paquetes durante su ejecución.

Configuración de red en Ubuntu 12.04 o posterior

Introducción

La configuración de red de un servidor puede hacerse de una de las siguientes maneras: estática o dinámica, en la primera de ellas se especifica por completo su información mientras que en la segunda se prefiere que un servidor DHCP que debe estar presente en la red, determine por sus propios medios la configuración de red del servidor.

A partir de la versión 12.04 de Ubuntu se introdujeron algunos cambios en la configuración de red, especialmente el hecho de que los servidores DNS para la configuración estática ya no se agregan en /etc/resolv.conf sino directamente en el archivo de /etc/network/interfaces, por este motivo vale la pena recordar el procedimiento para configurar las interfaces de red manualmente.

Configuración de la interfaz de loopback

$ vi /etc/network/interfaces
    # The loopback network interface
    auto lo
    iface lo inet loopback

Configuración de una interfaz con DHCP

$ vi /etc/network/interfaces
    # The primary network interface
    auto eth0
    iface eth0 inet dhcp

Configuración de una interfaz con información estática

$ vi /etc/network/interfaces
    # The primary network interface
    auto eth0
    iface eth0 inet static
       address 192.168.1.250
       netmask 255.255.255.0
       gateway 192.168.1.254
       dns-nameservers 8.8.8.8 8.8.4.4

Una vez reiniciado el servicio se generará automáticamente la información de DNS a partir del parámetro dns-nameservers especificado.

$ cat /etc/resolv.conf
    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 8.8.8.8
    nameserver 8.8.4.4

Enlaces

Crear una granja de wikis en dominios virtuales con Dokuwiki

Introducción

Dokuwiki es un excelente software para la implementación de sitios wiki en internet.  Una de las facilidades que tiene y que había experimentado sin éxito hasta ahora, es la creación de granjas de wikis que permiten tener una única instalación del software (farm) y a partir de ella crear diferentes wikis (animals) independientes con las ventajas que trae consigo la centralización de la distribución para actualizaciones e instalación de plantillas y complementos.

La instalación de la granja puede realizarse de dos maneras: mediante virtual hosts que permiten utilizar cualquier tipo de dominio o subdominio o mediante el uso de archivos ".htaccess" que sólo permiten utilizar subdirectorios bajo un dominio específico.  La presente documentación detalla el procedimiento para crear una granja de wikis con Dokuwiki utilizando virtual hosts.

Procedimiento

Instalación de Dokuwiki

El primer paso consiste en realizar una instalación convencional de Dokuwiki en una ubicación que sea pública para el servidor web.  Para efectos de este ejercicio esta instalación se realizó bajo la ruta /home/jimezam/public_html/wiki.

Activación de la granja

A continuación se debe activar el modo farm en el wiki recién instalado copiando y modificando el archivo preload.php.

$ cp ~/public_html/wiki/inc/preload.php.dist ~/public_html/wiki/inc/preload.php
$ vi ~/public_html/wiki/inc/preload.php
    // set this to your farm directory
    if(!defined('DOKU_FARMDIR')) define('DOKU_FARMDIR', '/home/jimezam/farm/');
    // include this after DOKU_FARMDIR if you want to use farms
    include(fullpath(dirname(__FILE__)).'/farm.php');

La ubicación establecida como la constante DOKU_FARMDIR deberá corresponder con el directorio bajo el cual se ubicarán los archivos de datos de los wikis que se creen en la granja.  En este caso los animales estarán almacenados bajo/home/jimezam/farm.  Es preferible que esta ubicación se encuentre por fuera del árbol de directorios publicados con el servicio web o se impida su acceso directo mediante el uso de .htaccess.

Si no se cuenta con una versión reciente de Dokuwiki es posible que los archivos farm.php y preload.dist.php no se encuentren disponibles, en ese caso es posible descargarlos de su sitio web.

Creación de un nuevo Dominio

Los sitios wiki a crearse en la granja deberán ubicarse bajo los dominios o subdominios deseados.  Para la creación de estos se deberán utilizar las herramientas convencionales, la única restricción consiste en que la configuración de todos los virtual host de Apache hagan referencia a la instalación de Dokuwiki como su DOCUMENT_ROOT.

NameVirtualHost *
<VirtualHost *>
    # this is the URL of your wiki animal
    ServerName miWiki.miDominio.com
    # the document root always needs to be the DokuWiki *farmer* directory
    DocumentRoot /home/jimezam/public_html/wiki/
</VirtualHost>

 Creación de un wiki (desde cero)

Para crear un nuevo wiki desde cero en la granja se debe crear un directorio bajo el DOKU_FARMDIR cuyo nombre coincida con el del dominio que se utilizará para accederlo.

En esta ubicación se deberá descomprimir el contenido de la plantilla de los animales.

$ cd /home/jimezam/farm
$ wget https://www.dokuwiki.org/_media/dokuwiki_farm_animal.zip --no-check-certificate
$ unzip dokuwiki_farm_animal.zip
$ mv _animal miWiki.miDominio.com

Configuración del nuevo wiki

Para configurar el wiki recién creado acceda normalmente al dominio especificado utilizando un navegador web autentíquese con el usuario admin cuya contraseña es admin también y realice las acciones de configuración necesarias.

También es necesario ajustar la configuración de las listas de control de acceso (ACL) bajo Admin > Access Control List Management ya que por defecto el animal permitirá la consulta (read) y escritura (edit) pública lo que rápidamente atraerá a SPAM bots.

Por ejemplo, si desea que la wiki pueda ser consultada libremente por los usuarios pero que sólo los usuarios registrados y autenticados puedan modificarla debería ajustar sus ACL de la siguiente manera propuesta.

Dokuwiki ACL

Consideraciones de seguridad

Se debe tener en cuenta que una vez finalizado el procedimiento se termina con dos wikis: el primero corresponderá con la granja y el segundo con el animal recién creado.  En ambos casos es recomendable que como mínimo realice su configuración básica y ajuste la contraseña del usuario admin según considere prudente.

Enlaces