¿Aun sigue funcionando la ingeniería social?

Cuando se habla de seguridad informática la mayoría de las personas se trasladan al mundo tecnológico y binario, donde los firewalls y las listas de acceso tratan de controlar las vulnerabilidades de seguridad, donde los antivirus y los sistemas de detección de intrusos escudriñan los sistemas tratando de encontrar comportamientos anormales. Pero la realidad es que una de las ramas mas explotadas del hacking y de las que quizás se hable menos es de la mágica y famosa ingeniería social.

social_engineering

¿Que es y como funciona?

Pues la ingeniería social es una rama del hacking que usa como fundamento el ideal de que el usuario es el eslabón mas débil en un sistema informático y trata de manipular la conducta humana para conseguir información sensible que permita vulnerar las medidas de seguridad, desde mi punto de vista es todo un arte, ya que trata de engañar al mas complejo de los sistemas “La conducta humana” y se logra esto basándose en 4 pilares:

  1. Todos queremos ayudar.
  2. El primer movimiento es siempre de confianza hacia el otro.
  3. No nos gusta decir No.
  4. A todos nos gusta que nos alaben.

Todos los que nos dedicamos a la seguridad informática en algún punto de nuestro aprendizaje llegamos a sentir total devoción por el mas celebre ingeniero social de todos los tiempos: “El condor”… Dicho asi como que no le suena a mucha gente, pero si les digo: Kevin Mitnick incluso el navegador sabe de quien hablo, y es que este señor logro en sus años ser el antiheroe por defecto de todo lo que conocíamos, accedía a sistemas informáticos haciendo llamadas telefónicas, y después de cumplir condena se ha convertido en consultor privado en temas de seguridad, su principal área: “Ingeniería social”.

Y como el mismo explica en sus charlas esto tiene su truco y su magia, pero esa magia estaba basada mas bien en un orden lógico de como hacer las cosas para conseguir lo que deseamos (cabe aclarar que la ingeniería social es útil en muchos ámbitos de nuestra vida diaria), aquí en cloudswxsequre vamos a darle unas pinceladas al proceso de un ataque por Ingeniería social.

Lanzando el ataque

social_engineering

Recopilar información.
  • Conseguir números telefónicos
  • Conseguir direcciones de correo de empleados y suplidores.
  • Averiguar los horarios laborales, así como sus horas de almuerzo.
  • Calendario de vacaciones.
  • Nombres de familiares.
  • Nombres de ejecutivos de la empresa.
Trabajar una relación con el usuario.

Después de tener en mente nuestro objetivo viene la parte de entablar una amistad con la persona que nos facilitara la información necesaria, se recomienda hacerlo de forma aislada y en singular, es decir no es bueno practicar la ingeniería social con mas de una persona a la vez, de esa forma se hace mas intimo y es mas fácil ganar la confianza de un empleado que de dos.

Exprimir la relación.

Después de tener la confianza asegurada entonces se procede de manera muy sutil a interrogar (por decirlo de alguna forma) a nuestro “amigo”  usando en gran medida la información recopilada en el primer paso.

Conseguir nuestro objetivo.

En esta ultima parte simplemente tratamos de conseguir el objetivo que nos pautamos desde un inicio, siempre teniendo en mente toda la información recopilada en el camino. Y todo esto sin tirar de un solo exploit, sin escribir una sola linea de código, sin hacer un solo ping, y es como leí en algún sitio:

La ingeniería social sera siempre el mayor hueco de los sistemas, ya que para la estupidez humana no existe parche.

Saludos por allá distinguidos y respetados lectores, les invito a seguir mi blog, así como mis redes sociales.

cl0udswx

Anuncios

Conmutación a la nube

Conmutación en las alturas…

Blog de JoseMPelaez

