Inici de sessió d'usuari


Connexio ssh a una màquina remota a través dels proxys de guifi.net


Aquest pretén ser un manual-recordatori per a poder executar comandes remotes ssh des de la nostra màquina que es troba darrera d'un proxy guifi.net a un servidor ssh extern. Es una adaptació per a "guifi" del manual que podem trobar a la web de Bulma: http://bulma.net/body.phtml?nIdNoticia=2116

Primer de tot, per evitar fer perdre el temps, diré que seguint aquest manual, qualsevol configuració feta a la propia màquina serà inutil sense la "complicitat" o bé del administrador del nostre proxy, o bé de l'administrador del servidor ssh.

Es tracta de fer un tunel 'ssh sobre https' , de manera que es puguin executar comandes ssh (port 22) passant pel proxy com a https (port 443). El programa que s'encarregarà d'això es diu corkscrew. No tindrem cap problema a instal·lar-lo perque es troba en els repositoris:

sudo apt-get install corkscrew

Es un programa senzill que s'executa segons els següents paràmetres:

 corkscrew <proxyhost> <proxyport> <desthost> <destport> [authfile]
El primer que farem serà crear un fitxer $HOME/.ssh/authfile que només contingui el nostre usuari i contrasenya del proxy amb el format:
usuari:contrasenya

Si no som els unics usuaris de l'ordinador o ens obsessiona la seguretat no oblidem cambiar els permisos del fitxer:
chmod 600 $HOME/.ssh/authfile


Ara hem de crear un nou fitxer $HOME/.ssh/config amb els següents valors (poso com a exemple el meu proxy i port en els parametres):
ProxyCommand /usr/bin/corkscrew proxy.ausa.guifi.net 3128 %h %p $HOME/.ssh/authfile

Els paràmetres %h i %p son dinàmics, es a dir, es definiràn quan fem la crida ssh.
Quan ens connectem vía ssh no ens haurem de preocupar a fer referència a aquest fitxer, ja que ssh busca per defecte de configuració un fitxer anomenat config dins del directori personal de cada usuari i per tant sempre el tindrà en compte.

Fins aqui hem arribat a la configuració de la nostra màquina. A partir d'aqui, tal com he dit el principi, hi han dues opcions:  modificació de configuració del proxy, o modificació del servidor ssh. En el meu cas , tinc experiencia en el segón cas, pero intentaré explicar els dos:

1. En la modificació de configuració del proxy, es tractaría de posar-se en contacte amb l'administrador del proxy perque faci el següent:
    a /etc/squid/squid.conf hi ha unes linees que hi posa:
           
                acl SSL_ports port 443 563      # https, snews
                acl SSL_ports port 873          # rsync

   hi hauria de afegir la següent:
                acl SSL_ports port 22  # SSH

    I reiniciar el dimoni de l'squid.
    Amb aquesta solució una comanda del tipus

ssh usuari@domini

    hauría de ser suficient per a connectar-se al nostre destí.

2. Si per el contrari hi ha mes confiança amb l'administrador del servidor ssh,
     per una banda se li podria demanar que en el fitxer de configuracio del servidor ssh /etc/ssh/sshd_config modifiqui la següent linia:
                     
                     # What ports, IPs and protocols we listen for
                     Port 22

    per el port 443.

                    # What ports, IPs and protocols we listen for
                   Port 443.
   
    i reiniciar el dimoni del servidor ssh.
   
Des del meu punt de vista aixo ja es demanar massa, ja que tots els usuaris del servei ssh haurien de modificar les seves connexions per el port 443. Per tant, crec que el millor es demanar-li que a través de iptables filtri les connexions que li venen del port 443 i les redireccioni al port 22. Crec que hauría de ser una comanda mes o menys aixi:

iptables -t nat -A PREROUTING -i ippp0 -p tcp --dport 433 -j REDIRECT --to-port 22

Amb aquesta sol·lució, la nostra crida ha d'especificar que es vol connectar per port 443:
ssh -p 443 usuari@domini

I crec que ja ho tenim tot! Espero ser d'ajuda.

P.D: no me n'hauria sortit gracies a l'ajuda de les llistes [guifi-usuaris], i sobretot del Joan Llopart. Gracies!