27 dic. 2010

Tres clientes Twitter más para Ubuntu

Desde que publiqué el artículo Cuatro clientes Twitter para Ubuntu no ha pasado mucho tiempo, sin embargo ya han aparecido interesantes alternativas a los programas que allí se comentaban. Vamos a hacer un repaso a algunas de estas novedades señalando las principales ventajas de cada una de ellas.

  • Hotot
Este ligero y flexible cliente de Twitter tiene un aspecto realmente bueno y un consumo de recursos muy bajo.

Para instalarlo ejecutamos:
sudo add-apt-repository ppa:hotot-team && sudo apt-get update && sudo apt-get install hotot

Una vez instalado podemos lanzarlo desde la consola escribiendo hotot & o desde el menú Aplicaciones - Internet - Hotot Twitter Client

Hotot

Sus principales ventajas:
- Consumo de RAM: 33mb
- Soporta extensiones
- Previsualización de imágenes sin necesidad de cargarlas en el navegador
- Se integra en el sistema de notificaciones de Gnome y KDE
- Basado en Python

  • Turpial
Sus características son muy similares a las de Hotot, y destaca también por ser sencillo, ligero y de cuidada estética.

Para instalarlo ejecutaremos:
sudo add-apt-repository ppa:effie-jayx/turpial && sudo apt-get update && sudo apt-get install turpial

Una vez instalado lo tendremos disponible desde el menú Aplicaciones - Internet - Turpial

Turpial

Sus principales ventajas:
- Consumo de RAM:22,4mb
- Basado en Python
- Capacidad para "silenciar" temporalmente usuarios
- Buen equilibrio entre sencillez y configurabilidad

  • TweetDeck
Este es seguramente el cliente más compelto que he probado, aunque tiene una terrible desventaja frente a los demás: está basado en el sistema Air de Adobe, lo cual significa que es un gran consumidor de recursos.

Para instalarlo necesitaremos el entorno Air, podemos descargarnos el paquete .deb directamente de http://get.adobe.com/es/air/ e instalarlo con el gestor de paquetes. Una vez instalado vamos a la web de TweetDeck y pulsamos sobre el botón de descarga.

Una vez instalado tendremos disponible el programa desde el menú Aplicaciones - Accesorios - TweetDeck


TweetDeck

Sus principales ventajas:
- Multiplataforma (Linux, Windows, Mac)
- Soporta Twitter, Facebook, Buzz, Myspace y otras redes sociales populares
- Previsualización de videos e imágenes
- Publicación de tweets programados
- Sincronización y respaldo de la cuenta
- Twitscoop y Trending Topics, listas, filtros...

Entre sus desventajas:
- Consumo de RAM: 93mb
- Adobe Air no se lleva muy bien con los sistemas de 64bits

  • Más información
Twitter
Hotot

20 dic. 2010

Seguridad en Ubuntu (VI) - Herramientas de análisis del sistema

Un aspecto importante en la seguridad y que mucha gente ignora son los análisis más o menos periódicos del sistema. Estos análisis nos ayudarán a detectar posibles intrusiones, evaluar la seguridad del sistema y preveer cuales son los principales riesgos.

Existen numerosas herramientas para estas tareas, algunas de ellas muy sencillas, otras muy complejas. En este artículo os voy a presentar algunas de las que me han parecido más útiles y sencillas de usar.

  • ¿Qué puertos/servicios tengo abiertos? nmap
La mayoría de intrusiones remotas se producen por fallós en los servicios que damos al exterior. Estos servicios abren puertos a través de los cuales es teóricamente posible obtener acceso al sistema.

El comando nmap nos servirá (entre otras cosas) para listar estos servicios:
sudo apt-get install nmap
nmap localhost

Esto instalará nmap y listará los puertos/servicios que ofrece nuestro sistema, en mi caso por ejemplo este es el resultado:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-12-09 14:14 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00060s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost.localdomain
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp

Estos resultados corresponden a la compartición de archivos mediante Samba (puertos 139 y 445), al servicio de impresora de red (puerto 631) y al servidor de archivos ftp que he instalado (puerto 21).

Si veis puertos o servicios listados que no necesitais podeis desactivarlos desinstalando el paquete correspondiente o modificando los scripts de arranque siguiendo este artículo Optimizar El Arranque (II) Bum

Nota: si no sabeis exactamente lo que hace un puerto/servicio podeis consultar la web http://www.speedguide.net/ports.php

Otro punto importante a escanear, es el router (principalmente para aquellos que teneis conexiones ADSL), este escaneado nos mostrará qué puertos/servicios son directamente accesibles desde el exterior.
nmap 192.168.1.1

