static-httpd

Sitio web estático (HTML + CSS) que sostiene el blog del autor
Log | Files | Refs

index.html (4323B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      5 <meta name="viewport" content="width=device-width, initial-scale=1" />
      6 <title>SSH Tunneling</title>
      7 <link rel="icon" type="image/png" href="/favicon.png" />
      8 <link rel="stylesheet" type="text/css" href="../article.css" />
      9 </head>
     10 <body>
     11 <header>
     12 <p class="title">SSH Tunneling</p>
     13 <p class="date">28 de marzo de 2019 • fjbalon</p>
     14 </header>
     15 <p>El tunneling es un proceso por el que se utiliza el protocolo SSH para fortificar la comunicación entre otros protocolos inseguros, por ejemplo para realizar peticiones HTTP, SMTP, etc.</p>
     16 <p>Los túneles pueden ser locales o remotos. En los túneles locales, la máquina del administrador o cliente redirecciona un puerto local hacia un puerto de la máquina remota, a la que se disponga de acceso. En los túneles remotos se redirecciona un puerto remoto dela máquina remota, a la que se disponga de aacceso, a un puerto de la máquina local, donde se encuentra el administrador.</p>
     17 <p>La sintaxis para la creación de un túnel local hacia el puerto remoto de la máquina remota es la siguiente:</p>
     18 <pre><code>ssh -L [direccion de escucha:]puerto escucha:maquina remota: puerto remoto usuario@server</code></pre>
     19 <img class="color-invertible" src="resources/ssh01.png"/>
     20 <p>El escenario idóneo para la utilización de túneles SSH locales es el siguiente:</p>
     21 <ul>
     22 <li>Máquina A con conexión a Internet requiere conexión a máquina C, que se encuentra detrás de un servidor que impide el paso. En otras palabras, la máquina C no es accesible desde Internet.</li>
     23 <li>El usuarioo de la máquina A dispone de cuenta en una máquina B. La máquina B es el servidor que proporciona la salida a Internet a la máquina C. La máquina A creará un túnel con la máquina B y a través del forwarding (véase sección \ref{sshforwarding} para más detalle) de la máquina B llegará a la máquina C.</li>
     24 <li>Lo importante es proteger la comunicación en Internet entre la máquina A y B. La comunicación entre B y C puede ir sin cifrar, ya que se encentra en una Intranet. Aunque también puede ser altamente recomendable fortificar dicha comunicación.</li>
     25 </ul>
     26 <p>El túnel remoto, por su lado, generará un socket a la escucha en un servidor, el cual al recibir una petición reenviará el tráfico mediante SSH a la máquina local donde se encuentre el administrador. La sintaxis es:</p>
     27 <pre><code>ssh -R puerto local:maquina remota:puerto remoto</code></pre>
     28 <img class="color-invertible" src="resources/ssh02.png"/>
     29 <p>Un ejemplo sería querer que una máquina en Internet llegase al interior de la Intranet a través de una máquina puente de la propia red privada, manteniendo una interfaz hacia Internet. El escenario sería el siguiente:</p>
     30 <ul>
     31 <li>Máquina A, la máquina se encuentra en una red interna.</li>
     32 <li>Máquina B, máquina con conectividad con A e interfaz en Internet.</li>
     33 <li>Máquina C, máquina externa con conectividad con B, pero no con A.</li>
     34 </ul>
     35 <p>Estas técnicas cuentan con una serie de escenarios muy interesantes, siendo los más usuales:</p>
     36 <ol>
     37 <li>Usar un túnel externo para atravesar el firewall y acceder a un recurso que ofrece un equipo de la intranet.</li>
     38 <li>Usar un túnel externo para atravesar el firewall y acceder a un recurso de una intranet. Pero además cualquier equipo puede conectarse a dicho equipo de la intranet a través de una conexión con el equipo externo.</li>
     39 <li>Usar un túnel interno para que los equipos de fuera de la red se conecten al interior. Esta acción se realizará mediante túneles remotos.</li>
     40 <li>Túnel interno para que equipos de fuera de la red se conecten al interior, pero además que otros equipos del exterior puedan conectarse a través del externo remoto.</li>
     41 <li>Utilizar un túnel para que desde una máquina externa se pueda atravesar el firewall y realizar el forwarding en una máquina interna, y que esta reenvíe el tráfico a la segunda máquina interna.</li>
     42 </ol>
     43 <pre><code>ssh -L 7900:localhost:5900 usuario@internal #1
     44 ssh -L 0.0.0.0:7900:localhost:5900 usuario@internal #2
     45 ssh -R 7900:localhost:5900 usuario@internal #3
     46 ssh -R 0.0.0.0:7900:localhost:5900 usuario@internal #4
     47 ssh -L 7900:internal2:5900 usuario@internal #5</code></pre>
     48 </body>
     49 </html>