Linux: ¿Qué sistema operativo usan los ordenadores de mi red?

Hace unos días vimos cómo saber qué ordenadores estaban conectados a nuestra red local. Es una forma de saber si tenemos intrusos en nuestra red y es conveniente comprobarlo cada cierto tiempo (sobre todo si tenemos una red wifi).

Una vez tengamos el listado de los equipos conectados, si vemos alguno que no debería estar debemos empezar a actuar. Normalmente podemos echar a los que se han conectado a nuestro wifi cambiando la clave del router y reiniciándolo, usando WPA en lugar de WEP para mayor seguridad o filtrando por MAC (ojo, que las direcciones MAC se pueden falsear).

Averiguar el sistema operativo con nmap

Una vez tenemos localizada la posible IP intrusa (supongamos que es la 192.168.1.101) bastaría con hacer:

sudo nmap -O 192.168.1.101

Esto nos dará una información que puede ser similar a ésta:

Host is up (0.0093s latency).
Not shown: 996 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
23/tcp   filtered telnet
25/tcp   filtered smtp
3971/tcp open     lanrevserver
MAC Address: 00:22:F7:26:39:9D (Conceptronic)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.13 - 2.6.32
Network Distance: 1 hop

Vemos que ha habido suerte y ya tenemos el sistema operativo aproximado que usa el ordenador en cuestión.

Una anécdota

Os voy a contar un caso curioso que me sucedió hace un tiempo. En una red descubrieron que había conectado un equipo que no tenían identificado. Dicho equipo estaba conectado no a través de Wifi sino de cable. Gracias al nmap descubrieron que el misterioso ordenador funcionaba con alguna versión de Linux. El problema es que ellos, salvo el router, usaban MS Windows en todos los equipos.

Se dispararon todas las alarmas y empezó la caza del intruso. Hicieron un inventario de todos los equipos con sus IP, se comprobaron todos los ordenadores por si alguno tenía alguna máquina virtual instalada, e incluso revisaron todo el cableado por si alguien había instalado algún dispositivo “extraño” oculto.

Cuando estaban en medio de la investigación me avisaron a ver si se me ocurría algo. Al final resultó que en el almacén tenían otro router del que nadie se acordaba (al almacén no entraba nadie de la oficina) y esa era la misteriosa máquina con Linux.

Servicio de copias de seguridad para webs y tiendas

En Urlan Heat hemos lanzado oficialmente un servicio que ya venimos ofreciendo desde hace un tiempo a varios clientes: un servicio de backup de webs y tiendas online.

El servicio que ofrecemos es completo: nosotros nos encargamos de realizar una copia completa de la web (tanto de ficheros como de bases de datos). En caso de existir algún problema la podemos restaurar rápidamente, también nos encargamos nosotros de la restauración de la tienda si es necesario.

Dependiendo de las veces que se actualice la web los backups pueden hacerse diariamente, semanalmente o mensualmente.

Esta es una idea que nos solicitaron hace algún tiempo varios clientes que estaban preocupados por la posibilidad de perder todo el trabajo de semanas, meses o incluso años. Muchas compañías ofrecen el servicio automático de backup pero en ocasiones es engorroso o difícil de usar y por eso suelen pedirnos ayuda.

Visitar la información del servicio de backup y restauración de webs y tiendas online.

Automatizar la conexión a sFTP

En este artículo os voy a contar cómo descargar ficheros mediante sFTP (FTP encriptado) de manera automatizada; es decir, sin tener que andar ejecutando el comando ni tener que meter la clave a mano cada vez.

El script es bien sencillito:

#!/bin/bash
 
# Aquí ponemos los datos de conexión
USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22
 
lftp -p${PUERTO} -u ${USUARIO},${CLAVE} sftp://${HOST} << CMD
get copia_seguridad.bz2 copia_seguridad.bz2
bye
CMD

Basta con que sustituyas estos datos por los de tu servidor:

USUARIO=usuario
CLAVE=clave
HOST=miftp.com
PUERTO=22

El puerto se puede dejar el de ssh por defecto, pero en varios servidores me he encontrado que usan uno distinto así que la opción para especificar el puerto es muy útil para mí.

lftp (sophisticated file transfer program) es el que se va a encargar de identificarse en el servidor mediante sftp. Todo lo que escribamos entre <Aquí podéis ver otra forma de hacerlo

ZenCart alerta de seguridad: riesgo de ataque por inyección SQL

Recientemente se ha descubierto una posible vulnerabilidad en Zen Cart que podría permitir un ataque de inyección SQL en los serviodres que tengan desactivada la opción de PHP “magic_quotes_gpc”. Ver el anuncio oficial en inglés.

El problema se encuentra en el fichero includes/classes/shopping_cart.php y están afectadas desde las versiones 1.2.x hasta la última 1.3.8.

Se recomienda realizar esta actualización cuanto antes.

¿Son importantes las copias de seguridad?

La respuesta rápida:

“Hay dos tipos de personas en el mundo; los que saben que tener una copia de seguridad es muy importante y los que van a sufrir un ataque al corazón proximamente”.

Más de una vez he visto personalmente negocios a punto de cerrar por culpa de un desastre con los discos duros y por no tener una copia de seguridad en condiciones.

Los discos duros fallan, eso es un hecho innegable. Incluso los de los servidores web; en una ocasión un cliente tenía un servidor dedicado sin raid ni backups. Un buen día (por decir algo) el disco duro se estropeó. Evidentemente la compañía con la que tenía contratado el servidor se desentendió del problema (a decir verdad le intentaron ayudar en todo lo posible). Afortunadamente para él yo le había hecho un backup hacía dos meses con lo que no perdió todo el trabajo de dos años (sí, dos años sin backup). Por cierto, luego me lo agradeció no pagando la última factura, pero eso ya es otra historia.

La inseguridad de las actualizaciones automáticas.

Malte Timmerman (uno de los desarrolladores de StarOffice/OpenOffice.org) nos habla en su blog sobre el peligro de las actualizaciones automáticas de los programas (OpenOffice.org incluido).

El problema es éste:

1) Las actualizaciones automáticas se hacen normalmente conectándose a un dominio.

2) Para poder conectarse a un dominio hay que convertirlo a una IP. Esto se hace a través de un servidor de DNS. Este servidor de DNS podría ser atacado o algún troyano (o similar) podría cambiar en nuestro ordenador el servidor DNS que usemos. De esta forma, en lugar de conectarnos al servidor “oficial” con las actualizaciones podríamos, en realidad, estar conectándonos con un servidor “maligno”.

3) La actualización descargada se ejecuta automáticamente infectando nuestro sistema.

Teniendo en cuenta los últimos avisos con el tema de los agujeros de seguridad en los DNS realmente es algo preocupante.

Para evitar este problema Malte propone que siempre comprobemos las fimas MD5 de los ficheros que nos descarguemos (una práctica recomendada siempre). Este es un trabajo que debemos hacerlo nosotros mismos, ya que si le dejamos la tarea a la herramienta de actualización automática tendremos el mismo problema ya que se descargará unos MD5 falsos.

Su recomentación es que usemos, mientras se encuentra una solución mejor, que usemos la herramienta de actualización pra saber si hay actualizaciones y después descarguemos las actualizaciones “a mano” y las comprobemos.

Aquí tenemos los MD5Sums para las distintas versiones de OpenOffice.org.

Phishing en Google Adwords

Hoy he recibido uno de esos habituales intentos de Phishing (*) pero esta vez con el Adwords de Google. He estado a punto de picar ya que lo han enviado a la cuenta con la que tengo el Adwords y el diseño es bastante “espartano” (algo habitual en los mensajes de AdWords). Como excusa diré que es bastante tarde y uno es más susceptible a estas cosas cuando está cansado. Sin embargo, a pesar del cansancio dos cosas me han hecho sospechar:

1) El mensaje estaba en inglés cuando Google Adwords siempre me envía los mensajes en castellano.

2) Al ponerte sobre el enlace en el que te invitan a pinchar he visto que la URL era de un dominio de China:

...adwords.google.com.groupsxc.cn/select/Login

Como norma general no suelo hacer click en los enlaces que recibo en este tipo de emails (ni cuando llegan del banco, ni de PayPal ni de Google), entro directamente en la web a través de su URL “oficial”.

Ya sé que esto del Phishing es muy habitual, pero es la primera vez que lo veo con AdWords y me ha llamado la atención. Está visto que de esto no se libra nadie.

Así que, ¡mucho ojito con estos intentos de estafa!

Contenido del email:

--------------------------------------------
Dear Advertiser,
-----------
We were unable to process your payment.
Your ads will be suspended soon unless we can process your payment.
To prevent your ads from being suspended, please update your payment information.
------------------
Please sign in
to your account at http://adwords.google.com/select/login,
and update your payment information.
-------------------------
We look forward to providing you with the most effective advertising available.
Thank you for advertising with Google AdWords. 

(*) Definición de Phishing sacado de la Wikipedia:

Anzuelo o Estafa electrónica (inglés phishing. Ver Origen de la palabra) es un término informático que denomina un tipo de delito encuadrado dentro del ámbito de las estafas, y que se comete mediante el uso de un tipo de ingeniería social caracterizado por intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o información detallada sobre tarjetas de crédito u otra información bancaria). El estafador, conocido como phisher, se hace pasar por una persona o empresa de confianza en una aparente comunicación oficial electrónica, por lo común un correo electrónico, o algún sistema de mensajería instantánea[1] o incluso utilizando también llamadas telefónicas.

Backups con rsync

Si queréis hacer copias de seguridad de manera sencilla una herramienta muy potente es rsync. Existen un montón de programas para hacer backups pero ninguno acaba de convencerme. Yo necesito que la copia de seguridad sea fácilmente accesible, es decir, que esté sin comprimir para poder acceder directamente a determinados archivos de manera cómoda sin tener que andar descomprimiendo archivos de varios megas (o gigas). Además, utlizo el disco externo de backup para llevar los arhivos de casa a la oficina y vice versa. Para mi caso la mejor herramienta que he encontrado hasta ahora es rsync. Uso un sencillo comando para hacer los backups:

rsync -avz --exclude-from=.rsync/exclude /home/gorka/. /media/discobackup

-avz: copia recursivamete todos los ficheros desde el directorio /home/gorka a /media/discobackup (mi disco duro externo). Además mantiene los permisos, enlaces simbólicos, propietarios, atributos, etc… La opción -z comprime los ficheros antes de transferirlos, pero, dado que uso un disco usb2 realmente no estoy seguro de que tenga utilidad (un día que me aburra mediré la diferencia entre hacer la copia de seguridad con esta opción o sin ella).

–exclude-from=.rsync/exclude: esta opción busca el fichero .rsync/exclude en el que está la información de qué ficheros no se deben copiar. En mi caso uso el siguiente:

*.iso
*.avi
*.mp3

para que no me copie ni los ficheros iso, avi ni mp3. Cada tipo de fichero que queramos excluir debe ir en una línea.

/home/gorka/. aquí indico que quiero copiar el contenido de la carpeta /home/gorka. Si uso el ‘.’ es para que me copie los ficheros ocultos que empiezan por el punto. Si no se quieren copiar los archivos ocultos hay que usar /home/gorka/*

/media/discobackup – mi flamante disco duro externo.

Ejecuto el script, me voy a comer y espero a que se haga la copia tranquilamente.

Algo más de información: rsync y rsync Tips & Tricks.

Problema con Firestarter – el interfaz eth0 no está preparado

Recientemente me he encontrado con este problema y, después de darle muchas vueltas he encontrado el problema. La causa está en el script firestarter.sh. Abre el dichoso script:

gksudo gedit /etc/firestarter/firestarter.sh

y modifica la línea:

MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4`

por:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

Explicación paso a paso

Por si a alguien le interesa saber cómo dí con el problema he aquí un pequeño e instructivo rollete.

El mensaje de error que me aparece al intentar arrarcar el firestarter es:

External network device $IF is not ready. Aborting..

ese mensaje de error se muestra aquí (en este caso $IF es eth0):

if [ "$MASK" = "" -a "$1" != "stop" ]; then
	echo "External network device $IF is not ready. Aborting.."
	exit 2
fi

comprobé que la variable $MASK estaba en blanco (era la razón de que no arrancara el firestarter) así que busqué dónde se definía:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

El comando /sbin/ifconfi eth0 muestra un mensaje parecido a éste:

eth0      Link encap:Ethernet  HWaddr 00:13:8F:4C:47:59  
          inet dirección:192.168.1.2  Bcast:192.168.1.255  Máscara:255.255.255.0
          dirección inet6: fe80::213:8fff:fe4c:4759/64 Alcance:Vínculo
          ARRIBA BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:221627 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:159080113 (151.7 MiB)  TX bytes:105193874 (100.3 MiB)
          Interrupción:23 Base address:0xe400 

y el comando:

/sbin/ifconfig $IF | grep Mas | cut -d : -f 4

Lo que hace es buscar la línea donde esté el texto Mas (de Mask) y, claro, al estar mi Ubuntu en castellano en lugar de Mask poner Máscara:

eth0      Link encap:Ethernet  HWaddr 00:13:8F:4C:47:59  
          inet dirección:192.168.1.2  Bcast:192.168.1.255  Máscara:255.255.255.0
          dirección inet6: fe80::213:8fff:fe4c:4759/64 Alcance:Vínculo
          ARRIBA BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:221627 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:159080113 (151.7 MiB)  TX bytes:105193874 (100.3 MiB)
          Interrupción:23 Base address:0xe400 

Como resultado de este pequeño detalle $MASK se queda en blanco. Por tanto, la solución consiste en modificar el script y dejarlo como:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

Buscando troyanos y rootkits en Ubuntu

Si estás preocupado por la posibilidad de tener troyanos o rootkits en tu Ubuntu puedes usar dos programas llamados Chkrootkit y Rootkit Hunter.

Para instalarlos:

sudo apt-get install chkrootkit rkhunter

Una vez instalados vamos a empezar con el Rootkit Hunter. Lo primero es actualizarlo a la última versión:

sudo rkhunter --update

Después de actualizados podemos empezar con el test:

sudo rkhunter --checkall

Nos presentará un completo informe con el resultado de los análisis y probablemente hará alguna sugerencia.

Después podemos probar con el chkrootkit:

sudo chkrootkit

Aún así no es seguro que estemos 100% libres de troyanos, rootkits y demás basura pero por lo menos nos dejará una cierta tranquilidad :-).