Tan solo hay que darle nmap la dirección IP de nuestro router. En mi caso este fue el resultado:
Starting Nmap 5.21 ( http://nmap.org ) at 2010-12-09 16:30 CET
Nmap scan report for 192.168.1.1
Host is up (0.0035s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http

Estos resultados corresponden a los métodos de acceso a la configuración del router (por telnet puerto 23 y web puerto 80) y a la redirección del puerto ftp (puerto 21) a mi servidor local de archivos.

Si veis puertos o servicios listados que no necesitais podeis desactivarlos o restringir el acceso desde el exterior configurando correctamente las opciones de vuestro router.

Nota: podeis comprobar qué puertos/servicios son visibles desde el exterior con el escaneador online de http://www.speedguide.net/portscan.php

  • ¿Me han colado algún troyano? rkhunter
Un troyano es un tipo de software malicioso que tiene generalmente como propósito el robo de información privada del sistema infectado. Se distinguen de los virus en que generalmente no provocan daños visibles.

GNU/Linux no es invulnerable a este tipo de software y la infección es relativamente fácil, para saber si hemos sido "infectados" por algún tipo de troyano tenemos la herramienta rkhunter, su instalación es sencilla
sudo apt-get install rkhunter

Una vez instalado lo ejecutaremos con la orden:
sudo rkhunter -c

Este comando ejecutará una serie de tests en busca de troyanos y dará como resultado final un informe como este:
System checks summary
=====================

File properties checks...
Files checked: 131
Suspect files: 0

Rootkit checks...
Rootkits checked : 242
Possible rootkits: 0

Applications checks...
All checks skipped

The system checks took: 1 minute and 46 seconds

All results have been written to the log file (/var/log/rkhunter.log)

One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

Si apareciese algún troyano el propio programa nos dará instrucciones sobre como eliminarlo y enlaces con más información del problema.


  • ¿Qué usuarios entran en el sistema? lastlog
Todos los accesos al sistema quedan registrados y podemos consultar este registro para ver si alguien está accediendo a nuestro ordenador tanto remota como localmente.

Para ver el registro de entradas ejecutaremos el comando lastlog:
lastlog | grep -v Nunca
Nombre Puerto De Último
dani tty1 sáb nov 27 14:56:04 +0100 2010

Aquí comprobaremos que no hay accesos no controlados, en caso de aparecer entradas sospechosas lo más recomendable es cambiar la contraseña del usuario comprometido y ejecutar rkhunter para asegurarnos de que no nos han dejado ningún regalo camuflado.

  • Más información
Escaneador de puertos on-line: http://www.speedguide.net/portscan.php
Ayuda para routers ADSL: http://www.adslayuda.com/



11 oct. 2010

Cómo restaurar programas y configuraciones tras una reinstalación

Ahora que acaba de salir la nueva versión de Ubuntu (Maverick Meerkat 10.10) se nos plantea el eterno dilema ¿actualizar o hacer una instalación limpia? Veamos las ventajas de cada método.

Actualizar: la principal ventaja es que queda el sistema exactamente igual que lo teníamos antes de la actualización, con las mismas configuraciones y los mismos programas instalados, pero con todas las novedades y actualizaciones de la nueva Ubuntu.

Instalación limpia: deja el sistema limpio, asegurando que todo funciona perfectamente y que no arrastramos errores de configuración anteriores.

En la mayoría de los casos lo ideal sería una mezcla: un sistema limpio pero manteniendo las configuraciones de usuario y los programas manualmente instalados con anterioridad. En este artículo veremos como conseguir esto mismo, un sistema instalado de cero pero manteniendo los programas y las persoanlizaciones que teníamos en el sistema anterior.

  • Mantener las configuraciones de usuario
Todas las opciones de usuario, sin excepción, están en el directorio /home, lo único que tenemos que hacer es conservar esta carpeta inalterada.

Pueden darse dos situaciones diferentes, que el directorio /home esté en la misma partición que el resto del sistema (con lo cual su contenido se borrará con la nueva instalación) o que esté en una partición independiente.

/home en una partición independiente: este caso nos facilita mucho las cosas, lo único que deberemos hacer es seleccionar particionado manual durante el proceso de instalación y asegurarnos de que la partición /home vuelve a montarse en /home y NO está marcada la casilla formatear.

/home en la partición raiz: en este caso deberemos hacer una copia de seguridad de todo el directorio /home ya que este se borrará durante la instalación.
1. Crear una copia de seguridad ANTES de la actualización:
cd / && sudo tar cvfz backup_home.tar.bz2 /home
Guardamos el archivo backup_home.tar.bz2 en un sitio que sepamos que no se va a borrar, por ejemplo una unidad USB

2. Instalar el sistema nuevo: instalamos la nueva Ubuntu con normalidad

3. Restaurar la copia de seguridad DESPUÉS de la actualización:
cd / && sudo tar xvfz backup_home.tar.bz2

Nota: para que este método funcione bien los nuevos usuarios deben llamarse igual que los del sistema antiguo.

  • Restaurar los programas instalados
Otro tema que puede llevarnos un buen rato tras una instalación es volver a instalar todos los programas que teníamos con anteioridad, sin embargo esto puede solucionarse con tan sólo dos comandos:

1. Obtener la lista de programas instalados: ANTES de la actualización, en el sistema antiguo obtendremos la lista de programas instalados con la orden:
sudo dpkg --get-selections | grep '[[:space:]]install$='| awk '{print $1}' > lista_de_paquetes.txt
Guardamos el archivo lista_de_paquetes.txt en un sitio que sepamos que no se va a borrar, por ejemplo una unidad USB

2. Instalar el sistema nuevo: instalamos la nueva Ubuntu con normalidad

3. Reinstalar todos los programas: DESPUÉS de la instalación no tendremos los programas instalados manualmente, para recuperarlos usaremos el archivo lista_de_paquetes.txt de la siguiente manera:
cat lista_de_paquetes.txt | xargs sudo aptitude install

Nota: este sistema sólo sirve para los programas instalados usando el gestor de paquetes, no servirá para programas compilados manualmente o instalados usando cualquier otro método.

  • Otras personalizaciones
Puede darse el caso de que tengamos otras personalizaciones hechas manualmente en el sitema, por ejemplo una modificación del sistema de arranque en /boot, los archivos de un servidor web en /var/www o archivos de configuración del sistema en /etc por poner algunos ejemplos.

En este caso haremos una copia de seguridad de la carpeta o carpetas afectadas y la restauraremos en el sistema actualizado:
cd / && sudo tar cvfz backup.tar.gz /carpeta1 /carpeta2 ... # Crear copia de seguridad
cd / && sudo tar xvfz backup.tar.gz # Restaurar copia de seguridad

  • Más información
Ubuntuforums: Instal·lar desde dpkg --get-selections
Mover /home a una partición independiente: http://psychocats.net/ubuntu/separatehome (inglés)
Restaurar repositorios (y sus claves) añadidos manualmente: http://www.linuxmint-hispano.com/foro/?/topic,6036.0.html



20 sept. 2010

Seguridad en Ubuntu (V) - El antivirus

Si bien GNU/Linux es un sistema famoso por su seguridad, robustez y ausencia de virus (aunque alguno hay), por suerte o por desgracia nuestro sistema operativo favorito suele convivir con otros sistemas mucho más vulnerables al ataque de los virus, ya sea en el mismo ordenador, dentro de una red local o en internet. Por este motivo existen soluciones de software antivirus que podemos instalar y ejecutar desde Ubuntu.

  • ¿Para qué puedo necesitar un antivirus en GNU/Linux?
Escanear particiones de Windows: si por ejemplo descargamos archivos mediante programas p2p y luego abrimos estos archivos desde windows podríamos infectarnos con virus, una manera de evitarlo es escanearlos desde Ubuntu antes de abrirlos.

Mantener la partición $HOME libre de virus: aunque es poco probable podría darse el caso de que archivos descargados en Ubuntu estuviesen infectados y que estos acabasen afectando al sistema a través de programas como por ejemplo Wine. Para evitarlo escanea todo lo que descargues de fuentes no fiables.

Añadir un filtro antivirus al servidor de correo: si nuestro sistema Ubuntu es servidor de correo o pasarela de otras estaciones de trabajo windows puede ser una buena idea instalar un antivirus residente que analice y elimine cualquier amenaza antes de que ésta llegue a los ordenadores "sensibles.


  • Antivirus nativos
ClamAV: ClamAV es un antivirus de código abierto, especialmente diseñado para el análisis en servidores de correo. Este antivirus se encuentra en los repositorios de Ubuntu, para su instalación ejecutaremos:
$ sudo aptitude install clamav clamtk

Finalizada la instalación tenemos la interfaz gráfica disponible en el menú Aplicaciones - Accesorios - Analizador de Virus. Su uso es muy intuitivo permitiendonos escanear cualquier carpeta o archivo del sistema.

ClamAV escaneando una partición Windows

Entre sus características más destacables encontramos la posibilidad de programar el escaneado (desde el menú Avanzado - Planificador), la posibilidad de funcionar en modo residente (instalando el paquete clamav-daemon), interfaz gráfica para Gnome (clamtk) y KDE (klamav), opción de poner archivos en cuarentena...


Avast: Avast también dispone de una versión para GNU/Linux gratuita para uso personal no comercial (debereis registraros en su web rellenando el formulario de registro). Aunque no está en los repositorios podemos descargar el paquete deb directamente desde su web avast! Linux Edition (DEB package)

Una vez descargado el archivo lo instalaremos con la orden:
$ sudo dpkg -i avast4workstation_1.3.0-2_i386.deb

Incomprensiblemente la instalación no supo crear los enlaces correspondientes en el menú de Gnome, por lo que fue necesario arrancarlo desde un terminal con la orden:
$ avastgui

Avast escaneando $HOME

Su funcionamiento es muy intuitivo, antes de nada actualizaremos la base de datos y una vez acabada la actualización procederemos a escanear las carpetas seleccionadas o bien el sistema entero (no recomendable).


AVG: AVG no está en los repositorios, pero dispone de paquete deb (se echa en falta una versión específica de 64bits) que podeis descargar desde su propia web avg85flx-r855-a3656.i386.deb. Una vez descargado el archivo lo instalaremos con la orden:
$ sudo dpkg -i avg85flx-r855-a3656.i386.deb

Una vez instalado podemos ejecutarlo desde linea de comandos pasandole como parámetro el directorio que queremos escanear en busca de virus.
$ avgscan ~
AVG command line Anti-Virus scanner
Copyright (c) 2010 AVG Technologies CZ

Virus database version: 271.1.1/3137
Virus database release date: Wed, 15 Sep 2010 20:34:00 +02:00


Files scanned : 8451(8443)
Infections found : 0(0)
PUPs found : 0
Files healed : 0
Warnings reported : 0
Errors reported : 0

  • Más información
ClamAV

13 sept. 2010

Seguridad en Ubuntu (IV) - El cortafuegos

Tras el parón veraniego retomamos los artículos de seguridad con uno dedicado al cortafuegos (o firewall).

Según la Wikipedia, un cortafuegos es:
".. un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios."

Para lo que nosotros queremos podríamos definir el cortafuegos como una serie de reglas con las cuales filtraremos y controlaremos todo el tráfico de red entrante y saliente de nuestro ordenador (o red local). El cortafuegos es la pieza principal en la seguridad de red.

El núcleo de GNU/Linux (o kernel) lleva un cortafuegos integrado por lo que no es necesario instalar ningún software específico para tenerlo. Sin embargo, la comunicación con las funciones de cortafuegos del núcleo (a través del comando iptables) puede ser algo complicada para usuarios no expertos, por este motivo existen programas que nos facilitarán la tarea de gestionar el cortafuegos.

Para este artículo usaré el programa gufw (podeis encontrarlo en el Centro de Software) para gestionar el cortafuegos, pero hay otros como firestarter o ufw-gtk que servirán igual.

  • Establecer la política general de acceso
Existen dos políticas principales a la hora de configurar el cortafuegos, dependiendo del tipo de uso que le vayamos a dar a nuestra conexión de red elegiremos una u otra:
  1. Denegar tráfico entrante: rechazar todas las conexiones entrantes y permitir expresamente las conexiones que deseamos (método seguro). Recomendado para usuarios de escritorio y pequeñas redes.
  2. Permitir tráfico entrante: aceptar todas las conexiones y establecer reglas específicas para las que queramos denegar (método inseguro).

Desde la pantalla principal de gufw (Sistema - Administración - Configuración cortafuegos) activamos el cortafuegos y elegimos la política restrictiva por defecto para el tráfico entrante:


Política restrictiva por defecto

  • Definir las reglas
Una vez definida la política general restrictiva podemos definir las reglas que permitirán aquellas comunicaciones que necesitemos. Tendremos que añadir una regla por cada servicio que queramos ofrecer.

Hay muchos tipos de conexiones y muchas configuraciones para cada una de ellas, vamos a ver algunos ejemplos representativos, vosotros debereis aplicarlos a los servicios y las condiciones que querais fijar en vuestro cortafuegos.

Abrir puertos para programas p2p: las redes p2p (emule, torrent...) requieren que ciertos puertos estén abiertos para funcionar correctamente, al establecer una política general restrictiva hemos "cerrado" todos los puertos por lo que estableceremos reglas para abrir los que necesitemos.

Esto es tan sencillo como Añadir - Preconfigurado - Permitir - Entrante - Programa - seleccionamos el programa al que queremos permitir el acceso - Añadir.


Acceso permitido al programa deluge (torrent)

De la misma manera podemos permitir el acceso a los programas o servicios que creamos necesarios.

Permitir administración remota: es muy común tener que configurar ordenadores de forma remota a través de diferentes protocolos (ssh, vnc...) para lo cual generalmente se necesita abrir el acceso un puerto determinado. Esto es una "puerta abierta" al mundo y un posible agujero de seguridad. Para minimizar los riesgos filtraremos estas conexiones permitiendo únicamente la conexión desde una dirección IP determinada (la del ordenador que realiza la administración remota).

En este caso el proceso será Añadir - Avanzado - Permitir - Entrante - Registro - TCP - seleccionamos la dirección IP y puerto de origen y de destino - Añadir.

Definición manual de reglas

En este caso hemos establecido una regla que permite el acceso al servicio SSH (por el puerto 22) desde la dirección 192.168.1.10 (de nuestra red interna) al ordenador 192.168.1.2 (tambien de nuestra red interna, de manera que no se permitirá la conexión desde ninguna otra ubicación al servicio SSH). Además para mayor seguridad hemos activado el registro de conexiones.

  • Más información
Wikipedia: Cortafuegos
SoftLibre: Nueva GUI para la configuración del Firewall en Ubuntu (ufw-gtk)

  • Artículos relacionados

19 jul. 2010

Seguridad en Ubuntu (III) - Software seguro

La semana pasada analizábamos la importancia de un correcto uso del sistema de usuarios y permisos en el artículo Seguridad en Ubuntu (II) - Usuarios y claves, esta semana continuaremos con otro pilar básico de la seguridad: los programas que instalamos.

Si controlamos el origen del software y usamos un método de instalación adecuado minimizaremos la posibilidad de introducir software malintencionado en el sistema, mejoraremos su estabilidad y reduciremos los riesgos en seguridad.

  • Métodos de instalación
En Ubuntu y GNU/Linux en general tenemos una gran variedad en métodos de instalación de software, en la guía oficial Añadir aplicaciones teneis todos estos métodos explicados en detalle, pero voy a hacer un pequeño repaso a los más comunes desde el punto de vista de la seguridad:

  1. Usando el gestor de paquetes:
    Ubuntu usa paquetes de tipo DEB, muy seguros en su elavoración e instalación, estos paquetes se instalan/desinstalan con los gestores de paquetes (apt-get, aptitude, synaptic, adept, gdebi o el Centro de Software entre otros). Este es el método más recomendado para todo tipo de usuarios.

    Centro de Software de Ubuntu (método recomendado)

    Las principales ventajas de este método son:
    - Instalación y mantenimiento del software fácil y unificada
    - El creador del paquete está identificado y es accesible por cualquiera
    - Posibilidad de ver la lista de archivos que contiene el paquete
    - Desinstalación limpia
    - Si un paquete interfiere con otro el propio sistema de paquetes resuelve el conflicto
    - Si un paquete necesita otro para funcionar el propio sistema de paquetes resuelve la dependencia


  2. Desde código fuente:
    Otro método de instalación muy común en GNU/Linux pero no tanto en Ubuntu es compilar directamente el código fuente para conseguir un ejecutable. Se recomienda este método únicamente para aquellos (poquísimos) programas que no están disponibles en el gestor de paquetes.

    Instalación típica desde fuentes

    Este método, aunque en general es bastante seguro tiene importantes desventajas respecto al uso del sistema de paquetes:
    - Cada programa tiene su propio método de instalación
    - Para un usuario no experto es difícil saber qué archivos son instalados y cómo mantenerlos
    - Algunos programas instalados así solo pueden desinstalarse manualmente
    - No gestiona conflictos ni dependencias
    - Requiere la instalación de compiladores, librerías, utilidades...

    Si te ves obligado a instalar software usando este método ten en cuenta: leer atentamente las instrucciones de instalación contenidas en el archivo README o INSTALL, comprueba que el sitio web del que sacaste el programa es fiable y tiene alguna dirección de contacto del autor, recuerda que el gestor de paquetes no podrá desinstalar, actualizar ni gestionar este software de ninguna forma.

  3. Scripts autoinstalables:
    Son archivos que contienen dentro de si mismos las órdenes necesarias para instalarse, este es el formato típico de los drivers de nvidia (*.run) o scripts creados por usuarios con diferentes fines (*.sh) entre otros muchos.

    Ejecución de un script autoinstalable (driver de nVidia)

    Este es sin duda el método más inseguro de instalar software y habrá que evitarlo siempre que sea posible, sus principales desventajas son:
    - Normalmente el origen es poco o nada fiable
    - Es muy fácil introducir código malicioso en estos scripts
    - Para saber exactamente qué está haciendo el script hay que tener conocimientos de programación shell

    Si te ves obligado a instalar software usando este método ten en cuenta: asegurate muy bien de que el origen del script es fiable, desconfía especialmente de los scripts que requieren permisos de administrador, siempre que sea posible edita el script y analiza todo lo que hace antes de ejecutarlo.

  • Origen del software
El sistema de paquetes (método recomendado de instalación) obtiene el software de lo que se denominan repositorios, tienes una amplia guía de gestión de repositorios en Añadir repositorios externo, pero igual que antes vamos a ver cuál es la mejor manera de gestionar estos repositorios desde el punto de vista de la seguridad.

La herramienta básica en Ubuntu para gestionar los repositorios es software-properties-gtk y la tienes disponible en el menú Sistema - Administración - Orígenes del software

Existen varios tipos de repositorios que se gestionan de manera diferente y que software-properties-gtk puede controlar.

  1. Repositorios oficiales de Ubuntu
    Este es el repositorio principal del que las distribuciones Ubuntu obtienen los paquetes, se puede cambiar desde la pestaña Software de Ubuntu, existen cientos de repositorios repartidos por todo el mundo y todos son muy seguros, pero para estar seguro de que están perfectamente actualizados es recomendable usar el servidor principal de Ubuntu o el servidor primario del propio pais.

    Selección de servidor principal

    No será necesario tomar ninguna medida de seguridad especial para usar este tipo de repositorios.


  2. Repositorios personales PPA
    Los repositorios personales o PPA son repositorios para usuarios de Ubuntu alojados en los servidores de Launchpad y contienen versiones más nuevas (o de desarrollo) de ciertos programas. Estos repositorios no están avalados por Canonical pero son creados por usuarios identificados y estan firmados digitalmente por lo que son relativamente seguros.

    La gestión de estos repositorios es muy sencilla y se integran perfectamente en el gestor de paquetes de Ubuntu. El nombre exacto del repositorio y la manera de agregarlo estará detallado en la página web de cada repositorio.

    Lo veremos mejor con un ejemplo, vamos a añadir el reposiorio PPA con la última versión disponible de Wine (la versión 1.2). El nombre del repositorio es ppa:ubuntu-wine/ppa y para añadirlo usaremos los siguientes comandos:

    - Añadir el repositorio a la lista de orígenes del software:
    sudo add-apt-repository ppa:ubuntu-wine/ppa
    - Actualización de la lista de paquetes:
    sudo aptitude update
    - Desinstalar la version anterior de wine (sólo si ya lo tenías instalado):
    sudo aptitude purge wine
    - Instalación del programa (en este caso wine):
    sudo aptitude install wine
    - Comprobar la versión de wine instalada:
    wine --version
    wine-1.2


    Las principales ventajas de este tipo de repositorios son entre otras: disponer de las ultimas versiones de desarrollo de ciertos programas, integración total en el sistema de paquetes y sistema de seguridad basado en firmas digitales.
    Sus desventajas son: añadimos un cierto nivel de inestabilidad al usar programas en desarrollo o no suficientemente probados y añadimos un cierto nivel de inseguridad pues estos repositorios no están comprobados por Canonical.


  3. Repositorios externos
    En ocasiones (cada vez menos) el software que queremos instalar se encuentra empaquetado en repositorios de terceros (ni el principal de Ubuntu ni repositorios PPA), vamos a ver ahora como gestionamos esos repositorios y los aseguramos con una clave digital.

    De nuevo usaremos un ejemplo para ilustrar el proceso, en este caso vamos a añadir el fatástico repositorio de GetDeb que contiene gran cantidad de programas que no están en los repositorios oficiales de Ubuntu o que están pero en versiones anteriores. Las instrucciones de instalación así como todos los paquetes que contiene los encontrareis en su web.

    El nombre exacto del repositorio es deb http://archive.getdeb.net/ubuntu lucid-getdeb apps y para añadirlo usaremos los siguientes comandos:

- Añadir manualmente el repositorio a la lista de repositorios del sistema:
sudo bash -c "echo 'deb http://archive.getdeb.net/ubuntu lucid-getdeb apps' >> /etc/apt/sources.list"
- Importar la clave digital para mayor seguridad:
wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
- Actualizar el sistema:
sudo aptitude update
- Instalar cualquier aplicación de los repositorios de GetDeb, por ejemplo el navegador social Flock:
sudo aptitude install flock

El punto más importante referente a la seguridad de este tipo de repositorios es no añadir nunca repositorios que no disponen de clave de seguridad o que no la hacen pública.

  • Más información
Guía Ubuntu - Añadir aplicaciones
Wikipedia - Repositorio
Launchpad - PPA

  • Artículos relacionados

12 jul. 2010

Seguridad en Ubuntu (II) - Usuarios y claves

Como ya vimos en el post anterior Seguridad en Ubuntu (I) - Introducción uno de los pilares básicos de la solidez de los sistemas GNU/Linux es su potente gestión de usuarios y de permisos.

En este artículo veremos como hacer un correcto uso de esta gestión, aumentando en gran medida la seguridad de nuestro sistema, tanto local como remota.

  • Tipos de cuentas de usuario
Existen varios tipos de cuentas de usuario que dan diferentes niveles de acceso para el uso y administración del sistema. Asegúrate de estar usando siempre la cuenta de usuario adecuada a tus necesidades, una cuenta con más permisos de los necesarios también implica más riesgos de los necesarios.

  1. Usuario con permisos administrativos
    Este es el usuario que se crea durante la instalación del sistema, tiene permiso para usar todas las aplicaciones instaladas, guardar o modificar contenidos en su carpeta personal y puede asumir temporalmente las funciones de administrador mediante la orden sudo.

    Este es el usuario indicado para el trabajo diario y la administración de sistemas de escritorio habituales.

  2. Usuario sin permisos administrativos
    Este es el tipo de usuarios que se crean desde el menú Sistema - Administración - Usuarios y grupos, tiene permiso para usar todas las aplicaciones y guardar o modificar informaciones en su carpeta personal. No podrá ejercer tareas administrativas ni usar el comando sudo.

    Creación de un usuario

    Si necesitas crear más usuarios para que otras personas usen tu sistema es conveniente el uso de este tipo de cuentas. Así pase lo que pase no podrán alterar la configuración del sistema, sólo sus opciones personales.

    En caso de que necesites dar permisos administrativos a estos usuarios puedes hacerlo desde el menú Sistema - Administración - Usuarios y grupos - Ajustes avanzados - Privilegios de usuario - Administrar el sistema

    Ajustes avanzados - Privilegios de usuario

  3. Usuario invitado
    Esta cuenta, presente en Ubuntu y en algunas otras distribuciones permite el acceso al sistema con un usuario sin privilegios, carece de contraseña y permite el uso de la mayoría de aplicaciones, pero no guardar o modificar datos ni por supuesto asumir tareas administrativas. (Podrá guardar datos pero éstos se perderán al cerrar la sesión).

    Este tipo de cuenta es muy útil en ordenadores de acceso público, demostraciones, o cualquier situación en la que quieras que alguien pueda usar el sistema sin alterar nada.

    Para acceder a esta cuenta debes hacerlo desde una sesión de usuario ya iniciada haciendo clic en el applet de control de sesión y selecciona Sesión de invitado. +info

    Acceso al usuario invitado


  4. Usuario root
    Este es el usuario administrativo tradicionalmente usado en todas las distribuciones GNU/Linux, sin embargo en Ubuntu se ha desactivado esta cuenta y en su lugar se usa el comando sudo. +info

    Las ventajas del uso de sudo frente a root son: minimizar la posibilidad de desastres por descuido al estar la cuenta administrativa activa durante menos tiempo, hacer más consciente al usuario de qué acciones entrañan peligro y cuales no o acostumbrarse a usar permisos administrativos sólo cuando son estrictamente necesarios, entre muchas otras razones.

    Algunos usuarios no acostumbrados al modo de trabajar de Ubuntu insisten en la activación de esta cuenta (poniendo en peligro la seguridad del sistema). Si este es tu caso la activación de la cuenta root se hace con la orden:
    sudo passwd root

    Esto asignará una contraseña al usuario root permitiendo su acceso al sistema y el uso del comando su. Una vez acabada la tarea administrativa en cuestión es recomendable volver a desactivar esta cuenta con la orden:
    sudo passwd -l root

  • Contraseñas
La contraseña es la llave que cierra la puerta de la privacidad de cada usuario. Por este motivo vale la pena dedicarle un poco de tiempo a la elección de la contraseña.

Criterios para elegir una contraseña:
  1. Deberá tener una longitud mínima de 6 caracteres
  2. Preferiblemente que contenga combinaciones de mayúsculas, minúsculas, símbolos y números
  3. No deberá contener ningún carácter fácilmente deducible por los datos "visibles" del usuario (es decir evita contraseñas del tipo usuario1)
  4. Preferiblemente usa contraseñas creadas aleatoriamente

Ejemplos de malas combinaciones usuario/contraseña: usuario/usuario1, root/toor, usuario/1234, usuario/aaaaaaaa, usuario/apellido
Ejemplos de buenas contraseñas: ffagh61w, Op9%ssas

Si tu contraseña no cumple estos requisitos puede ser fácilmente "rebentada" por programas de fuerza bruta. Para cambiar la contraseña y asignar una mejor usa el menú Sistema - Administración - Usuarios y grupos - Cambiar contraseña

Cambiar contraseña

Es muy tentador desactivar la contraseña del usuario para hacer más cómodo el acceso, esto sería equivalente a dejar siempre el coche abierto para no tener que abrirlo (y con las llaves puestas!). Intenta evitar las opciones No preguntar de nuevo la contraseña al iniciar sesión (del menú Usuarios y grupos) y Acceder como usuario automáticamente (del menú Pantalla de acceso)

Desactiva el acceso automático al sistema

  • Cambiar permisos y grupos
Todos de los sistemas de ficheros comunes en GNU/Linux soportan un completo sistema de permisos, que asigna a cada archivo/directorio: un propietario, un grupo y permisos de lectura (r) / escritura (w) / ejecución (x) independientes para el propietario, el grupo y el resto de usuarios.

Veamoslo más claro con un ejemplo, el comando ls -l nos mostrará todos estos datos:
ls -l
-rw-r----- 1 dani users 77951 2010-07-06 18:24 screenshot_001.png

En este ejemplo el archivo screenshot_001.png es propiedad del usuario dani, pertenece al grupo users y sus permisos son: lectura y escritura para el propietario (los primeros rw-), lectura para el resto de usuarios del grupo users (r--) y ningún tipo de acceso para el resto de usuarios del sistema (---). +info

En ocasiones podemos encontrarnos que no tenemos permisos para realizar una u otra acción sobre un archivo (por ejemplo no podemos ejecutar un archivo descargado, o el editor nos avisa de que no podemos guardar cambios sobre un archivo de texto). La solución NO es convertirse en root, la solución es establecer correctamente los permisos del archivo.

Para cambiar los permisos de un archivo usaremos el comando chmod (con sudo si el archivo no es de nuestra propiedad). A cada tipo de permiso se le asigna un numero: lectura=4, escritura=2, ejecución=1, estos permisos pueden sumarse y deben informarse para el propietario, grupo y resto de usuarios. Veamos algunos ejemplos:
chmod 777 archivo # asigna permiso lectura(4) + escritura(2) + ejecución(1) para el propietario, grupo y resto de usuarios
chmod 600 # asigna permiso lectura(4) + escritura(2) al propietario, grupo y resto de usuarios no tienen acceso
chmod 755 # todos los permisos para el propietario, lectura y ejecución para el resto

+info

Si estos comandos te parecen muy complicados siempre puedes usar el gestor de archivos para cambiar los permisos haciendo clic con el botón derecho sobre el archivo que quieres cambiar y eligiendo Propiedades - Permisos

Propiedades - Permisos

Otro error común es que el propietario o grupo del archivo no estén bien asignados (esto ocurre por ejemplo si usas algunos programas con root cuando no debes). De nuevo la solución NO es convertirse en root (más bien esto es el origen del problema), la solución es establecer correctamente el propietario y grupo del archivo.

Para esto usa el comando chown (con sudo si el archivo no es de tu propiedad). Su uso es bastante sencillo, con un ejemplo bastará:
sudo chown dani:dani archivo # asigna el propietario dani y el grupo dani al archivo
+info

  • Más información
  • Artículos relacionados

5 jul. 2010

Seguridad en Ubuntu (I) - Introducción

Uno de los temas que más preocupa a los recién llegados a Ubuntu es la seguridad (especialmente si vienen de Windows). Sin embargo la mayoría traen ideas preconcebidas erróneas y mitos más basados en las películas de hackers que en la realidad.

Por ese motivo voy a dedicar una serie de artículos a dar un repaso general a todos los niveles de seguridad de Ubuntu, aclarando dudas, desmitificando bulos y dando información extra para los que quieran profundizar en el tema.

El presente artículo es una guía y un índice de lo que iré publicando en próximos artículos.

  • Falsos mitos sobre seguridad
  1. Ubuntu (y GNU/Linux en general) son sistemas seguros y no debo preocuparme por la seguridad: FALSO
    La seguridad depende del sistema que se use, pero también de las opciones de configuración y del nivel de conocimientos del administrador.
  2. Con un buen firewall estoy 100% seguro: FALSO
    El firewall o cortafuegos es sólo uno de los elementos que determinan la seguridad de un sistema, pero hay muchos más.
  3. Solamente yo uso mi ordenador, no necesito una clave de usuario: FALSO
  4. Es mejor trabajar con root porque así no hay problemas de permisos: FALSO
    La única finalidad del usuario root es administrar el sistema, en ningún caso debe ejercer las funciones de usuario. Además usar root cuando no se debe suele provocar problemas de permisos en las aplicaciones.
  5. Necesito activar la cuenta root en Ubuntu para realizar la tarea "x": FALSO
    En Ubuntu el usuario root nunca debe acceder al sistema. Para eso se usa sudo.
  6. Los virus de Windows pueden afectarme en Ubuntu: FALSO
  7. Ningún virus de Windows (al menos hasta la fecha) afecta a GNU/Linux. Si bien es cierto que se ha informado de ciertos casos de malware ejecutándose a través de wine. +info

  • Usuarios y claves
Las cuentas de usuario aseguran la privacidad de la información, el correcto reparto de privilegios en el sistema y minimizan los efectos en caso de un fallo de la seguridad. Un buen sistema de usuarios claves es la base de una firme seguridad.


Usa siempre claves seguras y no las desactives aunque te sea un poco molesto.
+info

  • Repositorios seguros
Los repositorios son las fuentes de las que distribuciones como Ubuntu obtienen el software, usar repositorios inseguros o no autentificados podría resultar en la entrada de software malicioso en nuestro sistema.


Para evitarlo usa siempre repositorios oficiales o repositorios firmados con clave.
+info

  • El cortafuegos
Entre las muchas funciones de un cortafuegos está la de aumentar la seguridad de nuestras conexiones de red aplicando filtros que analizan la procedencia, destino, puerto y otros datos relacionados con dichas conexiones.


Esta capa de seguridad es especialmente importante para todos aquellos que ofreceis servicios a través de la red local o de internet (servidor de correo, hospedaje de páginas web, escritorio remoto...)
+info

  • SeLinux / AppArmor
Es una capa extra de seguridad, capaz de confinar procesos, aplicaciones y/o usuarios, siguiendo unas políticas de seguridad preestablecidas, impidiendo de esta manera que se excedan en sus funciones o que se use software malintencionado para explotar sus potenciales vulnerabilidades.
+info

  • El antivirus
A diferencia de Windows donde un buen antivirus (y seguramente más de uno) es totalmente necesario, en Ubuntu muy difícilmente vamos a necesitar este nivel de seguridad.


Aún así existen unos pocos casos en que puede ser útil, como por ejemplo: escanear particiones Windows o dispositivos USB, escanear máquinas Windows a través de la red, añadir un filtro antivirus a nuestro servidor de correo interno o evitar la infección de aplicaciones ejecutadas con Wine.
+info

  • Herramientas de análisis del sistema
Existen varias utilidades que nos ayudarán a analizar nuestro sistema, revisar sus puntos débiles, posibles intrusiones y las principales vulnerabilidades.


Escaneadores de puertos, buscadores de rootkits o completas suites de seguridad.
+info

  • Los registros
Todos los eventos que suceden en el sistema quedan registrados en alguna parte, incluidos los referidos a las conexiones externas y a la seguridad.


Saber localizar y analizar esta información nos dará información muy valiosa sobre el estado del sistema y los posibles fallos de seguridad del mismo.

  • Detectar y expulsar intrusos
Aunque es mucho más difícil de lo que algunos piensan, bien por un descuido nuestro o bien por una vulnerabilidad de Ubuntu, podría darse el caso de que un usuario (o un programa) se colasen en nuestro sistema sin permiso.

De cómo actuemos en estos casos dependerá si esta situación se repetirá o no.

  • Más información
https://help.ubuntu.com/8.04/serverguide/C/user-management.html
https://help.ubuntu.com/community/Firewall
https://help.ubuntu.com/community/Repositories/Ubuntu
http://www.osnews.com/story/23463/Linux_Security_-_a_Few_Useful_Tactical_Tips

  • Artículos relacionados
Administración del firewall con gufw
Administración del firewall con firestarter

28 jun. 2010

Probando el nuevo sistema de ficheros Btrfs en Ubuntu

Btrfs es un nuevo sistema de ficheros soportado por Linux, que se centra en incorporar las funciones más avanzadas, tolerancia a fallos y reparación sencilla.

En este artículo veremos cuales son las características principales del sistema de ficheros Btrfs, como usarlo en Ubuntu 10.10 y finalmente una serie de pruebas de rendimiento para ver que tal se porta.


  • Caracterísitcas destacadas
  1. Soporte extents
  2. Compresión de datos
  3. Desfragmentación automática
  4. Comprobación con el sistema montado
  5. Backups incrementales
  6. Comprobacion de integridad de datos
  7. Subvolúmenes
  8. Copy-on-write
  9. Tamaño máximo de archivo 16EiB (16 millones de terabytes)
  10. Máximo número de archivos 2^64 (18.446.744.073 mil millones de archivos)
Podeis ver una lista más completa en http://es.wikipedia.org/wiki/Btrfs#Features

  • Instalación de Ubuntu 10.10 alternate (daily build)
Vamos a aprovechar que las nuevas ISOs alternate de Maverick ya soportan btrfs desde la instalación para instalar el sistema directamente en una particion btrfs. Puedes descargar esta ISO de http://cdimage.ubuntu.com/daily/current/:


Soporte btrfs en Ubuntu 10.10

Una vez instalado comprobaremos el soporte Btrfs con:
$ dmesg | grep -i btrfs
[ 2.516098] Btrfs loaded


Y el correcto formato de nuestra partición Btrfs con:
$ mount | grep btrfs
/dev/sda7 on /media/btrfs type btrfs (rw)


  • Crear un sistema de ficheros btrfs
Si no hemos creado una partición de tipo Btrfs durante la instalación podemos hacerlo después. Para las pruebas yo usaré /dev/sda7, usa cualquier partición libre que tengas:
$ sudo mkfs -t btrfs /dev/sda7

WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL
WARNING! - see http://btrfs.wiki.kernel.org before using

fs created label (null) on /dev/sda7
nodesize 4096 leafsize 4096 sectorsize 4096 size 10.08GB
Btrfs Btrfs v0.19


También podemos convertir directamente una partición de tipo ext3/ext4 directamente a Btrfs sin perder los datos que contiene con la orden (de nuevo hago las pruebas con la partición /dev/sda7):
$ sudo btrfs-convert /dev/sda7
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete.


  • Usar las herramientas para gestionar particiones btrfs
Listar las particiones Btrfs locales:
$ sudo btrfs-show

Analizar un sistema de ficheros Btrfs (con la partición desmontada):
$ sudo btrfsck /dev/sda7

  • Las pruebas
Para las pruebas he preparado 3 particiones: una de tipo ext4, una de tipo reiserfs y una de tipo btrfs de 10Gb cada una. Sobre cada una de ellas he ejecutado pruebas que evalúan la velocidad de creación y eliminación de archivos, copia de un archivo grande y multiples archivos pequeños, compresión y descompresión de datos.

Los resultados son los siguientes: (todos los resultados en segundos excepto la primera prueba)


BTRFS REISERFS EXT4
Creación de ficheros 1Gb (en Mb/s) 71,9 66,6 59,25
Copia de 1 archivo 2Gb 61,43 65,34 66,075
Copia de 1 archivo 2Gb (misma partición) 69,14 67,395 68,76
Copia de múltiples archivos 4Gb 261,03 268,1 275,11
Copia de múltiples archivos 4Gb (misma partición) 147,84 210,42 244,585
Comprimir 4Gb 165,29 224,115 268,18
Descomprimir 4Gb 98,825 84,105 97,77
Borrar 4Gb 36,915 11,605 13,02

Para los que no se os dé bien interpretar números aquí dejo unas cuantas gráficas que se entienden mejor:


  • Conclusiones
De los anteriores resultados se extrae que el sistema Btrfs funciona realmente bien, de las 8 pruebas realizadas supera a reiserfs y ext4 en 5 de ellas (creación de archivos, copia de un archivo, copia de múltiples archivos, copia de múltiples archivos dentro de la misma partición y compresión de archivos).

En 2 pruebas los resultados son similares en los 3 sistemas (copia de un archivo dentro de la misma partición y descompresión de archivos)

Como dato curioso (y negativo) ha tardado casi tres veces más que ext4 en borrar un directorio completo con sus 4Gb de archivos. Habría que investigar por qué está pasando esto.

  • Más información
http://es.wikipedia.org/wiki/Btrfs
http://btrfs.wiki.kernel.org/index.php/Main_Page


  • Artículos relacionados
Usar el nuevo sistema de ficheros ext4 en Ubuntu

21 jun. 2010

Mis deseos para Ubuntu 10.10 ¿Y tú, que deseas?

Maverick Meerkat es el nombre clave de la futura Ubuntu 10.10 que si todo va bien verá la luz en octubre de este mismo año. De la que ya podemos probar la Alpha1

Aún no conocemos con exactitud cuales serán las novedades que aportará esta versión ni sus principales características. Por ese motivo he decidido desde aquí empezar una lista de deseos con las 10 características que me gustaría encontrar en Maverick, además aportaré los deseos que he ido recogiendo en Twitter y en el IRC (he de decir que no comparto algunas de estas opiniones, pero aun así me parece que todas deben ser escuchadas)

Además animo a todos los lectores a dejar sus propios deseos y opiniones en forma de comentarios. Cuando salga la versión definitiva de Ubuntu 10.10 veremos si realmente ha cumplido los deseos de sus usuarios o no.

Mi escritorio en Maverick Alpha1

  • Mis deseos para Ubuntu 10.10 (numerados mis deseos y en cursiva los deseos del resto de usuarios)
  1. Una herramienta gráfica para configurar completamente grub2.
    Grub2 con fondo de pantalla por defecto.

  2. Soporte del sistema de ficheros Btrfs en el instalador.
    Herramienta de sincronización con moviles Android. Soporte de las ultimas tecnologías gráficas como gpgpu.

  3. Sistema de sonido estandarizado y simplificado.
    KDE como escritorio base.

  4. Mayor control sobre los drivers (propietarios y libres) instalados en el sistema.
    Mejor soporte de teléfonos móviles en general. Mayor duración del soporte del hardware. Mayor soporte para las gráficas ATi (driver propietario).

  5. Empathy con soporte webcam en todas sus cuentas, especialmente MSN.
    Nuevo tema por defecto.

  6. Conversor multimedia integrado en totem o como aplicación independiente.
    Restaurar gimp por defecto. Cambiar F-Spot por gthumb como visor de imagenes por defecto. ccsm instalado por defecto.

  7. Instalación con "Modo experto" que permita definir opciones de grub2, elegir paquetes...

  8. Mejoras en UbuntuOne: exportar contactos, preferencias de usuario, álbumes de fotos...
    Steam y juegos navitos. Acuerdos con empresas para el desarrollo de juegos nativos.

  9. Soporte de historial y operaciones frecuentes en nautilus (extensión Zeitgeist).

  10. Continuar el desarrollo del escritorio social, editor de blogs, lector de feeds...
    Eliminar Evolution de la instalación por defecto.

  • Actualización
Añado los deseos dejados como comentarios en el post (muy interesantes la mayoría):
Cambiar Nautilus por Nautilus Elementary.
Sacar Gwibber que, aunque me gustaba bastante, ahora está demasiado pesado (en especial para netbooks).
Cambiar Tomboy por Gnote (sin Tomboy y F-Spot, las librerías Mono son prescindibles también).
Que el applet-indicator sea capaz de revisar cuentas de correo POP o IMAP.
Ir dando pasos firmes de negociación con empresas para abrir completamente Ubuntu al sofware comercial privativo.
Mayor apoyo por parte de Canonical a KDE.
Portar el cliente de UbuntuOne a Qt/KDE.
Mejor soporte para tarjetas gráficas VIA.

  • ¿Y tú, que deseas?
Deja tus propios deseas o tus opiniones sobre los míos en un comentario.

  • Más información
Mi Twitter
Calendario de versiones de Maverick Meerkat