Publi

  • Lanzando servidores TCP/IP en puertos libres aleatorios haciendo bind al puerto 0

    Servidores TCP en el puerto 0
    ¿Cómo? ¡Que los puertos TCP empiezan en el 1! Aunque algo sospechaba, porque en informática, el cero siempre ha valido para algo. Por eso se dice que los humanos empiezan a contar desde el uno y los informáticos desde el cero. Con esta cara me quedé cuando vi que puedes lanzar un servidor y que éste escuche en el puerto 0. Pero si el 0 no es un puerto válido, ¿para qué vale?… Leer artículo completo

  • Píldora: Recupera los nombres de los interfaces de red de tu equipo, eth0, wlan0, etc

    Network interfaces

    A medida que una tecnología crece, siempre tenemos el mismo problema, terminamos metiendo muchos elementos de un mismo tipo en un equipo. Y terminamos teniendo el mismo problema: si cambiamos algo de sitio, o un driver se carga antes que otro, estamos perdidos porque nada funcionará igual.

    Preámbulo

    El caso más claro es el de los discos duros, las placas base suelen tener un montón de puertos para conectar discos duros.… Leer artículo completo

  • Píldora #Bash: Conocer el tiempo que lleva un proceso abierto en Linux

    Bash tiempo proceso
    ¡Una nueva sección! Después de tanto tiempo y tantas secciones inacabadas. Algo que tenía ganas de hacer, es crear posts con esa serie de recetas, scripts, oneliners, o píldoras que se me van ocurriendo mientras trabajo en consola. Suelen ser cosas pequeñas y deberían caber en un tweet junto con una pequeña descripción. De todas formas a mí me gusta explicar un poco más las cosas para que quede bien claro.… Leer artículo completo

  • Recompilar módulo de kernel de Virtualbox en Debian/Ubuntu y derivadas

    Aunque las distribuciones de GNU/Linux cada vez son más amigables para el usuario (user-friendly) y automatizan en muchas ocasiones los procesos de actualización, incluso la actualización del kernel, en distrubiciones como Linux Mint (que es la que estoy utilizando ahora), resulta muy fácil actualizar hasta desde el entorno gráfico.
    Pero ciertos drivers tienen que compilarse de nuevo, tenemos el driver de las tarjetas gráficas nvidia y el que Virtualbox necesita para lanzar máquinas virtuales.… Leer artículo completo

  • Cómo generar una clave privada a partir de un sonido captado por el micrófono

    Screenshot 03-07-2016-140746_2

    Puede que no sea el método más seguro, pero como curiosidad, está muy bien. Vamos a aprovecharnos de que OpenSSL nos deja especificar la fuente de números aleatorios a la hora de generar una clave privada (y para otras cosas también). Aunque dicha característica está pensada para dispositivos externos que generen números aleatorios, como un dispositivo de hardware especial, o un software que genere siempre los mismos de cara a compartirlos… vamos a utilizar como generador de números aleatorios nuestra tarjeta de sonido.… Leer artículo completo

  • Cómo instalar un certificado raíz en Android sin afectar al desbloqueo

    15350193299_847e03ed18_k

    Si queremos instalar un certificado raíz en Android, como para todo, tenemos dos formas de hacerlo. Esto nos puede interesar, por ejemplo, si utilizamos un servicio de correo privado de empresa, y como es para uso de los empleados únicamente se utiliza un certificado autofirmado por la empresa. O, por ejemplo, si tenemos nuestro propio servidor y hemos instalado, por ejemplo Owncloud sobre HTTPs y tenemos también un certificado autofirmado.
    Aunque, también puede ser que quieras realizar trámites burocráticos con la Administración desde el móvil, o incluso pedir cita médica en algunos lugares desde Internet de forma segura.… Leer artículo completo

  • Cómo subir tipos de archivo que WordPress no nos deja subir «por seguridad»

    peak_r

    Por motivos de seguridad, WordPress, en su configuración por defecto no nos deja subir determinados tipos de archivo. Podemos subir imágenes, sin problema, pero si queremos ofrecer algún tipo de descarga adicional como archivos comprimidos, no nos va a dejar, presentándonos el siguiente mensaje:
    Screenshot 31-01-2016-210132

    Digo motivos de seguridad, y en el título lo pongo entre comillas, porque es la excusa que pone WordPress. Puede que sea porque no son tipos de archivo comunes, y porque perfectamente pueden alojar archivos maliciosos (por ejemplo si ofreces una descarga puedes incluir un binario malicioso sin problema), pero en ocasiones sí que nos puede interesar ofrecerlo.… Leer artículo completo

  • Cómo extraer la parte alta y la parte baja de un número con varios ejemplos en C

    photo-1414509902153-26bed16bc962_red

    En ocasiones, en C, sobre todo, una misma variable numérica (un entero, un short, o incluso un char) encierra en sus bits más valores que nos pueden resultar interesantes por separado. Sobre todo, por optimizar la memoria, en lugar de reservar dos variables de tipo entero de 32bits para almacenar valores pequeños, queramos empaquetar en el mismo valor entero los dos valores y luego extraerlos cuando los necesitemos. Esto lo podemos ver en sistemas empotrados en los que estamos muy limitados en memoria.… Leer artículo completo

  • Cómo añadir un nuevo certificado raíz a nivel de sistema

    photo-1420768797814-f484a81f6be0_red0

    Es muy común si montamos algún servicio privado (como instalar un Owncloud para un grupo de amigos, una pequeña empresa), un correo personal, o cualquier cosa que se nos ocurra, utilizar https para las conexiones y, con ello, habilitar cifrado, aumentar la seguridad, y todas esas cosas.

    Pero claro, una vez montamos nuestro servicio con nuestros certificados (autofirmados), nos damos cuenta de que los navegadores (y ya no hablamos de curl, wget y otros comandos…) no paran de quejarse porque los certificados están firmados por una entidad no reconocida y que no es de confianza.… Leer artículo completo

  • Cómo especificar puerto y clave privada para SSH desde rsync

    reducida

    Si trabajamos a menudo con rsync para copiar archivos entre ordenadores, estaremos acostumbrados a una sintaxis parecida a esta:

    $ rsync -avh origen usuario@servidor:destino

    En realidad, para transmitir los archivos estaremos utilizando una conexión segura a través de ssh. Pero claro, en ocasiones, sería necesario utilizar algún argumento especial para ssh. En este ejemplo, imaginemos que queremos conectar al servidor por un puerto diferente del 22.

    Podemos hacerlo así:

    $ rsync -avh -e ‘ssh -p1234’ origen usuario@servidor:destino

    y si accedemos por par de claves pública-privada, en el caso de que queramos especificar un archivo de clave privada específico para esta conexión (a mí me ha sucedido que he necesitado utilizar rsync como root para poder acceder a algunos archivos y las claves las tenía en el usuario actual), lo podemos hacer así:

    $ rsync -avh -e ‘ssh -i archivo_identidad’ origen usuario@servidor:destino

    Ahora, un ejemplo completo y concreto de todo, en el que queremos acceder a nuestro servidor SSH por el puerto 28, además, el archivo de identidad o clave privada es id_rsa_webserver dentro del directorio .ssh de nuestro usuario (muy útil si ejecutamos rsync como root) luego el origen serían todos los archivos que encontramos en www/ y los copiaremos en un directorio remoto de nuestro servidor (tenemos que tener permiso para escribir ahí)

    $ rsync -avh -e ‘ssh -p28 -i /home/gaspar/.ssh/id_rsa_webserver’ www/* gaspar@miservidorweb.com:/home/web/externo/htdocs/

    Configuración local de ssh

    Otra posibilidad sería crear un archivo de configuración de ssh en nuestro ordenador, en el que podamos especificar los hosts a los que conectamos, el usuario que queremos utilizar, el archivo de identidad y el puerto.… Leer artículo completo