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

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

SSH y Proxy Socks navegación segura en Internet

Nota: Escribí un artículo sobre Tor que puede ser una solución más simple ya que no se necesita ningún servidor.

Ahora les enseñare como navegar la web de forma ilimitada en una red muy limitada. Por ejemplo la red de una universidad, donde los pobres alumnos casi no pueden navegar a ningún lado porque todo esta bloqueado. Además con esta estragegia nevagaremos de una forma seguro, muy útil para sitios con access points públicos.

Requerimientos

Para que esto funcione, así como la mayoría de los tips ssh que he estado publicando, es importante que ustedes tengan un servidor a donde hacer ssh. Si su proveedor de internet en la casa les da un ip público, se podría usar ese ip para ssh. Otra opción es contratar un servidor virtual dedicado en la nube que puede costar unos $20 al mes. Un poco caro para hacer ssh, pero el costo puede llegar a cero si vendemos hosting a nuestros a migos para que cuelguen sus páginas web. Personalmente uso el servicio de Linode desde hace algún tiempo y me siento feliz.

Se asume que la red local no esta bloqueando el puerto 22 de SSH. Pronto publicaré un how to para correr ssh y un servidor web en el puerto 443 (normalmente https) que podría solucionar este problema.

Manos a la Obra

Dicho esto manos a la obra. Lo primero que vamos a hacer es ssh a nuestro servidor y decirle que use un puerto arbitrario como servidor Socks.

ssh -ND 8080 usuario@servidorremoto.com Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados

Aplicaciones Gráficas con SSH en Red

Este es uno de los trucos que aprendí primero con SSH. La mayoría de la gente que usa SSH lo hace porque puede administrar servidores a através de este poderoso servicio. Algo que muchos no saben es que se puede ejecutar aplicaciones gráficas a través de una red con ssh y esto es mucho más sencillo de lo que nos podríamos imaginar.
Un caso simple podría ser que estoy en una red pero estoy muy lejos de mi computadora. Tengo la necesidad de acceder a mi correo electrónico que le ejecuto con Thunderbird. El camando para lograr esto es tan simple como:

ssh -X usuario@ipservidor thunderbird

Ahora que tal si queremos ejecutar más de una aplicación gráfica. Podríamos utilizar una sola sesión de ssh para abrir varias aplicaciones.

ssh -X usuario@ipservidor
thunderbird &
oowriter &
gnome-calculator& Sigue leyendo

Artículos relacionados

  • No existen artículos relacionados