Experiència Ubuntu Servidor HTP i ftp. Configuració i creació usuaris.

Després de tenir el bloc un pel abandonat, bàsicamnet per feina diversa, us deixo explicació d'una cosa que he estat provant aquest cap de setmana.

Tot va sortir al intentar montar un servidor web a l'escola, ja que els senyors d'educació ens han canviat les adreces, sense avisar, i clar ara tota la feina és a les nostres mans. A més fins ara estava a windows, i sembla que educació vol que anem cap a linux.

El primer intent va ser fer-ho amb la Linkat, i el cert es que l'ordinador d'entrada va quedar molt carregat i lent, fer res era un suplici. Va acabar de rematar la feina quan vaig veure que havia de començar a activar els serveis, que tot i estar instal·lats no funcionaven, quan jo recordaba que en Ubuntu era tot immediat, així que vaig fer la prova de montar un Ubuntu, i així és. L'ordinador sembla més lleuger, tot que essent sincer, la linkat es va instal·lar a la primera, i l'Ubuntu, vaig haver de cercar la última versió. suposo que qüestions de configuracions.
Així ho vaig deixar, i aquest cap de setmana he estat mirant una mica més com va això de les configuracions dels serveis ftp, web ... De moment us deixo com es configura l'ftp.

És un pel dens, ho reconec, però les coses són així.



Paquets instal·lats:
  • Apache   -   Servidor WEB
  • PHP-mysql   -   Per utilitzar pàgines dinàmiques i bases de dades
  • squid    -   proxy, i control de pàgines
  • vsftpd - servidor ftp. Objecte d'aquesta configuració.

Carpetes:
web: /var/www
ftp: /home/ftp
Sembla ser que els usuaris poden tenir la seva web del tipus: web/~nom/ si a la seva carpeta personal tenen una carpeta creada amb el nom /public_html, però de moment no he aconseguit.
Els fitxers de configuració es troben situats a la carpeta /etc.

Configuració del FTP:

Bàsicament el vsftpd té dues carpetes de treball:
  • /etc/vsftpd.user_list és el arxiu de configuració d'usuarios, carpetes, etc.
  • /etc/vsftpd.conf, és el arxiu de configuració general.

Editem el fitxer de configuració: /etc/vsftpd.conf
    Els paràmetres els trobem repartits per el fitxer, alguns tant sols els hem de descomentar. Treure la # del davant.
    # Habilitar l'accés a usuaris anònims. Per seguretat posar NO.
    anonymous_enable=NO
    # Permetre l'accés als usuaris locals a les seves carpetes.
    local_enable=YES
    # Permètre l'escriptura:
    write_enable=YES
    # Màscara del directori
    local_umask=022
    # Missatge quan algú es connecta:
    ftpd_banner=Benvingut al FTP d'en Josep M
    # Deixar els usuaris dins de la seva pròpia carpeta. Millora la seguretat.
    chroot_local_user=YES
    # Perquè els usuaris no puguin accedir a les carpetes de sistema
    chroot_list_enable=YES
    # Carpeta on guardem els usuatis que poden accedir a altres carpetes
    chroot_list_file=/etc/vsftpd.chroot_list
    Altres opcions interessants:
    #opcions de transferència
    #ample de banda per usuari anònim 5kb
    anon_max_rate=5100
    #ampla de banda per usuari local 5kb
    local_max_rate=5100
    #nombre màxim de clients alhora
    max_clients=5
    #màximes connexions d'una mateixa IP
    max_per_ip=2
    Creem un fitxer buit a /etc:
    /etc/vsftpd.chroot_list
    Des de el terminal, reiniciem el servei:
    sudo /etc/init.d/./vsftpd restart
    Neguem l'accés a les comandes als usuaris, per això hem d'editar el fitxer /etc/shells, i posar al final una línia de tots els usuaris bin/false. Segons com crem els usuaris ja estarà posat.

    Anem a crear usuaris que tinguin accés tant sols a la seva carpeta.

    Carpeta de l'usuari

    Primer hem de crear la carpeta per l'usuari nou, suposem convidat
    sudo mkdir /home/ftp/convidat
    La carpeta ftp, es va crear quan vam instal·lar el servei ftp.

    Crear un grup nou

    Creem un grup anomenat ftp, on posarem els usuaris que tinguin accés via ftp
    sudo groupadd ftp

    Crear usuari nou

    Crearem un usuari, convidat, que tingui un espai a /home/ftp/convidat però que no tingui accés al shell.
    sudo useradd -g ftp -d /home/ftp/convidat -s /bin/ftb -c ' convidat ' convidat
    Nota: -g és el grup, -d és la carpeta, -s és el shell, -c és el comentari, en molta bibliografia el comentari va entre “, però a mi no m'ha funcionat i amb ' senzilla, si. I finalment posem l'usuari.

    Crear la contrasenya

    Ara posarem la contrasenya que vulguem a l'usuari
    sudo passwd convidat
    Ens demanarà la contrasenya, per duplicat.

    Permisos de les carpetes

    Per que l'usuari pugui escriure coses a les seves carpetes, ens hem d'assegurar que en sigui propietari i tingui drets d'escriptura i lectura. Sinó quan intentem guardar alguna cosa, ens dona un error 550, denegant l'accés.
    sudo chown -R convidat /home/ftp/convidat

    Creem un Shell falç

    sudo mkdir /bin/ftp
    Tot seguit editem el fitxer /etc/shells i afegim la carpeta que hem creat
    Per acabar editem el fitxer /etc/passwd i cerquem la linia de l'usuari, on afegirem el Shell falç:

    convidat:x:1001:1001:Convidat:/home/ftp/convidat:/bin/ftp

    Ens hem de fixat que la última carpeta coincideixi amb la del Shell fals. Si no ho és ho posem.

    Reiniciamos el FTP

    sudo /etc/init.d/vsftpd restart

    --- si el que modifiquem és l'Apache, es pot fer de manera semblant ---
    Ara activem l'usuari i reiniciem l'apache

    sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled
    sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled
    sudo /etc/init.d/./apache2 restart


    NOTA: El servei FTP, de manera local funciona molt lent perquè la transferència està limitada a 5KB.