En la entrada previa comenté un par de informaciones periodísticas sobre dos materias técnicas que creo que van a representar un papel muy relevante en el futuro de internet: la banda ancha sin cables (Wi-Fi 2.0, ya sea TV white space o WiMAX) y la computación distribuida (grid computing). En ésta trato de aclarar los distingos entre las informáticas de la "cuadrícula" y de la "nube", además de referirme a algunas desventajas y ventajas de la segunda.

grid-supercollider-diagram

El reportaje de El Periódico vinculado el miércoles equiparaba los conceptos de grid y cloud computing al decir: 

«El grid es un software que permite no solo acceder a páginas web, como ahora cuando se navega por internet, sino también registrar datos en una nube de ordenadores dispersos por todo el mundo e incluso utilizarlos para hacer cálculos (de ahí lo de computación por nubes, otra denominación de la tecnología grid)…

Ver la entrada original 1.164 palabras más

GPG; Encriptar, Firmar y Desencriptar en Unix

Muy buen material sobre Criptografia y cifrado.

elbarajas

GPG Encriptado y Desencriptado

En esta publicación muestro el proceso a seguir para el uso de llaves GPG para encripción y desencripción.
Primero debemos ejecutar el siguiente comando, que habilitará un demonio necesario para los procesos de gpg, en el caso de que no se encuentre ya habilitado.

gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info"
eval $(gpg-agent --daemon)

if [ -f "${HOME}/.gpg-agent-info" ]; then
. "${HOME}/.gpg-agent-info"
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
fi

Ahora, mediante el siguiente comando y opción se abre la función de generación de llaves, yo elijo normalmente la llave que muestra default, pues cada una tiene diferentes ventajas, pero por ahora elegiremos la que tenga (1).

gpg --gen-key

Cabe la mención de que el proceso de generación requiere de mucho tiempo, o poco, dependiendo dell uso intensivo que se le esté dando a la máquina, pues en este caso le beneficia un uso extenso, pues requiere aleatoriedad el proceso, para que la llave se…

Ver la entrada original 235 palabras más

“Recuperar datos borrados dispositivo almacenamiento”

Pues resulta y viene a ser el caso que en algún momento necesitamos recuperar algo que por error humanos o por fallos de software ha sido borrado de nuestra unidad de almacenamiento (discos duros,CD regrabables y pendrives) o quizas porque nos toque hacerle forensic a algun dispositivo de almacenamiento y para estos fines en la red existe un amplio catalogo de herramientas que cumplen su cometido, pero en esta ocasión trataremos la aplicación PhotoRec.

¿Que es PhotoRec?

PhotoRec es un software diseñado para recuperar archivos perdidos incluyendo vídeos, documentos y archivos de los discos duros y CDRoms así como imágenes perdidas (por eso el nombre PhotoRecovery) de las memorias de las cámaras fotográficas, MP3 players, PenDrives, etc. PhotoRec ignora el sistema de archivos y hace una búsqueda profunda de los datos, funcionando incluso si su sistema de archivos está muy dañado o ha sido re-formateado.

PhotoRec esta disponible en las siguientes plataformas:

DOS/Win9x
Windows NT 4/2000/XP/2003/Vista/7/8
Linux
FreeBSD, NetBSD, OpenBSD
Sun Solaris
Mac OS X

PhotoRec es una aplicación gratuita y Open Source multi-plataforma distribuida bajo Licencia Pública General GNU.

Instalación y uso.

Pues como siempre lo primero es instalarlo:

Si usas windows:

1.- Ve al  Website de la aplicación y seleccionas la opción correcta.
2.-Descargas
3.-Descomprimes con WinRar
4.-Ve a la carpeta resultante y ejecuta PhotoRec.exe

Si usas Linux:

Escribe lo siguiente en una terminal:

sudo apt-get install testdisk

Para ejecutarlo simplemente escribimos lo siguiente en la terminal.

sudo photorec

Lo cual nos mostrara una pequeña interfaz muy sencilla e intuitiva de utilizar, igual a esta:

