Compartir de forma segura y anónima

Muchas veces se quiere compartir archivos con otras personas sin depender de servicios de terceros como Google Drive que dependen de empresas que han participado en programas de espionaje como PRISM.

Una forma fácil de hacerlo es utilizando la herramienta OnionShare. Es una herramienta súper sencilla que funciona para Linux, Windows y Mac. Lo único que se requiere tener instalado es el navegador Tor tanto en la máquina que envía y recibe el archivo.

En el caso de Debian, la instalación se la hizo directo desde repositorio. Cuando se ejecuta el programa por primera vez se tiene la siguiente pantalla:

OnionShare_040

En esta pantalla se añade archivos ya sea arrastrando (1), de forma individual (2) o toda una carpeta (3). Una vez que todo esta listo se enciende el servidor y se generará un url accesible desde el navegador Tor similar a este: http://2j2abk2pytphpahu.onion/7x7at2z7hlqhus4d67vztm35pi

Para que esto funcione es importante correr el navegador Tor en la máquina local, sino aparecerá el siguiente mensaje.

OnionShare_043

Una vez que se tiene el navegado funcionando se genera la url que mencioné antes y bastará con copiarlo al navegador Tor de las personas que deseen descargarlo.

OnionShare - Navegador Tor_044

Una vez que alguien inicie una descarga, OnionShare nos avisará con una o varias barras de estado:

OnionShare_047

En “1” se tiene la opción de copiar el url para compartirlo con otras personas. En “2” se tiene la opción de ver el estado de las descargas. “3” permite apagar automáticamente el servicio OnionShare una vez que se terminaron las descargas evitando que otras puedan acceder al archivo.

Eso es todo, fácil, sencillo. Además se comparte el archivo de forma anónima y cifrada a través de un servicio oculto de Tor.

Artículos relacionados

Acceder a un Computador a través de Tor sin IP Público

Poder acceder a un computador personal de forma remota es muy conveniente, sin un IP pública puede resultar complicado. Sin embargo, se puede utilizar un servicio oculto de Tor y acceder a la computadora a través de ssh y la red Tor.

La configuración es bastante sencilla. Instalamos y configuramos Tor en nuestro PC o servidor para configurar un servicio oculto. Habilitamos el servicio de ssh para ser escuchado como un servicio .onion. Para esto editamos el archivo /etc/tor/torrc y añadimos las siguientes líneas:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 22 127.0.0.1:22

Para saber nuestro url .onion:

# cat /var/lib/tor/hidden_service/hostname
adn6xndfyhgcpl5o.onion Sigue leyendo

Artículos relacionados

Guardar Videos de Youtube en GNU/Linux

Youtube es una excelente herramienta para acceder a videos de prácticamente cualqueir cosa que se nos ocurra. Sin embargo este sitio tiene un defecto muy grande, no permite grabar de una manera fácil los videos en nuestro disco duro. Esto quiere decir que cada vez que queremos bajar el mismo video consumimos de forma innecesaria el ancho de banda. Eso es algo que alguien que usa 3G o vive en el campo no quiere hacer.

Se que existe un plugin para Firefox que sirve para guardar los videos, pero a mi me gusta hacerlo de la forma más genérica posible. Una gran ventaja de GNU/Linux es que es fácil entender como funcionan las cosas en el sistema. Cuando descargamos un video desde internet, este es grabado de forma temporal en el directorio /tmp, por lo que bastará con copiar ese video a un directorio dentro de nuestra carpeta personal.

Un Ejemplo Práctico

Como ejemplo voy a utilizar un video de Wikirebels con subtítulos en Español. Un video altamente recomendable, pero dura una hora y pesa cerca de 200M. Una ejemplo perfecto de porque es recomendable guardar videos en nuestro computador.

Wikirebels

Pantallazo del video de en Youtube Wikirebels

Una vez que se descarga el video completo y sin cerrar la ventana del navegador web, abrimos nuestro explorador archivos favoritos y vamos a la ruta /tmp y buscamos un archivo con un nombre similar a FLASHXX7fywGT. Básicamnete la palabra FLASH seguida por algún código aleatorio.  En el caso de GNOME con Nautilus el archivo se vería así:

Video Youtube en Nautilus

Video Youtube en Nautilus

Este archivo lo copiamos y pegamos dentro de nuestra carpeta personal y le ponemos un nombre fácil de recordar. En mi caso lo copié a  /home/rafael/Videos/Wikirebels.flv. La extensión flv es implemente para recordar que es un video en formato Flash. Ahora ya podré ver el video cuando quiera y sin Internet utilizando mi reproductor de videos favoritos.

