Com crear un túnel SSH entre un servidor Linux i un client Windows

La idea de construir un túnel SSH és xifrar totes les connexions (sense importar, per exemple, si entres a una pàgina https o http) i connectar-nos a Internet a través d'un canal segur. Aquest canal «segur» no és altra cosa que un servidor configurat a aquest efecte. Aquest servidor podria trobar-se, per exemple, a casa teva.


La «desavantatge» d'aquest mètode és que sempre has de tenir aquesta màquina encesa i configurada correctament perquè funcioni com a servidor SSH però et permet millorar substancialment la seguretat de la teva connexió i fins i tot evadir les restriccions de connexió imposades pels administradors de la xarxa ( per exemple, la de la teva feina).

T'escolto preguntar: això realment em pot servir? Bé, suposem el següent escenari: estàs en un cibercafè o en un restaurant amb wifi lliure i necessiteu realitzar una transferència bancària o una altra operació important. Per descomptat, sempre es recomana realitzar aquest tipus de transaccions en un ambient segur. No obstant això, hi ha una solució: un túnel SSH. D'aquesta manera, podem connectar-nos a Internet a través del nostre servidor «segur».

Aquest mètode també és útil per evadir les restriccions imposades a les connexions de molts ambients de treball. ¿No pots accedir a Youtube des de la feina? Bé, un túnel SSH pot ser la solució, ja que totes les sol·licituds es realitzaran a través del teu servidor «segur». En altres paraules, al no estar bloquejada la IP del teu servidor segur (si, en canvi, la de Youtube) podràs «evadir» aquesta restricció (no poder accedir a Youtube) ja que per l'administrador de la xarxa de la teva empresa la teva màquina només va estar conversant amb el teu servidor «segur» i no té idea que a través d'ell vós en realitat estàs navegant per un munt de pàgines.

En aquest tutorial anem a explicar el cas «típic»: servidor Linux, client Windows.

Configura el servidor Linux

1.- Instal·lar el servidor SSH. Per a això, vaig obrir un terminal i executa:

En Ubuntu:

suo apt-get install openssh-server

En Arc:

Pacman -S openssh

En Fedora:

yum -i install openssh-server

Fet. Ja podràs accedir a l'(servidor SSH) Ubuntu amb un client SSH.

2.- Un cop instal·lat, és útil revisar l'arxiu de configuració:

sudo nano / etc / ssh / sshd_config

Des d'aquest arxiu podràs configurar el teu servidor SSH a gust. La meva recomanació és modificar tot just 2 paràmetres: port i allowusers.

Per evitar possibles atacs és recomanable canviar el port que utilitzarà SSH. Per defecte ve amb el valor 22, pots triar un altre que més et convingui (a l'efecte d'aquest tutorial triem el 443 però pot ser qualsevol altre).

El paràmetre Allowusers permet restringir l'accés per usuari i, opcionalment, l'amfitrió des del qual pot connectar-se. El següent exemple restringeix l'accés cap al servidor SSH perquè només puguin fer-ho els usuaris en tal i tal altre des dels amfitrions 10.1.1.1 i 10.2.2.1.

AllowUsers fulano@10.1.1.1 mengano@10.1.1.1 fulano@10.2.2.1 mengano@10.2.2.1

Configura el router

En cas que el teu servidor es trobi darrere d'un router, cal configurar aquest últim perquè no bloquegi les connexions entrants. Més específicament, cal configurar.

Abans d'anar a l'gra i mostrar la configuració necessària em sembla prudent explicar una mica en què consisteix el port-forwarding.

Suposem que tens una xarxa local de 3 màquines, totes elles darrere d'un router. Com fa una connexió entrant (SSH, com seria el nostre cas) per comunicar-se amb la màquina 1 de la nostra xarxa local? No t'oblidis que «des de fora» les 3 màquines, si bé tenen IPs locals, comparteixen un únic IP públic a través d'el qual es connecten a Internet.

La solució a el problema abans esmentat és el port-forwarding. D'aquesta manera, quan es rebin connexions entrants a port X del nostre IP públic, el router ho va a derivar a la màquina que correspongui. D'aquesta manera sempre que ens connectem mitjançant aquest port, sabem que el router ens va a redirigir (d'aquí port-forwarding) a la màquina que correspongui. Tot això, òbviament, cal configurar-lo en el router.

La configuració de l'port-forwarding varia una mica d'acord a l'router que estiguis utilitzant. El més pràctic és visitar portforward.com, Triar el model de router que estiguis utilitzant i seguir els passos que allà es descriuen.

Configura el client Windows

Per connectar-nos des de Windows resulta pràctic utilitzar com a client SSH l'eina PuTTY.

1.- El primer pas és descarregar PuTTY

Com es pot veure a la pàgina de descàrregues de PuTTY, hi ha diverses versions disponibles. Recomano descarregar la versió portable de el programa: putty.exe. L'avantatge de triar la versió portable és que pots portar-la sempre amb vós en un pendrive i executar el programa des de qualsevol ordinador, siguis on siguis.

2.- Vaig obrir PuTTY i especifica l'IP (públic) i el port de servidor a què haurà de connectar-se el client SSH. Com esbrinar l'IP públic del teu servidor? Fàcil, només cal googlejar «quina es la seva ip pública» per trobar milers de pàgines que ofereixen aquest servei.

3.- En cas que el «client» es trobi darrere d'un proxy, no t'oblidis de configurar correctament. En cas que no sàpigues ben bé què dades ingressar, vaig obrir Internet Explorer i ingressa a Eines> Connexions> Configuració de LAN> Avançades. Còpia i pega les dades que apareixen aquí en PuTTY, com es veu en la imatge que apareix a continuació. En alguns casos, és possible que hagis de introduir un nom d'usuari i contrasenya.

4.- Manca introduir les dades de l'port-forwarding «local» per construir el túnel SSH. Accedeix a Conection> SSH> Tunnels. Aquí la idea és la següent, hem de dir-li a PuTTY quines connexions ha de «desviar» cap al nostre servidor segur. Per a això, hem de triar un port.

La meva recomanació, especialment si la màquina es troba darrere d'un proxy és que escullis el port 443 ja que és l'utilitzat per SSL per realitzar connexions segures, el que dificultarà a l'administrador la tasca de descobrir el que estàs fent. El port 8080, en canvi, és l'utilitzat per HTTP (que no és una connexió «segura») de manera que un administrador de xarxa experimentat pot arribar a sospitar i fins i tot és possible que hi hagi bloquejat el port per a un altre tipus de connexions.

En Destination, volve a ingressar l'IP de servidor segur, seguit de dos punts i el port que hagis obert el punt titulat «Configura el router» i en l'arxiu ~ / .ssh / config. Per exemple, 192.243.231.553:443.

Selecciona Dynamic (el que crearà una connexió SOCKS, que utilitzarem en el punt següent) i cliqueu a Add.

5.- Volve a la pantalla principal de PuTTY, cliqueu a Save i després a Open. La primera vegada que et connectis a servidor sortirà un missatge d'alerta com el que apareix a continuació:

6.- Després, et demanarà el nom d'usuari i contrasenya amb accés a servidor.

Si tot va anar bé, un cop realitzat el login, hauries veure alguna cosa com el que es veu a continuació ...

7.- Finalment, sense tancar PuTTY, vaig obrir i configura Firefox (o el teu navegador favorit) perquè es connecti a Internet a través de PuTTY.