En esta parte podemos seleccionar la unidad de almacenamiento (discos duros, pendrives, discos regrabables) de donde queremos recuperar los archivos, el movimiento por la pantalla se hace en base a las flechas de nuestro teclado. En la imagen tengo una memoria LG de 8GB conectada al equipo, así que es la que usare en los ejemplos.

Una ves seleccionado el dispositivo le presionamos ENTER y nos mostrara lo siguiente:

Aquí nos pide elegir la partición especifica desde donde queremos recuperar los archivos, en la parte inferior tenemos 4 opciones, que son: Search, Options, File Options y Quit .
Quit.
En serio creen que les explicare lo que pasa si eligen esta?

File Options
Aquí podremos hacer un filtrado de los tipos de archivos que realmente buscamos, marcando y desmarcando con la barra espaciadora.

Al finalizar fijamos los parámetros usando la tecla “B”

Options

Aqui tenemos unas cuantas opciones para mejorar los resultados y el rendimiento.

Search

Despues de los ajustes correspondientes y finalmente le damos a Search, lo cual nos llevara a esto:

Aquí solo nos queda especificar si queremos que busca en toda la particion o simplemente en los espacios vacíos del disco, la cual en mi opinión es la mejor idea si queremos archivos completos y funcionales ya que al buscar en los espacios sobrescritos es mas probable conseguir archivos corruptos e inutilizables.

Por ultimo especificamos el directorio final donde queremos los archivos recuperados, confirmando con la tecla “C”

Eso es todo, personalmente siempre que me toca recuperar algún archivo no me lo pienso dos veces para usar esta increíble herramienta.

Saludos blogueros.

Como configurar OSPF de área única (OSPF Single Area) desde cero.

Muy buenas queridos blogueros y visitante que nos lee, en esta ocasión quiero traerles un pequeño tutorial de como configurar OSPF de área única en un entorno CISCO, no es nada del otro mundo pero aun así tratare de hacerlo lo mas claro posible, así que manos a la obra..!!

OSPF

¿Que es OSPF?

OSPF es un protocolo de enrutamiento dinámico de estado de enlace que utiliza el Algoritmo de Dijkstra para elegir la mejor ruta posible…

Tranquilos que yo tampoco lo pille la primera vez que me lo dijeron, asi que vamos a definirlo en lenguaje de humanos. En el mundo del networking los router deben “enrutar” de la mejor manera posible los paquetes que viajan aun destino cualquiera, para saber cual es el mejor camino deben usar algo asi como un mapa (tabla de enrutamiento) el cual contiene todas las posibles rutas para que el paquete llegue a su destino, este “mapa” debe ser alimentado constantemente, actualizado, anunciado, etc… y se pueden imaginar el labor que significaría eso para cualquier administrador de red, y es entonces donde entran en juego “Los protocolos de enrutamiento dinámico” que logran de forma dinámica y muy rapida alimentar los mapas de todos los routers en un area determinada.

Cabe aclarar que cuando digo “routers” no me refiero al pequeñito que tenemos en nustras casas, me refiero a grandes routers que mueven mucho trafico entre redes extensas (WAN), asi que cambien la imagen en sus mentes…

OSPF utiliza el algoritmo de Dijkstra para determinar cual es el mejor camino para enviar un paquete a través de la red, lo hace basándose en una métrica (costo) que a su vez depende del ancho de banda del enlace (esto sera un poco complicado :-\ ). Cada enlace (caminos) tiene un costo asignado y la meta de OSPF es elegir el camino que tenga el costo mas barato. En la siguiente animación se muestra como OSPF decide cual es el mejor camino para llegar de A hasta B

Algoritmo SPF en funcionamiento.

Bueno, de protocolos de enrutamiento dinámico podríamos pasar una larga tarde hablando pero ese no es el caso, ya que aquí hablaremos estrictamente de OSPF y como configurar.

¿Como se hace funcionar?

Pero antes unos cuantos puntos…

OSPF tiene dos versiones, una para IPv4 (OSPF2) y la otra para IPv6 (OSPF3) aquí vamos a configurar OSPF2

Recursos necesarios:

||| GNS3 funcionando.
||| Imagen del IOS de algún router (recomiendo la del modelo 3745)
||| Bloque de direcciones mayor 192.168.1.1/24 (en mi caso ya he creado 6 subredes para la topologia, así que a practicar un poco sobre subneting chicos!!)
||| A cada router deben agregarle una tarjeta de interfaces seriales para los enlaces WAN.

Les he preparado una pequeña topologia en GNS3 para mostrarles de que va y como se configura.

Topologia GNS3

Configuramos el direccionamiento en el Router A de la siguiente manera…

R1#ena   
R1#conf t                                                                                                 #Entramos en el modo configuración global
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#int fa0/0                                                                                #Llamamos la interfaz
R1(config-if)#ip add
R1(config-if)#ip address 192.168.1.1 255.255.255.224                         #Asignamos dirección IP y la mascara
R1(config-if)#no shutdown                                                                     #Encendemos la interfaz
R1(config-if)#
*Mar  1 00:10:58.147: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:10:59.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R1(config-if)#exit
R1(config)#inte
R1(config)#interface se                                                                             #Llamar interfaz
R1(config)#interface serial 0/0
R1(config-if)#ip add
R1(config-if)#ip address 192.168.1.97 255.255.255.224                         #Asignar dirección IP y mascara 
R1(config-if)#no shu                                                                                 #Encendemos la interfaz
R1(config-if)#
*Mar  1 00:25:25.187: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
R1(config-if)#
*Mar  1 00:25:26.191: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
R1(config-if)#
*Mar  1 00:25:53.427: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down
R1(config-if)#interface serial 0/1                                                           #Llamamos la interfaz
R1(config-if)#ip address 192.168.1.190 255.255.255.224                    #Asignamos la direccion IP y la mascara
R1(config-if)#no shu                                                                             #Encendemos la interfaz
R1(config-if)#
*Mar  1 00:26:24.663: %LINK-3-UPDOWN: Interface Serial0/1, changed state to up
*Mar  1 00:26:25.663: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to up
R1(config-if)#exit
*Mar  1 00:26:53.427: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to down

Ahora vamos a configurar OSPF en el mismo Router…

R1(config)#router ospf 1                                                                #Entramos en la configuración de OSPF y asignamos un ID
R1(config-router)#router-id 1.1.1.1                                                #Asignamos un ID al router (No es una direccion IP)
R1(config-router)#network 192.168.1.169 0.0.0.31 area 0   #Declaramos las redes, wildcard mas y su área (área única, recuerdan..?)
R1(config-router)#network 192.168.1.0 0.0.0.31 area 0               #Declaramos las redes que queremos anunciar a los routers vecinos
R1(config-router)#network 192.168.1.96 0.0.0.31 area 0             #Declaramos las redes que queremos anunciar a los routers vecinos
R1(config-router)#end

Por ultimo guardamos el archivo de ejecución en el archivo de inicio, para evitar perder las configuración tras algún reinicio inesperado.

R1#copy running-config startup-config
Destination filename [startup-config]? 
Building configuration...
[OK]
R1#

Ya esta configurado el Router A, pero antes de seguir cabe hacer unas aclaraciones:

Los enlaces WAN solo se levantan cuando se encienden ambos lados del enlace, por eso cuando hacemos un “no shutdown” a un enlace WAN este se muestra UP:

*Mar 1 00:25:26.191: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up

Y luego down…

*Mar 1 00:25:53.427: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to down

Por razones de rendimiento en la red los protocolos de enrutamiento dinámico se configuran por áreas especificas, de esa forma si ocurre un problema en una área de la red esta no afecta el resto, esta es la razón por la que al declarar una red debemos especificar el área:

R1(config-router)#network 192.168.1.96 0.0.0.31 area 0

Cada router corriendo OSPF en un área determinada debe tener un ID para poder identificar a sus vecinos y ser identificados, una ID de router es un valor decimal de 32 bits muy similar a una dirección IP (casi idéntico) pero no tiene relevancia en el proceso de enrutamiento, es decir NO FUNCIONA como una dirección IP. “Se parece pero no es”

Dicho esto vamos a realizar las configuraciones en el Router B (En el primer ejemplo comente todos los comandos para que hagan de referencia para el resto del tutorial, asi que de aquí en adelante no los comentare)

Configuramos el direccionamiento en el Router B

R2#ena
R2#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R2(config)#int fa0/0
R2(config-if)#ip add
R2(config-if)#ip address 192.168.1.33 255.255.255.224
R2(config-if)#no shu
R2(config-if)#
*Mar  1 00:17:12.331: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:17:13.331: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R2(config-if)#int se 0/1                             
R2(config-if)#int se 0/0
R2(config-if)#ip add
R2(config-if)#ip address 192.168.1.126 255.255.255.224
R2(config-if)#no shu
R2(config-if)# 
*Mar  1 00:18:36.135: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
R2(config-if)#
*Mar  1 00:18:37.139: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up

Procedemos a configurar nuestro proceso OSPF…

R2(config-if)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 192.168.1.32 0.0.0.31 area 0
R2(config-router)#network 192.168.1.96 0.0.0.31 area 0
R2(config-router)#
*Mar  1 00:20:34.947: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial0/0 from LOADING to FULL, Loading Done
R2(config-router)#network 192.168.1.128 0.0.0.31 area 0
R2(config-router)#exit

Por ultimo copiamos el archivo de configuración en ejecución al archivo de ejecución de inicio

R2#copy running-config st
R2#copy running-config startup-config
Destination filename [startup-config]? 
Building configuration...
[OK]

Ya esta configurado el Router 2 y como es de costumbre vamos a realizar algunas aclaraciones…

En una red y en un Router pueden ser configurados múltiples procesos de OSPF, por ello cada proceso OSPF debe ser identificado con un ID de proceso, de ahí que siempre usamos…

R2(config-if)#router ospf 1

Casi terminamos… Es hora de configurar el Router B, así que vamos a ello.

Direccionamiento:

R3#ena
R3#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R3(config)#int fa0/0
R3(config-if)#ip add
R3(config-if)#ip address 192.168.1.65 255.255.255.224
R3(config-if)#no shu
R3(config-if)#
*Mar  1 00:02:34.975: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar  1 00:02:35.975: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R3(config-if)#int se0/0                              
R3(config-if)#ip add
R3(config-if)#ip address 192.168.1.161 255.255.255.224
R3(config-if)#no shu
R3(config-if)#
*Mar  1 00:03:32.167: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up
R3(config-if)#
*Mar  1 00:03:33.171: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/0, changed state to up
R3(config-if)#int se0/1                               
R3(config-if)#ip add
R3(config-if)#ip address 192.168.1.158 255.255.255.224
R3(config-if)#no shu
R3(config-if)#
*Mar  1 00:04:22.167: %LINK-3-UPDOWN: Interface Serial0/1, changed state to up
*Mar  1 00:04:23.167: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial0/1, changed state to up
R3(config-if)#exit

OSPF config.

R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#net
R3(config-router)#network 192.168.1.64 0.0.0.31 area 0
R3(config-router)#network 192.168.1.128 0.0.0.31 area 0
R3(config-router)#
*Mar  1 00:08:13.639: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Serial0/1 from LOADING to FULL, Loading Done
R3(config-router)#network 192.168.1.160 0.0.0.31 area 0
R3(config-router)#
*Mar  1 00:08:30.219: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial0/0 from LOADING to FULL, Loading Done
R3(config-router)#end

Guardar las configuraciones.

R3#copy running-config st
R3#copy running-config startup-config
Destination filename [startup-config]? 
Building configuration...
[OK]
R3#

Listo!!!!

Pero antes de dar por finalizado, viene la tanda de aclaraciones ::)

No se si se habrán fijado en los avisos que van saltando a medida que vamos configurando OSPF, avisos como:

*Mar 1 00:20:34.947: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial0/0 from LOADING to FULL, Loading Done
*Mar 1 00:08:30.219: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Serial0/0 from LOADING to FULL, Loading Done
*Mar 1 00:08:13.639: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Serial0/1 from LOADING to FULL, Loading Done

Ummmm…. Interesante no?

Pues OSPF como protocolo de enrutamiento dinámico necesita conocer sus vecinos, conocer sus tablas de enrutamiento, anunciar sus propias redes conectadas, etc… y para lograr ese fin crea algo llamado Adyacencias  basándose en una regla de saludos, solicitudes y acuses de recibo y cuando logra unificar las bases de datos de todos los router en su área de acción llega su estado FULL de convergencia, lo que en resumen significa que: 

“Todos los routers en un área especifica conocen totalmente la topologia de la red así como sus costos”

Para saber si los enrutadores han logrado la Full convergencia solo debemos escribir:

R1#show ip ospf neighbor

Y veremos:

Adyacencias R1

Adyacencias R2

Adyacencias R3

Y ahora si, listo!!!!

Saludos por allá blogueros y si les gusto recuerden seguir mi blog, así como mi cuenta de Twitter y mi pagina de Facebook.

Gracias.

Calculadora de Subnet Mask, IP address, Broadcast, Wild Mask, Host Range y +

Saludos herman@s

Pues si te dedicas al networking resulta muy provechoso tener una aplicación en la terminal de la cual tirar cuando necesitamos calcular mascaras de Sub-Red, dirección broadcast, Wild Mask, resolver nombres de dominios, etc..

¿Como lo hacemos?

Todo lo que necesitamos es instalar una pequeña aplicación llamada SubnetCalc, con el siguiente comando:

    sudo apt-get install subnetcalc

Luego de instalada abrimos la terminal e introducimos:

cl0udswx@cl0udswx-l4b:~$ subnetcalc 31.13.73.97

Con lo cual obtendremos el siguiente resultado:

En pantalla conseguiremos:
Dirección en valor binario
Dirección de la red con prefijo
Mascara de subred
Cuantos bits de la dirección pertenecen a host y cuantos pertenecen a red
Cantidad máxima de host
Rango de host en esa red.

En este ejemplo utilice una dirección IP sin especificar prefijo por tanto no me mostrara dirección de broadcast ya que no se necesita en vínculos P2P (point to point), pero si lo hiciéramos con una dirección con prefijo de red pasaría esto:

Aquí tenemos todos los valores incluyendo el nombre de dominio.

Cabe destacar que funciona tanto con IPv4 como con IPv6, es sencilla, rápida y funcional, la misma ofrece un practico manual con solo teclear:

man subnetcalc

Espero le sea provechoso a mas de uno.

Curso Introducción a Linux “Free” (Linux Foundation)

Pues para los que gusten, en esta ocasión les traigo un curso de Linux impartido totalmente online, totalmente gratuito y nada mas y nada menos que por la mismísima Linux Foundation.

EDX

El curso tiene dos formas de ser tomado:

A) Usando el modo “Audit this course” que hara que sea totalmente gratis.

B) La segunda opción es haciendo una donación mínimo de 99 dolares y así conseguir un diploma certificado por LF.

En ambos casos el material sera totalmente el mismo.

Aquí un vídeo de Linus Torvalds invitándoles…

Aquí el link para el curso, simplemente deben registrarse con un mail valido.

https://www.edx.org/course/introduction-linux-linuxfoundationx-lfs101x-2#.VM1dpnaUfVM

Saludos por allá gente.