Come si attiva l'FTP server anonimo su Mac OS X (versione client)?

Tratto da MacOSX.org, ampliato e tradotto per Faqintosh

Tutta la procedura è un esempio pensato per Amministratori UNIX in erba, e serve più all'apprendimento dei vari comandi e delle funzionalità delle applicazioni che al risultato stesso, infatti esistono applicazioni specifiche anche molto professionali e ricche di funzionalità che possiamo facilmente trovare su versiontracker cercando per la stringa "ftp server".

Impostazione del servizio di accesso per utenti FTP anonimi

Essere un buon amministratore UNIX va oltre il semplice accertarsi che il sistema sia aggiornato e ben funzionante, va oltre il gestire le proprietà dei permessi degli archivi, i privilegi per le cartelle e i documenti, oltre alla varie responsabilità deve naturalmente anche essere informato di tutti gli utenti che hanno accesso alla macchina.

Detto questo viene ovvio pensare che il testo che segue sia riservato esclusivamente ad amministratori UNIX, ma data la semplicità d'uso del sistema Mac OS e dalla quantità degli strumenti messi a disposizione dello stesso, si presuppone che ogni utente amministrativo creato non sia effettivamente un amministratore esperto di UNIX, per cui in queste spiegazioni ci soffermeremo su quei particolari che ad un utente esperto possono sembrare inezie e facezie, ma che per un amministratore alle prime armi possono sembrare ostacoli insormontabili. Gli utenti più esperti possono avvalersi dell'opzione "salta quello che è in corsivo", fino ad arrivare agli espertissimi che potrebbero cavarsela benissimo leggendo solo il testo in grassetto.

Tornando quindi alle responsabilità di un amministratore UNIX, per mantenere il miglior assetto utente/accesso/sicurezza, cioè facilitare la gestione del sistema in termini di semplicità di accesso e sicurezza sia per l'amministratore che per gli stessi utenti, è consigliabile limitare il numero di ingressi al server allo stretto necessario.
Questa situazione nella maggioranza dei casi è facilmente proponibile, ci sono però casi eccezionali in cui si rende necessario un accesso pubblico ad un determinato servizio.
È quindi di esempio il caso di vari accessi ad un volume o ad una cartella condivisi, dove una indeterminabile moltitudine di utenti sconosciuti all'amministratore UNIX ha necessità di connettersi al Server per prelevare o lasciare uno o più documenti digitali.
In questo caso l'attivazione del Servizio FTP (FTP = File Transfer Protocol), potrebbe rendersi estremamente comodo se non addirittura necessario; ma come coniugare la necessità spiegata sopra con gli altri due fattori, sicurezza e gestione?

Diventerebbe a questo punto problematico avere ancora il controllo con utenze numerose, vasti database di utenza che andrebbero continuamente aggiornati, la creazione di un sito apposito per la gestione degli account, il sistema si renderebbe accessibile anche attraverso gli altri "immensi corridoi", una buona parte di un numero così ampio di utenza potrebbe poi avere la necessità di avere accesso ad altri servizi, mentre un'altra parte no, un'altra parte ancora necessiterebbe di ulteriori servizi, così via fino al più completo caos. Necessiterebbero, a questo punto, altri sotto amministratori per la gestione di una buona parte di questa utenza, situazione improponibile per una piccola realtà, ma anche e soprattutto per la grande distribuzione.

Inoltre la maggioranza di questi utenti FTP probabilmente non richiederebbe utenze reali nel sistema, ma potrebbe semplicemente entrare autenticandosi come utenza anonima, trasmettere o ricevere i relativi documenti e congedarsi per fine attività, tutto ciò con soltanto una frazione del sistema esposto a potenziali hackers. Questa sarebbe la soluzione ottimale e definitiva, ecco quindi venire in aiuto l'ingresso anonimo al sistema.

  • FTP: Il servizio FTP è un metodo per fornire agli utenti un metodo alternativo di accesso al computer ed è già incorporato nel sistema operativo del computer da Mac OS X in poi. Per attivare l'Accesso FTP utilizzare l'apposita sezione nelle preferenze di Condivisione.

Dal menu della mela posto in alto a sinistra, aprire Preferenze di Sistema e fare clic su Condivisione, poi fare clic su 'Servizi' e attivare 'Accesso FTP'.

Altre persone possono avere accesso al computer attraverso l'indirizzo FTP che appare sotto all'elenco di servizi.
Quando l'accesso FTP è consentito, solitamente gli utenti che hanno account sul computer che ospita il servizio possono accedere a documenti e cartelle sul computer usando un browser Web o un software client FTP, nella procedura che segue viene illustrato come permettere a tutti di avere accesso a questa risorsa in totale sicurezza.

Premessa: La funzionalità

