Indice

Configurazione di una macchina con servizi ftp ed sftp on utenti comuni ed aree dati → NON ← condivise


Situazione

Un cliente che usa ftp da diversi anni vuole, per aggiornarsi con la sicurezza, passare tutti i suoi utenti da client ftp a client sftp. Al momento il cliente ha un server gestito dall'applicazione FileZilla su una macchina Windows il cui SO, al momento mi è sconosciuto. Essendo, questo del servizio server ftp, un work in progress continuo, ha alcuni utenti su un disco, ed altro su uno store esterno, che ha installato quando ha capito che i dati da salvare sarebbero diventati piuttosto ingombranti (al momento 793GB).


Richieste

il cliente ha quindi deciso di dedicare una macchina a questo servizio ed ha chiesto:


Cosa ho fatto prima di fare il lavoro definitivo

Dopo aver installato una distribuzione Ububtu Server 18.04 LTS ho provveduto a fare delle prove di configurazione per arrivare ad ottenere quello che il cliente chiede. Per fare ciò necessitano:


Configurazioni ottimali

Configurazioni sftp

Per avere gli stessi utenti, con stessa password, ma con accessi ad aree diverse a seconda che si colleghino via ftp o via sftp queste sono le configurazioni necessarie.

Va aggiunto un gruppo che serve per isolare gli utenti che usano sftp: l'ho chiamato sftponly. Quindi ho usato il comando:

useradd -g sftponly

ho poi configurato il file /etc/ssh/sshd_config nel seguente modo(solo per quanto riguarda la parte sftp):

Subsystem   sftp    /usr/lib/openssh/sftp-server
Match Group sftponly
        PermitTunnel no
        AllowAgentForwarding no
        AllowTcpForwarding no
        X11Forwarding no
        ForceCommand internal-sftp
        ChrootDirectory /FtpBase/sftp/
        ForceCommand internal-sftp -d %u

Ho ricaricato le configurazioni di sshd per fargli leggere le nuove impostazioni:

 
service ssh reload

Ho creato una cartella che conterrà i due set, sia ftp che sftp distintamente, con i comandi:

  mkdir -p /FtpBase/sftp
  mkdir /FtpBase/ftp

ho aggiunto il primo utente assegnandolo al gruppo di selezione sftponly ed assegnandogli la password:

  useradd -g sftponly testuser
  passwd testuser

Ho creato la corrispondente cartella nell'area sftp assegnato i corretti user e gruppo:

   mkdir /FtpBase/sftp/testuser
   chown testuser:testuser /FtpBase/sftp/testuser

Per terminare aggiusto le permissions a tutte le cartelle utente in sftp:

 
chmod 700 /FtpBase/sftp/*

A questo punto, tutti gli utenti caricati in questo modo saranno accessibili via sftp/scp ma ognuno potrà accedere solo alla propria cartella.


Configurazioni ftp

Come prima cosa ho installato il software necessario per gestire il server ftp:

  apt install vsftpd

Poi ho proceduto al settaggio del proprio file di configurazione:

  listen=YES
  listen_ipv6=NO
  anonymous_enable=NO
  local_enable=YES
  local_root=/FtpBase/ftp/
  write_enable=YES
  dirmessage_enable=YES
  use_localtime=YES
  xferlog_enable=YES
  connect_from_port_20=YES
  pam_service_name=vsftpd

I parametri sopra elencati sono sparsi per il file di configurazione, ma sono in questo ordine. Alcuni mancano proprio quindi vanno inseriti ex novo.

Ho ricaricato le configurazioni di vsftpd per fargli leggere le nuove impostazioni:

service vsftpd reload

Ho creato la cartella corrispondente, che nel nostro caso non serve perché già esistente:

 mkdir /FtpBase/ftp/testuser
 chown -R testuser:testuser /FtpBase/ftp/testuser

Per terminare aggiusto le permissions a tutte le cartelle utente in ftp:

 
chmod 700 /FtpBase/*

Conclusioni

In questo modo abbiamo ottenuto quello che ci serviva. Il caso specifico del cliente risparmia un po' di operazioni perché esiste una struttura file già esistente, altrimenti si dovrebbero creare le singole cartelle per ogni utente, per questo ho sviluppato questa pagina come se fosse un lavoro ex novo.


Clicca qui per tornare alla pagina Configurazioni.
Clicca qui per tornare alla pagina principale di questo Wiki.


— Creato il Joseph Curto 2018/07/21 11:58 — Ultima modifica il 2023/07/28 09:37