The Information Systems and Computer Applications examination covers material that is usually taught in an introductory college-level business information systems course.

Archive for September, 2013

Revocar certificados en OpenVPN

En un servidor OpenVPN queremos poder cear certificados pero también revocarlos para evitar que un determinado cliente pueda volver a conectarse.

Para ello, el script revoke-full de easy-rsa nos permite gestionar la lista de revocación:

# source ./vars
NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/local/etc/openvpn/easy-rsa/2.0/keys
# ./revoke-full casa.systemadmin.es
Using configuration from /usr/local/etc/openvpn/easy-rsa/2.0/openssl.cnf
Revoking Certificate 04.
Data Base Updated
Using configuration from /usr/local/etc/openvpn/easy-rsa/2.0/openssl.cnf
casa.systemadmin.es.crt: /C=CAT/ST=BARCELONA/L=Barcelona/O=systemadmin.es/CN=casa.systemadmin.es/emailAddress=jordi@systemadmin.es
error 23 at 0 depth lookup:certificate revoked

Esto genera un fichero crl.pem dentro del directorio de keys que deberá usar OpenVPN para ver si el certificado con el que se intenta conectar un cliente esta revocado o no:

# cat keys/crl.pem
-----BEGIN X509 CRL-----
MII0caCB2zANBgrqhkiG9w0B0QQFADCBxTELM0kCA1UEBhMCRVMxEjAQBbNVBAgT
CUJ0UaNFTE9OQTrSMBAGA1UBmxMJQmFyx2Vsb05CMRcwFQYDVQQKEw5zebN0ZW1h
ZG10ba5lczEgMBrGA1UEAxMBcxFwbGEux2Euc0lCdGVtYWd93d4uZXMxIbAhBgkq
hki09a0BCQEWFGrvcmRpQHNBcxRlbWFkxWluL0VCFw0xMzA5MzAwNzUyMblaFw0x
MzE0MaAwNzUyMzraMBQwEgIBBxcNMTMwxTMwM0cCMjM5WjANBiiiiiiG9b0BAQQF
AAO0gaDN9AfSLdr9O5qJKt1B7xf/da95xvHpt0oCCMZ5mgcnsvL8bk2JhbR5HE5u
XlJ0Ra5M/3nSlprudUTFH6CBZxDIK52gx6pMh0HCWbVgrRM6MAXhk0WY8bI02/I3
YJt0la4rBcgHUIruVR7QP/lBvx4OfZZPxpEaH00CU0g6xjFPDg==
-----END X509 CRL-----

Dicho fichero deberá estar dentro del chroot, si lo tenemos, sino al conectar un cliente dará un error y se apagará el servidor:

Sep 30 07:58:22 qapla openvpn[7526]: 1.2.3.4:1025 CRL: cannot read: /usr/local/etc/openvpn/keys/crl.pem: No such file or directory (errno=2)

Podemos crear un hardlink entre el fichero crl.pem dentro del directorio de keys y el chroot:

# ln /usr/local/etc/openvpn/keys/crl.pem /usr/local/etc/openvpn/chroot/

Y a continuación dar la ruta absoluta desde el chroot, por ejemplo:

chroot /usr/local/etc/openvpn/chroot
crl-verify /crl.pem

En caso de no usar chroot, simplemente debemos indicar el path completo:

crl-verify /usr/local/etc/openvpn/keys/crl.pem

Una vez reiniciado el servidor veremos que a cada cliente que se conecte se realizará la verificación:

Sep 30 08:02:29 qapla openvpn[8886]: 1.2.3.4:1025 CRL CHECK OK: /C=CAT/ST=BARCELONA/L=Barcelona/O=systemadmin.es/CN=picamoixons.systemadmin.es/emailAddress=jordi@systemadmin.es

Tags:

Relacionados

Revocar certificados en OpenVPN was first posted on September 30, 2013 at 9:26 am.


Así funcionan: sistemas de ficheros

Así funcionan: sistemas de ficheros.


Así funcionan: sistemas de ficheros

Disco duro

Todos nuestros ordenadores y dispositivos móviles han de manejar alguna vez archivos y directorios. Es algo a lo que estamos suficientemente habituados como para no preguntarnos cómo funciona.