Mac OS X viene fornito di un Server FTP completo e preconfigurato, ma chiaramente questo si traduce nell'ovvia situazione in cui tutti gli utenti che hanno accesso al sistema possono avere automaticamente accesso al servizio FTP, tenendo anche conto dei diversi privilegi assegnati per ciascun utente per il trasferimento di archivi da e per il server che ospita il servizio. Questi utenti inoltre avranno la capacità di passare in rassegna su e giù la struttura ad albero del sistema, con accesso in lettura per quasi tutto quello che si trova nel server.

Mentre invece l'utente FTP anonimo, spiegato nel seguito di questa guida, elimina questo non trascurabile rischio nel fattore sicurezza, generando un utenza con accesso limitato ad una sola cartella, specificata dall'amministratore, al relativo contenuto di altre cartelle e di quegli archivi specificati esplicitamente leggibili o meno, sempre da parte dell'amministratore. Infatti un punto a favore del servizio FTP in questo caso, a differenza dell'interfaccia grafica del sistema Mac OS X, è che se un utenza non ha diritti sulla visione del contenuto di una cartella o della cartella stessa o di uno solo degli elementi contenuti, non potrà neppure vedere questa limitazione. Per cui se in Mac OS una cartella ci appare con l'icona del divieto, con il servizio FTP non apparirà neppure, stessa cosa dicesi per i documenti impostati con gli stessi privilegi.

Un altra serie di dispositivi di sicurezza speciali viene costituita sempre dall'amministratore, partendo dal presupposto che l'utente anonimo può trasferire gli archivi dal sistema centrale verso il suo computer, ma questo utente non potrà modificare nulla di quello che è residente sul server. Un archivio che debba essere ricevuto dal server, spedito dall'utente anonimo, verrà registrato solo ed esclusivamente dove gli utenti anonimi possono salvare i loro i dati, ossia in una cartella di sola scrittura. Questi utenti sono limitati esclusivamente a questi dispositivi di sicurezza nel senso che null'altro gli è possibile, perché niente altro gli viene permesso.

Operatività: diritti amministrativi e informazioni

Prima di addentrarci negli argomenti bisognerà accertarsi di essere in linea con la gerarchia che regola le proprietà degli utenti e gruppi ossia verificare i propri diritti amministrativi, per poter editare i permessi degli archivi o più comunemente detti privilegi per cartelle e documenti. Per poter verificare questi diritti amministrativi rivolgetevi all'applicazione Terminale (presente nella sub cartella Utility della cartella Applicazioni), quindi digitate questa stringa al prompt 'sudo cal' senza le interpunzioni.
Vi verrà quindi richiesta la vostra parola chiave di accesso amministrativo, con la stringa 'Password:', se non ne avete una premete semplicemente invio. Se alla digitazione della vostra chiave di accesso e alla successiva pressione del tasto invio ricevete questo messaggio "nomeutente is not in the sudoers file. This incident will be reported." allora lasciate stare, inutile proseguire con la lettura perché non avete diritti sufficienti per continuare e dovrete necessariamente rivolgervi al vostro amministratore di sistema, mentre invece se ricevete una schermata riportante il calendario del mese corrente tutto bene, siete in regola per proseguire con le configurazioni.

L'aiuto su questa sezione del sistema per i principianti, può essere trovato nei manuali dell'interfaccia a linea di comando, nel Terminale, dove per ogni istruzione sarà possibile digitare 'man' (senza le interpunzioni prima del comando) per avere delucidazioni sulle possibilità e implicazioni.

Operatività: utenti e gruppi

Utenza anonima; Il primo passaggio per permettere l'accesso dell'utente FTP anonimo è quello di generare le relative utenze anonime del gruppo e dell'utente. Per fare questo si rende necessario utilizzare l'applicazione "Gestione NetInfo" (NetInfo Manager, sempre nella cartella Utility della cartella Applicazioni).

Una volta aperta l'applicazione, autenticarsi usando la vostra parola chiave di accesso di amministratore sbloccando l'icona del lucchetto visibile nella parte inferiore della finestra del dominio locale di "Gestione NetInfo".

Ora che il dominio locale è sbloccato, visibile anche dall'icona del lucchetto, scorrere il contenuto della colonna centrale verso il basso e trovare la sezione Utenti 'users'. Evidenziare la parola 'users' e scegliere la voce 'Nuova Sottodirectory' dal menu 'Directory'.
Immediatamente apparirà nella colonna di destra una 'nuova_directory' già selezionata, a cui bisognerà cambiare nome in "ftp".
Per fare ciò bisogna selezionare con un doppio click il 'Valore/i' della 'Proprietà/name' presente nella sezione centrale sotto alle 3 colonne e iniziare a scrivere sostituendo 'nuova_directory' con "ftp".

