Il cliente ha quindi deciso di dedicare una macchina a questo servizio ed ha chiesto:
ftp
su nuovo server.sftp
su nuovo server.ftp
andrà spento e resterà attivo solo il server sftp
.
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:
OpsnSSH
, che ha in se anche il server sftp
;VSFTP
che provvede a dare il servizio temporaneo nel vecchio protocollo ftp
.
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:
groupadd -f 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/ 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à il due set di dati originale con i comandi:
mkdir /FtpBase
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.
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/ 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
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.
NOTA:
Piccolo script in bash
per aggiungere velocemente gli utenti alla cartella predisposta alla destinazione in base al nome utente:
adduser --force-badname --HOME /FtpBase/"$1" "$1" usermod -a -G sftponly "$1" chmod -R 700 /FtpBase/"$1" chown -R "$1":"$1" /FtpBase/"$1"
Chiaramente al posto /FtpBase/ va messa la cartella che fa da radice alla zona sftp
, ossia quella che conterrà tutti gli utenti specifici.
Clicca qui per tornare alla pagina Configurazioni.
Clicca qui per tornare alla pagina principale di questo Wiki.
— Joseph Curto 2018/07/21 11:49 — Ultima modifica 2023/07/28 09:46