Artículos relacionados

  • No existen artículos relacionados

11 + 1 Tips SSH

SSH es una herramienta esencial para cualquier administrador de sistemas basados en Unix. La mayoría sabemos que con SSH se puede ingresar de forma segura a un servidor remoto y administrarlo.  SSH hace mucho más que eso y por este motivo les comparto 11 tips que harán de su vida como administrador de sistemas más fácil y divertida.

  1. SSH con Llaves Públicas y Privadas: Autentificar un usuario con contraseñas tiene sus problemas. Si administramos varios servidores debemos recordar la clave de todos y muchas veces para no olvidaras utilizamos claves débiles. Al utilizar llaves públicas y privadas solucionamos estos 2 problemas.
  2. Túneles SSH (parte 1): Es muy probable que alguna vez sea necesario ingresar a un servidor dentro de una Intranet con IP privada desde Internet. Si tenemos un servidor con acceso a SSH accesible desde Internet y que puede ver esta IP privada, asunto solucionado con túnles SSH
  3. Túneles SSH (parte 2): En este how to se aprende como compartir servicios desde mi máquina con IP privada hacia Internet gracias a los túneles SSH. El ejemplo más interesante es como con un servidor SSH en un ip pública, 2 máquinas con IPs privadas en distintas redes se pueden ver entre sí sin necesidad de VPNs.
  4. Aplicaciones Gráficas en Red con SSH: Todos usamos SSH para acceder a línea de comandos en un servidor. No todos saben que también podemos usar SSH para acceder a aplicaciones gráfica en nuestra red.
  5. SSH y Proxy Socks navegación segura en Internet: Con una simple opción de SSH podemos navegar en Internet de forma encriptada y sin restricciones. Muy útil cuando navegamos en sitios done los servidores proxy no dejan navegar a ningún lugar o donde queremos tener mayor seguridad al navegar.
  6. SSH y HTTPS en el puerto 443: Muchas veces el puerto 22 puede estar bloqueado en una red, haciendo que la mayoría de estos tips no sean útiles. Sin embargo, muy rara vez una red bloqueaa el puerto 443, en este ejemplo se enseña como hacer para compartir el puerto 443 para HTTPS y SSH de manera simultanea.
  7. Copia Remota con SCP: La herramienta SCP permite copiar archivos a través de la red utilizando el protocolo SSH. En este tip aprenderemos como hacer esto y además como hacerlo limitando el ancho de banda si queremos copiar archivos muy grandes.
  8. Simplifica tu vida gracias a  ~/.ssh/config: Manejamos varios servidores, cada uno de ellos utiliza puertos diferentes. Podemos configurar nuestro cliente SSH para que algo como “ssh -p 2200 usuariox@servidorremoto.com” sea tan simple como “ssh serv
  9. SSH y SFTP con usuarios enjaulados: Muchas veces se tiene la necesidad de dar acceso a nuestro servidor a personas en las que no confiamos. En este tip se aprende como hacer para crear un ambiente limitado para estos usuarios y que tengan solamente las herramientas que necesitan.
  10. Sincronizar Directorios con SSH y RSYNC: RSYNC, es una poderosa herramienta de sincronización a través de la red. En este tip se aprende como combinar su poder con SSH y poder sacar respaldos o crear mirrors de forma segura.
  11. Proteger SSH con Fail2Ban: Muchas personas creen que cambiar el puerto de SSH significa asegurar su servidor. Cualquier persona que conoce poco de nmap y sabe usar Google seguro podrá descubrir en que puerto se ejecuta SSH. Fail2Ban es una herramienta mucho más poderosa que bloquea los IPs luego de X números de intentos fallido por un tiempo Y. De esta manera se hacen inútiles los ataques de diccionario.
  12. Acceder a un Computador a través de Tor sin IP Públicor: Los servicios ocultos de Tor permiten que cualquier protocolo TCP sea accedido a través de la red Tor. En este post explico como hacerlo para ssh.

Artículos relacionados

  • No existen artículos relacionados

Proteger SSH con Fail2Ban

Una de las principales formas de atacar un servidor SSH es através de ataques de diccionario o de fuerza bruta .Fail2Ban tiene una forma muy simple de solucionar el problema. Si después de X intentos escribo la clave de forma incorrecta, bloquea ese ip por un tiempo definido. Por defecto es 10 minutos. Con esta solución tan simple, nos tendrá protegidos de los ataques de diccionario.

Instalar Fail2Ban

En las distros basadas en Debian, basta con instalar el paquete fail2ban. Supongo que en otras distros la instalación es igual de simple

aptitude install fail2ban Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