Abbiamo così cominciato creando l'utenza FTP.
A questo punto aggiungere i seguenti elementi al nuovo utente appena creato, selezionando 'Nuova Sottodirectory' dal menù 'Directory' o premendo il pulsante 'Nuovo' dell'interfaccia grafica offerta da Gestione NetInfo, fino ad abbinarli all'esempio pratico riportato qui sotto:

Proprietà   Valore/i
name ftp
realname Anonymous FTP
uid 21
expire 0
passwd *
home /Users/ftp
change 0
shell /dev/null
gid -21

Dopo questa procedura vi sarà facile eseguire un passaggio simile nella sezione 'groups', sempre nella colonna centrale qualche riga sopra a 'users' (salvare quando richiesto), generando questa volta un nuovo gruppo nella directory 'groups' sempre con il comando di menu 'Nuova Sottodirectory' del menu 'Directory' a 'groups' evidenziato. Nominare ancora 'nuova_directory' con "ftp" quindi abbinare i punti seguenti al nuovo gruppo ftp:

Proprietà   Valore/i
name ftp
passwd *
gid -21

Operatività: cartelle e privilegi

Ora procederemo creando la cartella dedicata all'utenza FTP, ossia quell'area in cui verranno portati e limitati tutti gli utenti anonimi una volta entrati nel Server. Come logica consiglia, sarebbe ideale far posizionare questa cartella per gli utenti FTP anonimi direttamente nella cartella /Users, infatti, abbiamo impostato nel passaggio precedente proprio questa posizione che verrà utilizzata per tutti gli esempi seguenti. Tuttavia, anche se non è obbligatorio che questa cartella si trovi necessariamente nella posizione sopra specificata, bisogna comunque tenere bene a mente che chiunque sarà in grado di visualizzarne il contenuto e quindi, anche se la cartella è stata impostata in sola lettura, potrà comunque essere possibile copiare ogni singolo elemento ivi contenuto, per cui si consiglia di avere ben chiaro dove sia stata posizionata e cosa vi sia dentro. In ogni caso per modificare questa posizione bisognerà cambiare anche il valore della proprietà 'home' nella directory locale del programma "Gestione NetInfo" per l'utente 'ftp' precedentemente impostato.

Dal Terminale digitare al prompt il comando 'cd /Users' ('cd' significa change directory - cambia cartella) e premere Invio:

[prompt]% cd /Users

Il prompt dovrebbe essere cambiato dalla riga precedente soprastante ed essersi tramutato in '[NomeMacchina:/Users] nomeutente%'.

Adesso, proseguendo sempre nella stessa finestra del Terminale, digitare il comando 'mkdir ftp' seguito sempre dal tasto Invio (il comando 'mkdir' significa make directory - crea cartella), questo passaggio serve a generare la nostra cartella denominata "ftp" all'interno di /Users:

[prompt]% mkdir ftp

Usare nuovamente questi due comandi per generare le seguenti cartelle all'interno della nuova home ftp appena creata:

[prompt]% cd /Users/ftp
[prompt]% mkdir bin
[prompt]% mkdir pub
[prompt]% mkdir incoming

Utilizzare il comando mkdir con l'opzione -p generare le seguenti strutture di cartelle incluso l'intero percorso:

[prompt]% cd /Users/ftp
[prompt]% mkdir -p usr/lib
[prompt]% mkdir -p System/Library/Frameworks/System.framework/Versions/B

Ora dobbiamo copiare documenti binari molto importanti per la funzionalità del servizio FTP in questa struttura di cartelle appena creata. Per fare ciò bisogna utilizzare il comando 'cp' (il comando 'cp' significa copy - copia), e specificare il percorso all'elemento da copiare, quindi il percorso alla destinazione (cp /usr/ls usr/ls). Copiare tutti gli elementi sotto elencati nelle loro rispettive posizioni della vostra struttura di cartelle sopra generata:

[prompt]% cp /bin/ls  /Users/ftp/bin
[prompt]% cp /usr/lib/dyld  /Users/ftp/usr/lib
[prompt]% cd /Users/ftp/System/Library/Frameworks/System.framework/Versions
[prompt]% cp /System/Library/Frameworks/System.framework/Versions/B/System  B

Questa struttura appena generata è un'implosione del classico Server FTP, racchiuso e quindi limitato nella nostra cartella, cioè rappresenta una replicazione della struttura ad albero del Server FTP destinato ai soli utenti anonimi, infatti gli utenti registrati accederanno a queste risorse dalla normale sorgente da cui le abbiamo copiate. L'ultimo elemento copiato, System, è un componente essenziale del "motore" del Server FTP che illustrerà al client FTP anonimo che si connetterà, come determinare la classe degli elementi, il linguaggio e la modalità di dialogo da utilizzare sul server.

