Servidor SFTP

De El raconet d'en Jordi

Dreceres ràpides: navegació, cerca

Contingut

Objectiu

Volem tenir un espai personal de disc accessible per xarxa a alumnes i professors.

Aquest espai es troba en un servidor Debian GNU/Linux Lenny a una partició RAID-1 (2 actius, 1 spare), i es realitzen còpies de seguretat setmanals. El servidor té un SAI APC. El conjunt dona una excel·lent seguretat i fiabilitat de les dades.

A més a més, tenim el discos durs (SATA 1,5TB) en calaixos removibles[1] i el maquinari del servidor duplicat, de forma que canviant els calaixos d'ordinador podem restablir el servei en qüestió de minuts en cas d'avaria.

Requisits

Partim d'un servidor amb Debian GNU/Linux Lenny i amb el paquet ssh instal·lat

Configuració

A /etc/ssh/sshd_config modifiquem la linia[2]

  Subsystem sftp /usr/lib/openssh/sftp-server

per

  Subsystem sftp internal-sftp

Trobareu més informació amb

  # man sshd_config

Limitació dels usuaris (chroot)

Per evitar que els nostres usuaris puguin veure altres carpetes (sistema, arbre altres usuaris) afegim a aquest arxiu les linies:

  Match group alum
        ChrootDirectory /home/alum/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp
  Match group prof
        ChrootDirectory /home/prof/%u
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

ja que els usuaris tenen particions diferents pel seus espais, depenent de si son professors o alumnes.

Aquesta solució funciona correctament per a SFTP, però si intentem un SSH de consola la connexió no s'estableix. En el meu cas ja està bé, encara que m'agradaria més que donés un error explícit. En un altre entorn es podria configurar per permetre logins de ssh copiant els arxius necessaris [3]

Creació d'un usuari

una vegada creat un usuari de la forma tradicional, amb adduser, hem de fer alguns canvis.

Per exemple, per al professor jorts, el donem d'alta al sistema:

    # adduser --home /home/prof/jorts --ingroup prof jorts

i modifiquem alguns paràmetres i creem algunes carpetes

    # usermod -d / jorts                                  #Ara el seu home és l'arrel del que veu
    # chown root /home/prof/jorts                         #sftp necessita que l'arrel sigui propietat de root
    
    # mkdir /home/prof/jorts/personal                     #espai personal
    # chown jorts:prof /home/prof/jorts/personal          #és el propietari
    # chmod 700 /home/prof/jorts/personal                 #només ell hi pot treballar
    
    # mkdir /home/prof/jorts/public_html                  #web personal
    # chown jorts:prof /home/prof/jorts/public_html       #és el propietari
    # chmod 755 /home/prof/jorts/public_html              #accessible al servidor web

Connexió des del GNOME

L'escriptori del GNOME permet una connexió fàcil al servei SFTP:


Connexió des de Windows

El programa Filezilla[4] permet una connexió tipus FTP, com es pot fer amb el gFTP amb GNU/Linux. Un programa molt interessant és el WinSCP[5], que permet una integració amb l'escriptori. Al meu cas he hagut d'activar manualment la codificació UTF-8 de caràcters per evitar problemes amb els accents als noms de fitxers.