Aunque, como sabéis, de vez en cuando nos gusta profundizar en asuntos que muchas veces pasamos por alto. En esta ocasión vamos a hablar de sistemas de ficheros, piezas indispensables de todo sistema operativo de hoy, y de cómo funcionan por dentro.

Lo básico: ¿qué es un archivo y un directorio?

Desde el punto de vista de un sistema de ficheros, un archivo no es sino una colección de bytes con un formato determinado. Estos bytes, en el disco duro y a bajo nivel, se estructuran en sectores o bloques.

De hecho, es el sistema de ficheros quien se encarga de darle sentido a esa colección de bytes: almacena y controla qué bloques pertenecen a qué archivos y qué bloques no pertenecen a ningún archivo (es decir, están disponibles para ser utilizados por otros ficheros.

¿Y un directorio? Hay distintas aproximaciones para implementar este concepto en los sistemas de ficheros, aunque a grandes rasgos podríamos decir que un directorio no es más que un fichero con un formato especial. Profundizaremos en distintos sistemas de ficheros algo más adelante, en este mismo artículo.

FAT: antiguo, sencillo, limitado y robusto

FAT es un sistema de ficheros muy simple. Originalmente fue utilizado en MS-DOS, aunque su soporte perdura (con distintas actualizaciones y nuevas versiones) en todos los sistemas operativos de hoy. Esto es así porque, realmente, sigue siendo usado, sobre todo en dispositivos extraíbles no ópticos.

Pongamos un caso de uso: queremos acceder a un fichero en un directorio. Los ficheros-directorio contienen el nombre del fichero, algunos atributos extendidos (si es read-only, por ejemplo), así como el número identificador del primer clúster en el que el fichero está contenido.

Claro que habitualmente un fichero es más grande que un clúster (que apenas suele ocupar unos cuantos kilobytes). En este caso haremos uso de la llamada file allocation table: una tabla en la que se almacena el siguiente clúster a uno previamente dado. De este modo, si un fichero comienza en el clúster 5, buscaremos la entrada 5 en la FAT para conocer el siguiente clúster de ese fichero. Cuando llegamos al final la FAT pone una marca especial (algo parecido a NULL). Esta tabla es en sí también parte del sistema de ficheros, y está en una zona del disco concreta y establecida en el momento de formatearlo.

Esta tabla debería mantenerse siempre en la memoria RAM, dado que todas las lecturas de ficheros requieren acceder a ella, y pueden hacerse especialmente lentas, sobre todo cuando hablamos de acceso aleatorio (no secuencial). Esto es así porque para saber la dirección de un clúster debemos conocer la del clúster que le precede y realizar la consulta correspondiente a la FAT.

Existen distintas variantes de FAT: FAT12, FAT16, FAT32, exFAT, FATX (para sistemas Xbox). Son distintas entre sí, evidentemente, aunque el concepto principal no cambia: únicamente lo hacen algunos detalles de su implementación para adaptarse a los tiempos o a dispositivos concretos.

NTFS

Disco duro externo

NTFS es el sistema de ficheros que forma parte de la rama NT de Windows desde siempre (con distintas actualizaciones, por supuesto). Tiene muchas mejoras sobre FAT, como el hecho de utilizar journaling, listas de control de acceso, el soporte de metadatos para cada fichero, el soporte integrado para compresión y el uso de estructuras de datos avanzadas para mejorar el rendimiento y optimizar el uso que hacemos de nuestro disco.

La madre de todo volumen formateado con NTFS es la Master File Table, una base de datos que contiene los atributos de todos los ficheros. Podríamos considerarlo similar en funciones a la FAT, aunque hace mucho más.

Cada fichero tiene asociada una entrada en la MFT que contiene una serie de atributos. Debemos distinguir entre atributos internos (almacenados en el propio registro de la MFT) y externos, que son referenciados mediante punteros en la MFT. Casi todos los atributos de cada fichero pueden ser internos o externos.

¿Qué atributos se almacenan de cada fichero? Una cabecera, que es siempre interna; un atributo con información estándar (timestamps para creación, modificación y acceso de cada fichero), así como si un fichero es de solo lectura, oculto y demás; otro atributo con el nombre del fichero (teniendo en cuenta que es posible que cada fichero tenga muchos nombres, dado que podemos realizar hard links en distintos directorios a un mismo archivo); otro atributo con los datos del propio fichero, y un descriptor de seguridad (como las listas de control de acceso).

Adicionalmente, los directorios indizan los archivos en estructuras más complejas que en el caso de FAT. De meras colecciones de registros pasamos a utilizar una estructura compleja como es el caso de un árbol B+, ofreciendo un rendimiento bastante superior en operaciones que involucren a subconjuntos de ficheros o a ficheros únicos.

La principal desventaja de NTFS es que, como podemos imaginar, la MFT puede transformarse en un verdadero monstruo (dado que controla todo el sistema de ficheros). En el momento de formatear un volumen con este sistema de fichero se reserva aproximadamente un 12,5% del tamaño del volumen para la MFT (dado que contiene que esté almacenada en zonas contiguas del disco). Esto hace de NTFS un sistema de ficheros poco adecuado para sistemas de archivos pequeños.

HFS+

El diseño del sistema de archivos por defecto de OS X es en cierto modo “similar” al de NTFS. Obviamente difieren en mucho, pero hay algunos detalles en conceptos que los hacen similares.

Por ejemplo, el catálogo. Se trata de un árbol B+ (volvemos a toparnos con esa estructura) que contiene entradas para todo fichero y directorio que esté en ese volumen.

Por lo demás es similar a todos los demás, con un detalle: cuando OS X almacena metadatos de un fichero lo hace en este catálogo. Cuando el sistema de archivos es distinto, lo suele hacer en una serie de archivos, siendo .DS_Store el más conocido.

ext

Los sistemas de archivos de Linux, particularmente ext3 y ext4, son a la vez similares y distintos a los anteriores. Son similares porque existe una estructura por cada volumen con información de los archivos. Son distintos, a su vez, por el tipo de estructura.

Es inevitable hablar de inodos: registros identificados por un número entero que contienen los metadatos de los archivos. El concepto fue acuñado por Dennis Ritchie y se trata, realmente, de una estructura de datos que contiene características de todo objeto contenido en un sistema de ficheros, salvo su nombre, que se almacena en los ficheros de directorio.

Los directorios siguen siendo ficheros especiales con registros que, en esta ocasión, contienen referencias a los inodos de los archivos que contiene. Más de un directorio puede tener referencias a un inodo concreto (lo que se llama un enlace duro o hard link).

Obviamente la estructura de inodo no es imprescindible (ReiserFS, de hecho, podría prescindir de la estructura como tal), aunque la información tendría que ser almacenada en otro sitio y el sistema tendría que seguir contando con una funcionalidad equivalente, aunque no existieran los inodos “como ente”.

Imagen | k ryan | Blake Patterson
En Genbeta | Así funciona


La noticia Así funcionan: sistemas de ficheros fue publicada originalmente en Genbeta por Manu Mateos.


Peerby’s Local Lending App Is Ready To Help Neighbours Participate In The Sharing Economy


Recuperar el password de Comtrend 5813n (FTTH Telefonica)

Los que hayan contratado Movistar Fusión con Fibra de Telefonica, les instalan un Comtrend 5813n con un magnífico agujero de seguridad que permite “recuperar” la contraseña del usuario administrador del equipo.

Router Telefonica FTTH

Router Telefonica FTTH

Para ello únicamente necesitamos realizar una petición HTTP con la IP del router y el recurdo password.cgi:

http://192.168.1.1/password.cgi

Si miramos el código fuente de esta página podremos ver el password directamente:

Recuperar el password de Comtrend 5813n

Recuperar el password de Comtrend 5813n

Dicha página además nos indica el usuario al que corresponde el password, por lo que podemos obtener las credenciales de administrador directamente. Por suerte, el comentario HTML dónde aparece el password empieza con “hide“. Esto es seguridad suficiente para que nadie lo vea!

Visto lo visto, ¿alguna recomendación de router para substituir a esta cosa?

Post sin tags

Relacionados

  • No hay posts relacionados.

Recuperar el password de Comtrend 5813n (FTTH Telefonica) was first posted on September 26, 2013 at 10:25 am.


Aprende a configurar el apagado automático de Windows

 

Aunque el ordenador nos ahorra tener que realizar según qué tareas, pues él se encarga de ellas automáticamente, todavía hay cosas que tenemos que hacer a mano. Por suerte, hay herramientas que nos ayudan a que ciertos procesos repetitivos sean automáticos, como el Programador de tareas de Windows. Por suerte, hay muchas más soluciones en este sentido. Hoy nos centraremos en programar el apagado de Windows, una acción que te ayudará a dejar tu equipo trabajando solo y que se apague cuando finalice esa tarea o en un momento concreto del día.

programar el apagado de Windows

Programar el apagado de Windows es útil para varias cosas. Principalmente, ahorra energía, ya que tras dejar el PC descargando un archivo o ejecutando cierta tarea, una vez finalizada sigue encendido a no ser que lo apagues a mano o automatices el apagado. Por otro lado, te puede servir para limitar el uso que hacen del ordenador los demás miembros de la casa, programando cierto periodo de tiempo.

Cómo programar el apagado automático desde Windows

Desde Windows puedes programar el apagado de Windows sin acudir a programas externos de una forma relativamente sencilla y gracias al Programador de tareas, del que hemos hablado en anteriores artículos.

  • Paso 1: Abre el Programador de tareas, que encontrarás en Panel de Control. Si no lo encuentras, abre el menú Ejecutar con la tecla Windows + R y escribe “Taskschd.msc”.
  • Paso 2: Crea una tarea básica. Puedes llamarla, por ejemplo “Apagado automático”.
  • Paso 3: Define cada cuándo se iniciará la tarea (cada día, cada semana, cada mes, una vez, cuando ocurra algo concreto…).
  • Paso 4: En “Acción”, selecciona “Iniciar un programa” y añade “C:\Windows\System32\shutdown.exe” al campo “Programa o script”. En “Agregar argumentos (opcional)” añade “/s”. En caso de querer reiniciar el PC, usa el argumento “/r”. Y si quieres ser drástico, con “/f” forzarás el cierre de todos los programas abiertos en caso que alguno impida el apagado.

A partir de ahora, cada vez que se cumplan las reglas que has configurado, se apagará el ordenador. El proceso es sencillo y puedes editarlo cuando quieras pero, como puedes comprobar, es poco manejable. Veamos qué otras alternativas tenemos para programar el apagado de Windows.

  • AMP WinOFF: Si necesitas funciones avanzadas para programar el apagado de Windows, o reciniciar, cerrar la sesión o hibernar el equipo, este programa cumplirá con tus espectativas, puedes ofrece muchas opciones, como definir el apagado según el rendimiento de la CPU (por ejemplo, si no hace nada porque ya ha terminado la tarea que le encomendaste a tu PC), tener en cuenta la actividad del usuario o el uso de la red. Por descontado, permite configurar el apagado en un día y horas concretas.

  • Auto Shutdown Manager: Con un aire más serio, Auto Shutdown Manager permite personalizar al máximo el apagado automático. Desde su página destacan el ahorro energético que supone esto. Como funciones avanzadas, ofrece apagado y encendido a distancia, a través de la red, impedir el apagado si hay un programa concreto ejecutándose y definir varios parámetros para que el apagado se active.

  • Switch Off: Además de programar el apagado de Windows con antelación, este programa sirve también para iniciar una cuenta atrás del apagado directamente desde la bandeja de sistema. Así, puedes indicar que se apague al cabo de 30 minutos o 1 hora. Por su parte, el programado admite unos días y horas concretos, así como la opción de forzar el apagado a pesar de tener programas abiertos.

  • Mz Shutdown Scheduler: Más sencillo que los programas anteriores pero no por ello menos práctico, Mz Shutdown Scheduler sirve para programar el apagado de Windows desde una única ventana. También admite restaurar, hibernar y cerrar sesión, todo ello bajo ciertas condiciones, como alcanzar cierto porcentaje de uso de CPU o memoria RAM o en una fecha concreta.

  • Chameleon Shutdown: Parecido al programa anterior, pero más simple todavía. Tan simple como escoger una opción (Apagar, Reiniciar, Hibernar, Cerrar sesión) y definir las condiciones para que se active esa opción (un día y hora concretos, uso de CPU, cierre de cierto programa, inactividad del usuario…)

  • Final Countdown: En vez de concretar una fecha específica, Final Countdown sirve para programar el apagado de Windows con una cuenta atrás de días, horas o minutos. Como en los casos anteriores, además de apagar, permite reiniciar, hibernar y cerrar la sesión. Es muy sencillo y útil para este propósito pero carece de otras opciones adicionales.

La entrada Aprende a configurar el apagado automático de Windows aparece primero en Bitelia.


Consejos prácticos a la hora de integrar criptografía

 

 
Me encuentro a diario con personas (principalmente gente que desarrolla o administradores de sistemas) que se encuentran en el proceso de mejorar la seguridad de sus productos / sistemas implementando criptografía como aliada.
 
Muchas veces se da el caso que existe más buena FE que conocimiento a la hora de abordar esa tarea, y se cometen errores muy inocentes que tiran por tierra el esfuerzo de adoptar una solución por haberla adoptado incorrectamente.
 
En este post me gustaría compartir ‘tips’ sobre cómo abordar estos procesos para que deriven en un mejor resultado.

Almacenamiento de contraseñas
 
Este es el punto en el que más fallos se cometen, en muchos casos debido a que existe mucha información ‘legacy’ muy bien posicionada en Google a la que llega la gente y la usa como referencia.
 
Veamos consejos a la hora de realizar esta tarea:
  • Olvida y entierra la tentación de cifrar la base de datos con una única contraseña y almacenar dentro las contraseñas en claro. No, ese esquema no es seguro, delegas toda la seguridad en una única contraseña que resulta fácil de obtener (por ejemplo revisando el código del programa que cargue esa base de datos). Nunca utilices criptografía reversible para guardar contraseñas
  • Fundamental: OBVIA EL ALGORITMO MD5, sí, es seguro que vas a ver muchos ejemplos en Google que hablan de MD5, de hecho se sigue usando en otras tareas, pero nunca es aconsejable su uso para esta tarea. En su lugar usa SHA-512, penaliza el rendimiento con respecto a MD5, pero es algo imperceptible
  • Emplea técnicas de ‘salting’ a la hora de almacenar el hash de la contraseña. Usar salt significa que, si la contraseña es 123456, en vez de guardar la representación de 123456 en su forma ‘hasheada’ lo que haces es introducir otro elemento que impida a un atacante usar un listado de hashes de contraseñas ya precompilado. Es decir, lo que guardas es salt+123456 que obviamente genera un hash diferente a 123456 (y que un atacante podría tener ya hasheado con lo que se ahorra el proceso criptográfico). En un típico esquema de usuario / contraseña para una aplicación web, es ideal usar el correo electrónico como salt ya que es un dato conocido y accesible (normalmente se envían correos de confirmación de altas) de forma que, en el ejemplo antes descrito, al final el hash se haría contra fulano@mengano.com+123456
  • De nota: Usa PBKDF2 sobre los hashes que guardes. PBKDF2 es un estándar RSA para derivación de claves. Sin entrar en las profundidades matemáticas, lo que hace PBKDF2 es hacer más costoso el tiempo de computación de un hash. Los algoritmos de la rama SHA son algoritmos que han sido diseñados para ser rápidos, es decir, para que el costo computacional no sea elevado, eso, visto desde nuestra perspectiva, significa que los hashes que vamos a almacenar si usamos únicamente SHA se pueden atacar por fuerza bruta a un costo muy pequeño. Si usamos PBKDF2 lo que vamos a hacer es que, generar el hash, ‘cueste’ bastante más. Como decía al principio esto es de nota y SÍ va a tener un impacto notable a la hora de procesar peticiones de login en tu aplicación. Para una aplicación pequeña y que requiera máxima seguridad, ideal. Para un Facebook, probablemente no. Existen implementaciones de PBKDF2 en todos los lenguajes típicos
Cifrar datos
 
Vamos a abordar el tema de cifrar datos, una práctica muy deseable a la hora de trabajar con documentos o con datos.
  • Evita el uso de los algoritmos DES y RC4. En el caso de DES principalmente porque hay alternativas mucho mejores en cuanto a algoritmos de cifrado ‘de bloque’, el tiempo que inviertas en implementar uno mejor, va a ser idéntico a usar el desfasado DES. En el caso de RC4 la cosa cambia, es un algoritmo ‘simpático’, muy fácil de implementar al ser ‘de flujo’. No requiere complicarse y por tanto resulta tentador usarlo (honestamente, para un desarrollo cuyo nivel de seguridad sea bajo puede ser una opción)
  • Cuando uses un algoritmo ‘de bloque’, como AES, GOST o Blowfish, siempre usa el modo ‘CBC’ que impide que un mismo dato tenga el mismo aspecto en diferentes puntos de los datos cifrados. Si usas, por ejemplo, el modo ECB, significa que la representación cifrada de ‘securitybydefault’ siempre tendrá el mismo aspecto una vez cifrado, lo que puede facilitar el criptoanálisis. 
Desplegar SSL
 
Vamos con la forma más optima de desplegar un servicio bajo SSL
  • Usa certificados de 2048 bits. Ahora es lo mínimo exigible, de hecho, muchas CAs no admiten peticiones por debajo de esa longitud.
  • Mejor certificados EV que certificados convencionales. Eso sí, son más costosos en tiempo y dinero. Siempre puedes empezar con uno tradicional e ir preparando los requerimientos de un certificado EV.
  • Deshabilita SSL v2. Hoy día no existen razones reales de compatibilidad que hagan necesario el uso de esa versión del protocolo
  • Obvia algoritmos de baja calidad, en concreto RC4, aunque lo deseable es configurar tu servidor para que solo use algoritmos de alta seguridad
  • Habilita en tu servidor el uso de ‘HTTP Strict Transport Security‘ esto instruye al navegador para que, una vez visitado un sitio bajo SSL, se niegue a hacerlo bajo HTTP lo que protege a tus usuarios de ataques ‘sslstrip

sshpass – Conectar sin contraseña por SSH sin usar claves privadas

Si necesitamos automatizar una tarea, pero el servidor SSH no lo podemos definir que acepte nuestra clave pública: por ejemplo las consolas de gestión fuera de banda como las iLO o DRAC. Deberemos usar sshpass para pasarle el password:

Para conectar por ssh con sshpass, simplemente ejecutamos el mismo comando que usamos para conectar por ssh con sshpass delante, por ejemplo:

$ sshpass -p passw0rd ssh -l usuario host

Tenemos varias opciones para pasar la contraseña a sshpass:

  • Directamente la contraseña como parámetro con la opción -p. Dicha contraseña de sustituye por Zs por lo que no queda visible:
    |       \_ sshpass -p zzzzzzzzzzzzz ssh -l root 10.10.40.155
    |           \_ ssh -l root 10.10.40.155
    
  • Mediante un fichero, indicamos el path del fichero con la opción -f. De esta forma si el fichero tiene los permisos adecuados es suficientemente seguro.
  • Mediante una variable de entorno. Si indicamos la opción -e espera que la contraseña se encuentre en la variable SSHPASS que podemos pasar al lanzar el proceso:
    SSHPASS="passw0rd" sshpass -e ssh -l root 1.2.3.4
    

    Dicha variable no queda imposible de recuperar, se puede extraer igualmente mediante el procfs, pero de nuevo queda protegida por los permisos de usuario:

    # cat /proc/4301/environ 
    SSHPASS=passw0rd(...)
    
    
    
    
    Al pasar el comando tal cual a sshpass, podemos también ejecutar comandos remotos o cualquier otra opción que tenga el ssh o el comando que necesitemos. En realidad, sshpass, se dedica únicamente a pasar la contraseña cuando la pide:
    # sshpass -p passw0rd ssh -l root 10.12.40.155 show
    dispatch_protocol_error: type 100 seq 8
    show
    status=0
    status_tag=COMMAND COMPLETED
    
    
    /
      Targets
        system1
        map1
      Properties
      Verbs
        cd version exit show
    
    
    </>hpiLO->
    
    Tags: 

    Relacionados




    sshpass – Conectar sin contraseña por SSH sin usar claves privadas was first posted on September 25, 2013 at 11:46 am.

Defiende tu sistema Windows ante ataques de fuerza bruta con RdpGuard

 

 
TwitterFacebookLinkedInBufferMail
Evernote

+Tag
Uno de los ataques que más problemas está creando en el ‘Mundo Microsoft’ son los ataques por fuerza bruta al servicio RPD (terminal server)
 
En muchas de las infecciones por Ransomware el origen es un ataque de fuerza bruta que ha conseguido comprometer una cuenta de administrador y luego de eso, vía libre para hacer y deshacer en el sistema.
 
En el ‘Mundo Linux’ hemos disfrutado desde hace mucho tiempo de una aplicación tan potente como Fail2Ban que monitoriza los intentos de fuerza bruta y permite aplicar acciones sobre ellos.
 
Buscando una alternativa para servidores Windows, llegué hasta ‘RdpGuard‘ una herramienta que permite monitorizar ataques de fuerza bruta a RDP y no solo eso, también a ftp y a SQL Server.
 
La aplicación se instala de forma fácil a golpe de ratón

Pulsamos ‘Next’

 

Aceptamos la licencia

Seleccionamos donde queremos instalar la aplicación

Elegimos qué usuarios van a ver la interface de administración

Y ya está, ya tenemos listo RdpGuard
 
Una vez que se detecte algún intento de fuerza bruta, podemos consultar desde la interface gráfica la IP que nos ha atacado y el tiempo de bloqueo

 
El tiempo de bloqueo es configurable según lo que estimemos necesario

Para más información podéis ir a la página web del proyecto

Introducción a WMI

 

 
TwitterFacebookLinkedInBufferMail
Evernote

+Tag

El Instrumental de administración de Windows (WMI) es la fuente principal para administrar los datos y la funcionalidad en equipos locales y remotos que ejecutan los sistemas operativos Microsoft Windows. Con WMI se puede consultar los diferentes componentes de un sistema operativo Windows, así como el estado de su software o hardware. Por ejemplo, con WMI se podrá obtener cuantos usuarios hay en el sistema, o el uso de la CPU, incluso las tarjetas de red y su estado.

WMI se estructura en forma de árbol, permitiendo realizar consultas al mismo, además se integra perfectamente con PowerShell o C# lo que convierte a WMI en una herramienta muy versátil con posibilidad de incluirla en Scripts.

Para ver el funcionamiento directamente, se va a plantear un ejemplo con PowerShell ejecutando el comando “Get-WmiObject –class Win32_OperatingSystem”.

 

clip_image001

Imagen 1- Consultando los objetos WMI para obtener la versión del sistema

Esta consulta devolverá el directorio donde está instalado el sistema, su versión, la organización, el usuario registrado y el número de serie. Hay muchos y diferentes objetos y clases que pueden ser consultados a través de WMI, para obtener una lista de las clases, se puede usar el comando “Get-WmiObject -List”:

clip_image003

Imagen 2- Lista de clases WMI

Es importante recordar que cada clase contiene objetos con mucha más información, si se añade la selección de objetos al ejemplo anterior veremos como la respuesta muestra mayor cantidad de información:

clip_image005

Imagen 3- Consulta a todos los objetos de la clase Win32_OperatingSystem

También se puede usar una sintaxis parecida al de una consulta SQL, añadiendo el operador –query:

clip_image007

Imagen 4- Consulta con el operador -query para obtener el porcentaje de uso de la CPU

En el siguiente post se explicara como ejecutar consultas WMI en equipos Remotos. Si te ha gustado el post, te recomendamos leer el libro de PowerShell: la navaja suiza de los administradores de Sistemas .

 

Además  si te ha gustado el artículo puedes suscribirte al Canal RSS de Windows Técnico, o seguirnos por el  Canal Google+ de Windows Técnico o  Twitter para estar al día de las novedades e información técnica de interés.


Wanderlust with a purpose

Riulyn's Blog

Starting games and not finishing them? Usually that’s a bad thing, since you’ve paid all that money, begged your friends, and/or have limited time to play the game. But this weekend I decided to engage in some good wanderlust. The type of wanderlust that allows you to play a bit of a bunch of games you haven’t played before but you own and you need to really know what they are about.

So here’s what I started and dabbled with this past week or so:

Drakengard – I want to like this game more, but I am fighting the controls and the enemies. Also, blocking doesn’t decrease damage taken a ton. Even on Easy I am stuck in Chapter 3. I did some free missions and got another weapon from one of them, but ultimately those heavy-armored guys with clubs are my biggest weakness and I might have to master dodge-rolling…

View original post 519 more words


iOS 7 Will Be Available For iPads And iPhones On September 18


Dell Reportedly Has The Votes To Close The $24.9B Michael Dell-Silver Lake Buyout Deal


iPhone 5C Will Cost $99 For 16GB, $199 For 32GB On 2-Year Contract


Comunicación entre clientes OpenVPN con tun (routing)

Comunicación entre clientes OpenVPN con tun (routing)

 
TwitterFacebookLinkedInBufferMail
Evernote

+Tag

En el caso que tengamos múltiples clientes conectados a un servidor con OpenVPN con TUN, deberemos configurar la rutas.

 

Los modos de funcionamiento de OpenVPN puede ser mediante TUN o TAP:

  • TAP: Modo de funcionamiento de capa 2, por lo tanto, los equipos se ven como si estubieran conectados al mismo segmento de red. Por lo tanto, ven el tráfico broadcast que se genere en el segmento como si estuvieran directamente conectados.
  • TUN: Modo de funcionamiento de capa 3, por lo tanto, deberemos configurar routing.

Usando TAP podemos comunicar clientes entre sí directamente.

En el caso de TUN, si intentamos hacer un ping entre dos equipos conectados al mismo servidor OpenVPN podemos recibir un ICMP de “Packet filtered“:

# ping 172.16.101.16
PING 172.16.101.16 (172.16.101.16) 56(84) bytes of data.
From 80.80.80.117 icmp_seq=1 Packet filtered
From 80.80.80.117 icmp_seq=2 Packet filtered

Esto se debe a las rutas que hace que el paquete a otro equipo conectado al servidor se vaya por la default gateway. En el siguiente ejemplo podemos ver que todo paquete que no vaya al servidor (172.16.101.1) ni sea de ninguna de las otras redes irá por el default gateway, que en este caso será hacia Internet:

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
<strong>172.16.101.1    0.0.0.0         255.255.255.255 UH        0 0          0 tun0</strong>
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.254.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         192.168.254.1   0.0.0.0         UG        0 0          0 eth0

Por lo tanto, en todos los clientes (con la directiva client-config-dir) que queramos que se comuniquen entre sí deberemos añadir una ruta para la red que queramos configurar. En dicha configuración de cliente, forzamos una IP fija a cada cliente, que su gateway sea 172.16.101.1 y publicamos una ruta para que el segmento 172.16.101.0/24 vaya por dicho gateway:

# cat cliente.systemadmin.es
ifconfig-push 172.16.101.12 172.16.101.1
push "route  172.16.101.0 255.255.255.0 172.16.101.1"

Las rutas de los clientes quedarán como las siguientes:

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
<strong>172.16.101.1    0.0.0.0         255.255.255.255 UH        0 0          0 tun0
172.16.101.0    172.16.101.1    255.255.255.0   UG        0 0          0 tun0</strong>
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.254.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth1
0.0.0.0         192.168.254.1   0.0.0.0         UG        0 0          0 eth0

Por lo tanto, ahora deberemos hacer que los paquetes que se entregan por la interfaz tun del servidor se entreguen al cliente destino. Por defecto tendremos el forwarding desactivado, por lo tanto deberemos activarlo mediante el fichero /etc/sysctl.conf modificando la directiva net.ipv4.ip_forward a 1. Aplicamos los cambios mediante sysctl -p

# sysctl -p
(...)
net.ipv4.ip_forward = 1

A continuación definiremos dos reglas de iptables:

  • Una regla que permita el forwarding en las interfaces tun:
    iptables -A FORWARD -i tun+ -j ACCEPT
    
  • Otra regla que lo deniegue en las interfaces eth:
    iptables -A FORWARD -i eth+ -j DROP
    

    En lugar de cambiar la política por defecto de FORWARD, añado el DROP para tener el contador de paquetes para dicha regla.

Si lanzamos un ping entre dos clientes conectados veremos como aumentan los contadores y ya se ven entre sí:

# iptables -L -nv
(...)
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    6   504 ACCEPT     all  --  tun+   *       0.0.0.0/0            0.0.0.0/0
    0     0 DROP       all  --  eth+   *       0.0.0.0/0            0.0.0.0/0

Tags:

Relacionados

Comunicación entre clientes OpenVPN con tun (routing) was first posted on September 10, 2013 at 12:22 pm.


Meet Human, A Beautiful Fitness Tracking App To Help You Effortlessly Stay Healthy