La parte più ardua di questo processo stà nell'accertarsi che tutti i permessi degli elementi, ora presenti nella nostra struttura di cartelle, siano regolati correttamente. Per fare ciò scrivere al prompt i seguenti comandi, per cambiare ricorsivamente i permessi sull'intero albero della struttura /Users/ftp:

[prompt]% chmod -R a+rx-w /Users/ftp
[prompt]% chgrp -R ftp /Users/ftp

Il comando 'chmod' significa change modality o change file modes, nel pratico permette di cambiare la modalità di accesso agli archivi, nello specifico con l'opzione '-R' attiviamo questa funzione in modo ricorsivo su tutta la struttura contenuta nella cartella /Users/ftp e con il termine 'a+rx-w' stiamo specificando che il titolare dei diritti di accesso, il gruppo e l'ospite (all) potranno solo leggere ed eseguire tale struttura.

Il comando 'chgrp' significa change group ossia cambia gruppo titolare, in pratica permette di cambiare i proprietari dei diritti e dei privilegi specificati con il comando 'chmod'. Nel dettaglio con questo comando si permette al proprietario, al gruppo di appartenenza e all'ospite assegnati, di leggere e modificare o meno ogni documento o cartella contenuto nella struttura di cartelle assegnata al comando.

Dato che i privilegi sono una cosa sacra per UNIX, a seconda della versione di sistema operativo utilizzato, potrebbe doversi rendere necessario utilizzare diritti super amministrativi per poter portare a termine il corretto comando 'chown'. Quando è il caso di utilizzare questi super diritti lo si determina dal responso del comando, una volta premuto il tasto invio se vi apparirà solo il prompt tutto bene, mentre se apparirà del testo contenente la posizione di uno degli elementi contenuti nella nostra directory con il prefisso 'chown: " e il suffisso ': Operation not permitted' significherà che appunto sarà necessario preporre il comando 'sudo ' a 'chgrp'.

Ora eseguendo il comando 'ls -l' dalla cartella ftp attuale vi verrà rivelato qualcosa di simile a questo:

[prompt]% cd /Users/ftp
[prompt]% ls -l
dr-xr-xr-x 3 nomeutente ftp 102 4 Sep 6:07 System
dr-xr-xr-x 3 nomeutente ftp 102 4 Sep 6:08 bin
dr-xr-xr-x 2 nomeutente ftp  68 4 Sep 6:08 incoming
dr-xr-xr-x 2 nomeutente ftp  68 4 Sep 6:08 pub
dr-xr-xr-x 3 nomeutente ftp 102 4 Sep 6:07 usr
[prompt]%

La sicurezza è stata impostata, ma così nessun utente potrà mai lasciare nessun elemento all'interno del server. Per permettere questa comodità bisogna impostare la cartella 'incoming' con un accesso in scrittura e nel contempo impostarla per mascherarne la lettura, così facendo avremo ristretto la possibilità che qualsiasi utente possa copiare gli elementi contenuti in tale cartella. Permetteremo al proprietario di leggerla e scriverla, ed agli altri solo di eseguirla e scriverla con il comando:

[prompt]% chmod u+rwX,go+wX-r /Users/ftp/incoming

Questo è tutto. Per verificare il collegamento e le funzionalità utilizzate il comando per avviare il client FTP incluso in OSX digitando 'ftp localhost' sempre nel Terminale. Scrivere "anonymous" per il nome dell'utente al prompt di login del client FTP 'Name:' e specificare il vostro indirizzo eMai per la chiave d'accesso richiesta con 'Password:'. Sarete trasferiti immediatamente nel servizio FTP come utenti anonimi, cioè nella nostra appena creata "/Users/ftp/" (digitare il comando 'ls' per esplorare il contenuto e 'cd' per spostarvi).
Noterete che l'utente può inviare archivi soltanto nella cartella /incoming, inoltre questa è l'unica cartella in cui l'utente non può passare in rassegna il contenuto.

Questa procedura ha permesso all'Amministratore UNIX di fornire l'accesso provvisorio al sistema via FTP senza compromettere assolutamente il fattore sicurezza e senza aggiungere utenti estranei. Ribadisco di fare molta attenzione a cosa è contenuto in queste cartelle poiché sono accessibili a tutti.

Operatività: gestione via front-end, controllo degli accessi

Per visualizzare un registro degli eventi legato agli accessi FTP anonimi avvenuti sul nostro Server, aprire l'applicazione Console (anche lei nella cartella Utility della cartella Applicazioni), dal menu 'Archivio' attivare la voce di menu 'Apri Rapidamente' e dalla sotto voce '/var/log' selezionare 'ftp.log'. Sarà ora possibile analizzare e quantificare gli accessi avvenuti nell'ultimo periodo.

[ Home | Elenco delle FAQ | Forum | Segnalazioni | Risorse | Feed RSS ]