Sincronizar y/o Respaldar directorios con SSH y RSYNC

Es muy probable que se requiera replicar la información de un directorio de una máquina o servidor a otro en mi red local o en Internet. Con RSYNC podríamos hacer cosas simples como sacar respaldos incrementales a un disco duro externo, a otra máquina en la red. También nos sirve para sincronizar directorios a través del Internet y tener mirrors de un sitio web distribuidos en la red. Esto es lo que hacemos para los repositorios de Elastix y lo que hace Wikileaks con sus cientos de mirrors.

Si bien RSYNC no necesita de SSH para sincronizar, utilizar los 2 en conjunto tiene algunas ventajas entre las que destaco algunas:

  • La información viaja encriptada
  • No necesito correr un servidor RSYNC
  • Solo necesito preocuparme de tener abierto el puerto de SSH Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

SSH/SFTP Enjaulado

SSH es una herramienta extremadamente poderosa. Mucho poder quiere decir mucha responsabilidad. Si alguna vez tenemos que dar acceso de SSH o SFTP a nuestro servidor a alguien que no conozcamos, entonces es buena idea darles lo mínimo necesario para que realicen sus tareas.
Las buenas noticias es que podemos crear ambientes aislados a los usuarios con el conjunto de herramientas que ellos necesitan. . Entre otras cosas, estas herramientas pueden servir ser sincronizar directorios utilizando rsync sobre ssh, tener acceso para subir archivos de forma segura al servidor utilizando SFTP, entre otras.
La primera vez que me tocó crear un ambiente chroot para un usuario era necesario compilar una versión modificada de ssh. Si bien era un trabajo tedioso, existe buena documentación en Internet y se podría seguir how-tos bastante bien documentados. Recientemente investigué otra vez sobre el tema y veo que ahora ssh soporta nativamente ambientes enjaulados y existe un script que nos permite crear los ambientes enjaulados.

Nota: Todos los ejemplos que pongo a continuación con SSH se podría utilizar con cliente SFTP como Filezilla. Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

Simplifica tu vida gracias a ~/.ssh/config

Para las personas que trabajamos mucho con SSH, tenemos que recordar varios nombres de host, ips, usuarios, puertos, etc…. Ya vimos como hacer para no recordar demasiadas contraseñas, pero igual todavía son demasiadas cosas que recordar para acceder a nuestros servidores remotos. Hace poco descubrí que existe el archivo de configuración ~/.ssh/config que sirve para facilitar nuestra vida.

Supongamos que debemos ingresar a un servidor remoto, con un nombre de usuario que no es el mismo de mi máquina local y además corremos el servidor en un puerto distinto al 22. Cada vez que accedamos a este servidor deberíamos escribir algo así:

ssh -p 443 usuarioremoto@servidorremoto.com

No es el fin del mundo, pero si tenemos muchos servers y una mala memoria se nos complica un poco la vida. Que tal si en lugar de escribir toda esa línea podemos escribir simplemente:

ssh sremoto Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

Copiar archivos con SCP (SSH)

Para muchos esto no sea ningún tip, sino el día a día. Sin embargo, me he topado con muchos administradores de sistema no conocen un comando tan básico como scp. Además, seguro que muchos no saben que se puede controlar el ancho de banda mientras se copia un archivo. Útil para cuando copiamos archivos muy grandes al Internet pudiendo saturar nuestra conexión.

El comando SCP básicamente sirve para copiar archivos de un computador a otro, de manera encriptada, a través del protocolo SSH. Funciona de manera muy similar a como funciona el comando cp, donde tenemos un origen y un destino. La diferencia es que el origen o el destino van a ser computadores diferentes.

Ejemplo 1: Origen local, destino remoto

scp archivo.tar.gz usuario@servidorremoto.com:

Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

SSH y HTTPS en puerto 443

En el artículo anterior explique como navegar a través de un servidor socks creado con ssh. Eso va a funcionar siempre y cuando no tengamos bloqueado el puerto en el que estamos corriendo ssh en nuestro servidor (por defecto el 22). Es muy probable que el puerto 22 este bloqueado, pero muy poco probable que el 443 sea bloqueando.

Una solución simple podría ser ejecutar SSH en el puerto 443, pero lo más probable es que necesitemos correr alguna aplicación HTTPS en ese puerto. La solución a este problema se llama SSLH. Sus autores lo llaman un multiplexor SSH/HTTPS.

Básicamente lo que hace este servicio es redirigir las peticiones de SSH a localhost:22 y las de HTTPS a localhost:443. Para que todo funcione bien debemos deberíamos configurar nuestro servidor web para que escuche en: 127.0.0.1:433 en lugar de *:443. Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados