14 febrero 2011
DNI electrónico para Linux con OpenDNIe
Tanto la autenticación como la firma funcionan sin problemas en la web de validación del DNI electrónico de la DGP. OpenDNIe ha sido probado con éxito en distribuciones Linux Fedora 13 y 14 (32 bits). Además cuenta con todos los trámites y bienes legales -a falta de certificación- y la "bendición" de todas las partes implicadas, desde la Policía hasta la gente de OpenSC.
Para leer el artículo completo de la presentación en sociedad de OpenDNIe: Blog de Jonsy Gaviota, la persona que ha hecho realidad OpenDNIe.
:: Descarga directa de OpenDNIe
07 enero 2011
Recopilación de GUI frontends para IPtables (netfilter)
Poder gestionar iptables con una aplicación gráfica puede resultar de mucha utilidad para instalaciones en equipos personales al menos.
- Firestarter: Uno de los más conocidos. Se configura mediante GUI (gnome). Permite monitorizaciones de trafico.
- Guarddog: Pensado para escritorios KDE. Permite configuraciones sencillas y avanzadas, por lo que se adapta al nivel del usuario.
- KMyFirewall: Parecido a los anteriores y pensado para escritorios KDE.
- fwbuilder: Seguramente el más popular junto a Firestarter. Permite ser usado también mediante terminal y soporta más firewalls para otros sistemas, no solo iptables. bastante gráfico y recomendado.
Por otro lado tenemos existen frontends que se usan mediante terminal o ficheros de configuración. Especialmente útiles para automatizarlos mediante scripts, utilizarlos en servidores, o cualquiera de las ventajas que nos ofrece una terminal:
- ufw (Uncomplicated Firewall): Desarrollado por Canonical para Ubuntu. Permite configuraciones muy sencillas y potentes. La parte mala es que al ser relativamente nuevo todavía no está incluido en los repositorios de muchas distribuciones (por ejemplo Debian a día de hoy lo tiene en testing y sid, pero no en stable). Personalmente, es el preferido y recomendado, por Alberto Ortega de SbD, para usos no demasiado ninjas.
- shorewall: Sin duda es una de las estrellas en cuanto a popularidad, flexibilidad y potencia. Se interacciona con él mediante ficheros de configuración. Necesita múltiples ficheros, incluso para configuraciones simples. Está pensado para usuarios avanzados.
- uruk: Es un frontend muy ligero, lo que por un lado nos da facilidad a la hora de modificarlo a gusto, pero por otro nos limita a configuraciones no demasiado avanzadas. Funciona mediante un fichero de configuración en el que escribimos las reglas.
El criterio para seleccionar éstos frontends ha sido la calidad, popularidad y lanzamiento de versiones de cada uno, pero hay muchos más disponibles.
:: Fuente original: SbD (by Alberto Ortega)
:: Referencias: Debian Firewalls y Wikipedia
05 enero 2011
pwnshell: nueva shell remota para servicios web en jsp y tan buena como c99 en php
Por si alguien no sabe qué es o para que serviría una shell php o una shell jsp, es un script hecho en esos códigos que permitiría disponer de una shell remota (actuando como interfaz de un terminal linux como xterm u otro) para poder ejecutar comandos del sistema con la cuenta de usuario de esa aplicación web, por tanto con sus mismos permisos. Por tanto, desde estas shells se tienen bastantes funciones, como la de explorar directorios del servidor en que se encuentre, crear y eliminar archivos y directorios, leer y editar archivos, establecer conexiones contra una base de datos existe (como Oracle, MySQL o PostgreSQL), establecer conexiones con netcat si lo huebiese, cambiar permisos varios en el servidor, etc. Lo que viene siendo tener un ssh abierto en Internet.
Esto es un peligro si alguien coloca esto en un servidor tuyo, sobretodo si consigue explotar alguna vulnerabilidad local que le permita ganar acceso root al servidor. Por tanto, es importante saber que la mayoría de las veces, por no decir todas, estos scripts de interfaz shell, tanto php como jsp, son utilizados con fines maliciosos, como tratar de ganar acceso root a servidores donde logran subir estas shell, modificar páginas, y un largo etc.
15 junio 2006
Construye tu propio Firewall con SmoothWall y tu viejo PC
** Gracias a José Manuel Gómez, que nos cuenta lo siguiente desde Kriptopolis. **
El objetivo es disponer de un cortafuegos mediante hardware ideal para un usuario doméstico. Se trata de que la instalación sea sencilla y funcione perfectamente desde el principio, con la configuración por defecto. Si necesitas adaptarlo más a tus necesidades, lo podrás hacer después de una forma sencilla, mediante tu navegador habitual. El cortafuegos será completo, en el sentido de que además del firewall propiamente dicho, dispondrás de un proxy (Squid), un IDS o detector de intrusiones (Snort), herramientas de administración, servidor DHCP, gestión de IPs dinámicas, conexión a servidores horarios, posibilidad de VPN (red privada virtual), etc, etc.Si añado además que todo esto lo lograrás mediante un equipo Linux, es posible que te asustes y pienses que este proyecto excede tus posibilidades. Pero lo cierto es que no, porque no necesitas saber ni una palabra de Linux para que todo funcione al 100%.
Características del Proyecto:
Las posibles topologías y configuraciones de una red son casi infinitas, así que te anticipo que aquí nos limitaremos al caso más sencillo: tu PC viejo (cortafuegos) se conecta a Internet y tu PC nuevo se conecta al cortafuegos mediante un cable.
Todas las variantes (inalámbricas, etc.) son posibles, pero tendrás que indagar por tu cuenta en la abundante documentación disponible.
AVISO MUY IMPORTANTE: Necesitas dedicar tu viejo equipo al completo a este proyecto. Tu disco duro será formateado y todo lo que contenga desaparecerá. No se te ocurra seguir los pasos que se indican en un equipo donde quieras conservar el sistema operativo o la información que contenga, ni si se trata del único equipo de que dispones. ¿Queda claro? Entonces sigue leyendo...
Materiales necesariosVas a necesitar:
- Tu viejo PC: El mínimo recomendable es un Pentium (cualquier tipo de Pentium o AMD 586 o similares de Cyris o IBM, mejor con un procesador de 150 Mhz para arriba). En cuanto a RAM, cuanta más mejor, pero 32-64 MB sería el mínimo. ¿Disco duro? Ideal, más de 2GB (si es menor, menos sitio para ficheros de registro). Una unidad de CD-ROM facilita la instalación. No hace falta ratón. Teclado, tarjeta gráfica y monitor sólo hacen falta para la instalación, y pueden ser cualesquiera. Módem, sólo si te conectas a tu proveedor mediante uno. Tarjeta de red en el resto de casos.
- Una segunda tarjeta de red: Para instalarla tu viejo PC debe disponer de una ranura PCI libre. Tu nueva tarjeta ha de ser compatible con Linux, pero eso no representa ningún problema, porque sirven prácticamente todas. En mi caso compré la más barata que encontré (10 euros), Made in China y de chip, en principio, desconocido (la caja sólo exhibía un nada tranquilizador "compatible con Windows XP"). Sin embargo el cortafuegos (es decir, Linux) la reconoció de inmediato como portadora de un chip Realtek totalmente compatible. En mi caso el único problema que encontré fue con las interrupciones; mi viejo equipo estaba cargado de tarjetas y tuve que retirar algunas y reubicar otras (ensayo y error), hasta que todo funcionó.
- Un cable de red cruzado: Ojo aquí, porque no te va a servir el que viene con tu nueva tarjeta. Cuando se trata de unir equipo (viejo) con equipo (nuevo) necesitas que el cable sea cruzado, es decir, que los pines que "emiten" en uno vayan conectados a los que "reciben" del otro, y viceversa. En los envases de este tipo de cables suele figurar la palabra Crossover. Para que te hagas una idea:
El cablecito en cuestión me costó 12 euros, pero sin él no hay nada que hacer. Comprobarás que has acertado cuando, tras encender y unir ambos equipos con este cable, veas que se iluminan las lucecitas de ambas tarjetas de red. Sin este requisito previo es inútil intentar nada. - SmoothWall: Es el imprescindible software que dará vida al invento. Se trata en realidad de una distribución Linux adaptada a su funcionamiento como cortafuegos. Gratis y de código libre, con licencia GPL. Debes descargar SmoothWall Express 2.0 y quemar un CD con esa imagen ISO. Baja rápido y son sólo unos 40 megas.
Con todo esto, ya estás preparado para empezar.
Instalación:
Si tu viejo PC arranca desde el CD (revisa la BIOS a ver si puedes ajustarlo) la instalación es coser y cantar. Si no es el caso habrás de generar disquetes de arranque y el asunto se complica un poco, aunque está todo perfectamente explicado en la documentación, tres pdfs muy recomendables en caso de problemas, pero en inglés. Por cierto, toda la instalación está en inglés, aunque prácticamente sólo necesitas elegir las opciones por defecto y aceptar todo. Aunque no distingas el inglés del chino, con las explicaciones y "cutre-fotos" que incluyo en el artículo tampoco deberías tener mayor problema.
Metes el CD y arrancas el equipo viejo. Al poco tiempo esta es la pantalla de presentación:
y a pulsar Enter. Se te va a avisar, de la siguiente forma activa:
y por pasiva, de que el disco duro va a ser formateado y que puedes despedirte de cualquier dato que tuvieras en él. Si a estas alturas no tienes claro esto, mejor no sigas y olvides todo el asunto. Insisto: tras la instalación el viejo PC será un cortafuegos, y no un PC al uso.
El equipo se formatea, se crea el sistema de archivo linux, se instala lilo como gestor de arranque y se instalan todos los ficheros necesarios. Se pasa a buscar (Probe) la tarjeta de red del cortafuegos que usarás para conectar a ella tu equipo (el bueno, el que contiene tu sistema operativo y tus ficheros más queridos). Una vez detectada la primera tarjeta, se te presenta la opción:
de aceptarla (OK) o seguir buscando (Skip) para elegir la segunda tarjeta disponible (en principio esto es indiferente y puedes aceptar la primera que se detecte).
Una vez elegida la tarjeta de red se te presenta la opción de configurar su IP y su máscara de red:
Esto puede sonar complicado, pero resulta tan sencillo como aceptar las opciones por defecto y pulsar OK.
Finalizada la operación el CD se expulsa y el sistema te pide ser rearrancado:
Tras el rearranque, viene la fase de configuración.
Configuración
A continuación se te pregunta si quieres restaurar una configuración previa desde un disquete (No), el teclado a usar (es), y el nombre de host (también nos vale el propuesto, smoothwall). Si te conectas por un proxy aquí deben ir los datos (si no, en blanco y OK). Deshabilita RDSI (ISDN, en sajón) y también ADSL en mi caso (conexión a ONO por módem cable). Puede que aquí tengas que configurar la conexión que tú utilizas.
Lo más peculiar viene ahora, al elegir la configuración de Red. SmoothWall tiene un concepto un tanto "semafórico" de los colores de los interfaces de red. Así GREEN es el interfaz que configuraste en la etapa anterior, al que enchufarás tu equipo real. RED es el interfaz (la tarjeta) donde insertarás el cable por el que tu proveedor te conecta a Internet. YELLOW no te importa mucho ahora; corresponde a la llamada Zona Desmilitarizada (DMZ), donde se ubican los servidores (web, mail) que han de tener acceso desde la Red.
En nuestro caso, la configuración que nos interesa es GREEN + RED, así que hay que pasar a Card Assignments para detectar (Probe) tu segunda tarjeta:
Es la tarjeta que conectarás a Internet.
Ahora, a configurarla. Address Setting -> Red -> OK. En este caso, en
Se elige DHCP, porque el equipo recibe una IP dinámica por esa vía. Si la tuya es fija, selecciona la opción correspondiente (Static). El resto, queda tal cual.
Toca configurar el servidor DHCP (no el anterior, que era un cliente del de tu proveedor, sino el que dará una IP al equipo o equipos que enchufes al cortafuegos). Pero basta seleccionar:
Muchas casillas Enabled y dejar igual el resto. Observa que tu equipo (el real), o equipos, obtendrán direcciones entre 192.168.0.100 y 192.168.0.200 con esta configuración.
Se te van a pedir ahora tres nombres de login y tres contraseñas. Anótalas.
Admin es el más importante, porque es el par login/password que te permitirá afinar la configuración a través de tu navegador web (sección siguiente). Root te permite acceder al cortafuegos vía consola de comandos Linux (requeriría volver a conectar monitor y teclado al cortafuegos, pero tranquilo: no lo vas a necesitar para nada). Por último, Setup te permite reconfigurar el cortafuegos desde consola (tampoco lo necesitarás prácticamente nunca; siempre puedes optar por reinstalar).
Se acabó lo que se daba. El sistema pide ser arrancado de nuevo.
De hecho, puedes pulsar OK y desconectar teclado y monitor de tu viejo PC, reconvertido ya a cortafuegos. Salvo labores de chequeo, reinstalación o similares, no necesitarás conectarle teclado y monitor nunca más. Eso sí: asegúrate antes de que tu BIOS te permite arrancar sin teclado conectado, porque si no el sistema se puede quedar detenido y el cortafuegos no llegar a funcionar.
¿Has conectado el cable que une los dos PCs? Un extremo al equipo que vas a utilizar y el otro al interfaz que definiste como GREEN de tu nuevo cortafuegos. Al interfaz RED de éste conecta el cable de tu proveedor de Internet. Si dudas, puedes probar de nuevo cambiando los cables.
Puesta en marcha
Tu ordenador "bueno" tiene conectado en su tarjeta de red el cable de red que viene de tu flamante cortafuegos. El cortafuegos (tu caduco PC) recibe el cable del proveedor y por su segunda tarjeta conecta con el equipo bueno. Sólo el ordenador bueno necesita monitor y teclado. Enciende ambos equipos.
Lo más probable es que el equipo bueno arranque antes que el cortafuegos, por lo que es fácil que te aparezca la red como desconectada y no puedas visitar Internet hasta que el cortafuegos acabe de arrancar (se debe a que aún no dispones de dirección IP, que ahora te tiene que dar tu cortafuegos).
Pero, ¿cómo saber cuándo ha arrancado el cortafuegos, si ya no tiene monitor?. Fácil: por un lado, oirás un pitido compuesto de tres tonos; por otro, tu equipo "bueno" dispondrá de conectividad en cuanto el servidor DHCP del cortafuegos le dé una IP.
Obviamente esto debe suceder con independencia del sistema operativo de tu equipo "bueno" (en él puedes usar Windows, Linux o lo que quieras). Si no ocurre y sigues sin conexión a Internet, o bien el arranque del cortafuegos no se ha completado (necesitarás volver al principio, conectarle monitor y teclado e investigar qué ocurre) o bien la conexión entre ambos equipos no va según lo esperado (si las luces de ambas tarjetas de red -la del equipo nuevo y la del cortafuegos- funcionan prueba a intercambiar las conexiones en el cortafuegos. Si las luces de la tarjeta de red del equipo nuevo no encienden, probablemente falla el cable).
Si todo funciona según lo esperado y puedes conectarte a Internet sin problemas, acude a un servicio web de escaneo de puertos y comprueba que todos tus puertos (excepto el 8, 80 y 113 con la configuración por defecto), aparecen como Blocked, es decir, invisibles.
Si es así, enhorabuena: has completado el proyecto con éxito, pero aún puedes afinar más tu configuración como te explico en la siguiente sección.
Ajuste fino
Puede que no estés conforme con la configuración por defecto, que prefieras abrir o cerrar determinados puertos, poner en marcha tu proxy o tu detector de intrusiones, revisar tus ficheros de registro, ajustar la hora, instalar parches, etc, etc.
Si la instalación fue correcta, puedes hacer eso y más mediante tu navegador habitual, sin más que teclear la siguiente dirección:
https://192.168.0.1:441
Se trata de una conexión segura con tu cortafuegos. Acepta el certificado y teclea la contraseña que elegiste para admin durante la instalación. Te aparecerá la pantalla de bienvenida de tu nuevo cortafuegos:
Si observas bien, verás que se te indica que existen actualizaciones sin instalar:
Para instalarlas pulsa la pestaña Maintenance. En el momento de escribir este artículo existen 8 actualizaciones disponibles. Pulsa sobre info en la primera de ellas y descárgala a tu PC. Puedes instalarla desde el mismo interfaz (Examinar -> Upload). Tras instalar la primera has de volver a arrancar el cortafuegos (no, no toques el botón de encendido del viejo PC; mejor usa la pestaña Shutdown y luego Reboot). Repite el proceso (incluido el rearranque) con las actualizaciones siguientes (siempre en orden consecutivo, de la 2 a la 8). Al finalizar, tu cortafuegos estará totalmente al día.
Conclusión
Si has llegado hasta aquí con éxito, es más que probable que a partir de este punto no necesites mi ayuda. Las posibilidades de configuración de tu nuevo cortafuegos son muchas y no me toca a mí tratarlas todas. Dispones de las herramientas y los documentos necesarios. Además, SmoothWall dispone de un animado foro de usuarios donde puedes aprender mucho más.
12 junio 2006
Ataque a sshd2 v.2.0.11 por fuerza bruta (vulnerabilidad SSH)
De la mano de los españoles J.J.F./Hackers Team, autodenominados como "grupo de hackers blancos", nos llega este nuevo aviso de seguridad. Afecta a los sistemas Unix que tengan instalados sshd2 versión 2.0.11 con las opciones por defecto, las cuales permiten, sin dejar ningún rastro, un ataque por fuerza bruta.
Ssh (Secure Shell) es un programa de login remoto que viene a reemplazar a rlogin, rsh y rpc, permitiendo la comunicación con otra máquina para administrarla remotamente, ejecutar comandos, transferir ficheros, etc. En todo momento, Ssh, utiliza métodos
de cifrado (RSA, IDEA, triple-DES, DES, Blowfish,...) para proveer autentificación y comunicaciones seguras a través de canales inseguros, como puede ser Internet.
En el aviso de J.J.F./Hackers Team describen como "en la instalacion por defecto del sshd2 (hasta la version 2.0.11), se deja una puerta libre a un ataque de brute force sin loguear la ip atacante por parte del sshd. A partir de la versión 2.0.12 ya se loguea la conexión."
Prosiguen explicando como se puede llevar acabo el proceso evitando en todo momento el que se registre la IP del atacante: "el demonio sshd al conectar con un cliente ssh tiene un numero definido de intentos para que le envíen la password correcta antes de desconectar. En la instalación por defecto este numero de intentos es 3. Si antes de agotar los intentos rompemos la conexión, el sshd no logueara los intentos de conexión, y es mas, tampoco logueará la ip del cliente que conecto con el demonio."
Por último, recomiendan actualizarse a la versión 2.0.12 o superior, donde se corrige este problema. También proporcionan la solución en la versión afectada, que pasa por "editar el fichero sshd2_config (normalmente en /etc/ssh2) ajustar el campo PasswordGuesses con el valor 1. De este modo cada vez que se intente una password y se falle el sistema logueara via syslog".
Más información:
J.J.F./Hackers Team
SSH Communications Security
Veamos un ejemplo:Supongamos que el usuario alfonso NO existe en la máquina 192.168.0.1, pues bien, podríamos saberlo simplemente tratando de conectarnos a la máquina vía ssh utilizando el nombre de usuario alfonso. Después de esto, cuando introduzcamos la password, nos dirá que no es la correcta y nos desconectará inmediatamente sin darnos opción a intentarlo de nuevo con otra password. Algo así:
$ssh 192.168.0.1 -l alfonso
alfonso's password: <>
Disconnected; authentication error
(Authentication method disabled.
Sin embargo, después de ver que alfonso NO es un usuario autorizado en la máquina, podemos tratar de probar suerte con otras posibilidades para el nombre de usuario, como por ejemplo altellez. Algo así:
$ssh 192.168.0.1 -l altellez
altellez's password: <>
altellez's password:
En este momento, se dispone de un nombre de usuario correcto. Esto supone una grave vulnerabilidad, que podría ser explotada por un atacante remoto para generar un ataque de diccionario.
La solución más rápida para el bug, y que curiosamente también resuelve el bug anunciado por J.J.F./Hackers Team es, simplemente, editar el fichero de configuración del servidor de SSH (habitualmente el sshd2_config, en /etc/ssh2) y cambiar el valor de "PasswordGuesses" a 1.