Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows Phone
  • Installazione di vsftpd su CentOS. Installazione di un server FTP - VsFTPd - CentOS Wiki

Installazione di vsftpd su CentOS. Installazione di un server FTP - VsFTPd - CentOS Wiki

Buon vecchio protocollo Trasferimenti FTP ti consente di trasferire file su reti e molto probabilmente ne hai mai incontrato o ne hai sentito parlare. Per impostazione predefinita, utilizza 21 porte (così è successo storicamente) ed è tradizionalmente utilizzato per lo scambio di file tra macchine, secondo lo schema client-server, così come molti altri protocolli. FTP è l'eroe del suo tempo e oggi è molto richiesto per i compiti dei server FTP pubblici. Inoltre, molte società di hosting continuano a supportare questo protocollo per la sua praticità nella condivisione di file.

In questo post esamineremo l'installazione di un server ftp su sistema operativo CentOS. Poiché è stato sviluppato molto tempo fa, l'ftp originale non è sicuro in termini di crittografia del traffico, ecc., il che oggi ne compromette la rilevanza secondo i moderni standard di sicurezza. Pertanto, la maggior parte scelta ottimale per la maggior parte degli utenti che necessitano di un server ftp, il software lo è vsftp(Demone FTP molto sicuro). Vale la pena notare la sua affidabilità e la facilità di configurazione Server FTP.

Installazione di vsftpd
Per installare il server vsftpd, è necessario accedere come root, quindi eseguire il comando:

# gnam installa vsftpd

Questo pacchetto è incluso nel repository CentOS standard e non ci sono problemi con l'installazione questo software Non dovrebbero esserci problemi. Al termine del processo di installazione, è possibile aggiungere il server da avviare all'avvio del sistema:

#chkconfig vsftpd attivato

Dopo che il server è stato installato, configurazione di base consente al server di funzionare con le impostazioni predefinite. Per apportare modifiche alle impostazioni di configurazione, è sufficiente modificare il file di configurazione:
/etc/vsftpd/vsftpd.conf

In questo caso, si consiglia di salvare prima di configurare qualsiasi altra cosa. copia di backup file di configurazione. Leggere la documentazione ti consentirà di configurare il server “per te” con il minor tempo possibile, nervi e non si sa mai. Descrive lo scopo di molti parametri, che non descriverò qui.
Dopodiché puoi avviare il server, ma c'è un'altra cosa che può impedire il funzionamento del server, si tratta di un firewall, come con la maggior parte delle configurazioni del server, dovresti consentire le connessioni al tuo server.

Regole in iptables
Apri il file di configurazione iptables:

/etc/sysconfig/iptables

Aggiungi regole per il server ftp:

Iptables -A INPUT -p tcp --dport 21 -j ACCETTA iptables -A OUTPUT -p tcp --sport 20 -j ACCETTA

Non dimenticare che, affinché le regole abbiano effetto, iptables deve essere riavviato.

# servizio iptables riavviato

Avvio di vsftpd

# avvio del servizio vsftpd

In conclusione, vorrei sottolineare il fatto che vsftpd, nonostante la semplicità della sua installazione, è abbastanza server potente con un numero sufficiente di chicche e cose utili. Tra questi, vorrei segnalare le funzionalità più rilevanti, come gli utenti virtuali, impostazioni individuali, limiti, impostazioni individuali per singoli indirizzi IP e molto altro ancora.

Esempio di una semplice configurazione del server

Modifica del file di configurazione:

# vi /etc/vsftpd/vsftpd.conf

Impedire all'utente di lasciare la directory home

Chroot_local_user=SÌ

Vietiamo l'accesso anonimo al server

Abilita_anonimo=NO

Creazione di utenti FTP
Aggiunta di un utente

# utente aggiunge ftpuser

Imposta una password per l'utente creato

#passwdftpuser

Successivamente modifichiamo il file /etc/passwd
Trova la riga utente ftpuser:

Ftpuser:x:513:513::/home/ftpuser:/bin/bash

/home/ftp— directory home dell'utente;
/sbin/nologin— divieto di accesso degli utenti al sistema;

Per facilità d'uso, puoi creare un gruppo, ad esempio ftpusers, quindi impostare i diritti appropriati sulla cartella /home/ftp

Uno di programmi popolari per connettersi a un server FTP è FileZilla o Total Commander
(cm. ). C'è anche un post sul nostro sito web su come può essere utilizzato tra due server Linux.

La connessione è configurata come negli altri casi; nelle impostazioni di connessione specifichiamo l'indirizzo del server, il nome utente ftpuser, la password.
La directory root potrebbe non essere specificata, perché per impostazione predefinita sarà /home/ftp.

Vsftpd ("Very Secure FTP Daemon") è un server FTP per Sistemi simili a UNIX, inclusi CentOS/RHEL/Fedora e altri Distribuzioni Linux. Supporta IPv6, SSL, bloccando gli utenti dalle loro directory home e molti altri funzioni aggiuntive. Nel mio argomento "Installazione di vsftpd su CentOS" spiegherò come installare vsftpd su CentOS con esempi dettagliati.

Passaggio 1: installazione di Vsftpd

Puoi installare rapidamente Vsftpd sul tuo VPS eseguendo il comando sulla riga di comando:

# gnam installa vsftpd

Dobbiamo anche installare un client FTP:

# gnam installa ftp

Una volta terminato il download dei file, Vsftpd sarà sul tuo VPS.

Passaggio 2: configurazione di VSFTP

Dopo aver installato VSFTP, è possibile impostare la configurazione. Creerò una copia di backup del file di configurazione standard (per ogni evenienza):

# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bk

Apri il file di configurazione:

# vim /etc/vsftpd/vsftpd.conf

Una modifica principale che dovresti apportare è cambiare l'input dell'animus (non ne avevo bisogno):

[...] anonimo_abilita=NO [...]

Prima di questa modifica, Vsftpd consentiva accessi anonimi server FTP E utenti sconosciuti potrebbe accedere ai nostri file VPS. Successivamente, decommenta l'opzione local_enable e modificala in "sì".

[...] local_enable = SÌ [...]

Ciò consentirà agli utenti locali l'accesso all'FTP.

Successivamente, decommenta il comando chroot_local_user. Quando questa riga è "SI", tutto utenti locali saranno imprigionati nelle cosiddette prigioni nella misura delle loro capacità e gli sarà negato l'accesso a qualsiasi altra parte del server. Forniamo chroot per tutti gli utenti:

[...] chroot_local_user = SÌ [...]

[...] write_enable=SI [...]

Ciò concederà agli utenti FTP i diritti di scrittura e, se necessario, disabiliterà la porta 20: ridurrà i privilegi VSftpd:

[...] connect_from_port_20=NO [...]

Impostiamo la maschera su 022 per assicurarci che siano impostati i diritti appropriati per tutti i file (644) e cartelle (755) che carichiamo

[...] local_umask=022 [...]

Ho impostato il file di configurazione, ma devo ancora aggiungere gli utenti. Ora lo farò e ti mostrerò cosa e come.

Impostazioni aggiuntive per la configurazione di vsftpd

consent_anon_ssl NO
Il parametro YES consente a tutti gli utenti anonimi di connettersi tramite una connessione SSL.

anon_mkdir_write_enable NO
Il parametro YES consente di creare directory da parte di utenti anonimi (a determinate condizioni), ma per questo sarà necessario abilitare l'opzione "write_enable", che deve avere diritti di scrittura anonima per la directory principale.

anon_other_write_enable NO
Il parametro YES consente agli utenti anonimi di eseguire non solo le operazioni di caricamento di file e creazione di cartelle, ma anche di eliminarle e rinominarle.

anon_upload_enableNO
Il parametro YES consente agli utenti anonimi di caricare file sul server (è necessario abilitare l'opzione “write_enable”, che deve avere i diritti di scrittura per gli utenti anonimi nella cartella di caricamento). Anche questa opzione deve essere abilitata affinché gli utenti virtuali possano caricare i propri file, poiché per impostazione predefinita tutti gli utenti virtuali sono considerati anonimi.

anon_world_readable_only SÌ
Il parametro YES è necessario affinché gli utenti anonimi possano scaricare solo file leggibili da tutti (il cui proprietario è l'utente ftp).

anonimo_abilita SÌ
Il parametro SI abilita la connessione utenti anonimi su un server denominato ftp e anonimo.

ascii_download_enableNO
Il parametro YES consente di selezionare la modalità ASCII per il download dei file

ascii_upload_enableNO
Il parametro YES consente di selezionare la modalità ASCII per il caricamento dei file

async_abor_enable NO
Il parametro YES consente di utilizzare squadra speciale FTP, noto come "ABOR asincrono".

sfondo SI
L'opzione SÌ consente l'esecuzione di vsftpd in background.

controlla_shell SÌ
Attenzione! Questo parametro funziona solo per vsftpd creato senza “PAM”! Se l'opzione è impostata su NO, vsftpd non verifica la presenza di una shell utente locale in /etc/shells. Tipicamente, se la shell di un utente non viene trovata in /etc/shells, l'accesso FTP a questo utente verrà negato!

chmod_enable SÌ
L'opzione SÌ consente agli utenti locali di utilizzare il comando "SITE CHMOD". Gli utenti anonimi non potranno MAI utilizzare questo comando!

chown_upload NO
L'opzione SÌ fa sì che tutti i file caricati da utenti anonimi cambino il proprietario nell'utente specificato nell'opzione "chown_user-name".

chroot_list_enableNO
L'opzione "SÌ" ti permette di creare un elenco di utenti locali che verranno inseriti in chroot() nella loro home directory al momento del login. Se l'opzione "chroot_local_user" è impostata su "YES", allora tutto funziona esattamente al contrario: per gli utenti locali nell'elenco fornito, "chroot()" NON VERRÀ eseguito. Per impostazione predefinita, l'elenco degli utenti è contenuto nel file /etc/vsftpd/chroot_list, è possibile specificare qualsiasi altro nome di file utilizzando l'opzione “chroot_list_file”.

chroot_local_user NO
L'opzione YES fa sì che gli utenti locali vengano inseriti in chroot() nella loro home directory al momento del login. Attenzione! Questa opzione può comportare rischi per la sicurezza, soprattutto quando gli utenti possono caricare file o avere accesso alla shell. Accendilo solo se sai cosa stai facendo!

connect_from_port_20 NO
L'opzione impostata su SI consente di utilizzare la porta 20 (ftp-data) sul server per il trasferimento dei dati; per motivi di sicurezza alcuni client potrebbero richiedere questo comportamento al server. Al contrario, disabilitare questa opzione ti consente di eseguire vsftpd con meno privilegi.

debug_ssl NO
L'opzione impostata su SI fa sì che venga registrato il funzionamento delle connessioni tramite SSL. (Aggiunto nella versione 2.0.6)

Deny_email_enable NO
L'opzione SÌ consente di fornire un elenco di password nello stile Indirizzi email per gli utenti anonimi (ai quali verrà negato l'accesso). Per impostazione predefinita, l'elenco è contenuto nel file /etc/vsftpd/banned_emails, ma è possibile specificare un file diverso utilizzando l'opzione "banned_email_file".

dirlist_enable SÌ
Un'opzione impostata su NO nega l'accesso per eseguire comandi per visualizzare il contenuto delle cartelle.

dirmessage_enable NO
Il parametro SI permette di mostrare i messaggi agli utenti che entrano per la prima volta in una directory. Per impostazione predefinita, i messaggi si trovano nei file .message, ma puoi specificare un file diverso utilizzando l'opzione "message_file".

download_abilita SÌ
L'opzione NO impedisce il download dei file.

dual_log_enableNO
L'opzione YES abilita la generazione parallela di due log /var/log/xferlog e /var/log/vsftpd.log. Il primo ha lo stile wu-ftpd, il secondo ha lo stile vsftpd.

force_dot_file NO
L'opzione SÌ consente di visualizzare file e directory i cui nomi iniziano con un punto. Fanno eccezione i nomi "." E ".."

force_anon_data_ssl NO
Funziona solo se l'opzione "ssl_enable" è abilitata. Il parametro YES forza le connessioni di tutti gli utenti anonimi alla modalità SSL durante il download e il caricamento di file.

force_anon_logins_ssl NO
Funziona solo se l'opzione "ssl_enable" è abilitata. L'opzione SÌ impone a tutti gli utenti anonimi di cambiare connessione quando inviano una password.

force_local_data_ssl SÌ
Funziona solo se l'opzione "ssl_enable" è abilitata. Il parametro SÌ forza le connessioni di tutti gli utenti NON anonimi alla modalità SSL durante il download e il caricamento dei file.

force_local_logins_ssl SÌ
Funziona solo se il parametro "ssl_enable" è abilitato. L'opzione SÌ impone le connessioni di tutti gli utenti NON anonimi alla modalità SSL quando si invia una password.

guest_abilita NO
L'opzione SÌ specifica che tutte le connessioni anonime devono essere trattate come connessioni "ospite". L'accesso ospite verrà riassegnato all'utente specificato dal parametro "guest_username".

nascondi_id NO
L'opzione SÌ fa sì che il gruppo e il proprietario siano sempre "ftp" quando vengono visualizzati per tutti i file e le directory.

ascolta SI
L'opzione YES fa sì che vsftpd venga avviato in modalità demone. Ciò significa che vsftpd non può essere avviato da inetd. Invece, vsftpd si avvia direttamente una volta e poi gestisce autonomamente le connessioni in entrata.

ascolta_ipv6 NO
Come per il parametro listen, solo vsftpd servirà IPv6, non solo IPv4. Questa opzione e l'opzione di ascolto si escludono a vicenda.

abilita_local NO
Il parametro SI consente di accedere tramite FTP locale utenti (da /etc/passwd o autorizzati tramite PAM). Questo parametro deve essere abilitato se si vuole organizzare il lavoro degli utenti NON anonimi, compresi quelli virtuali.

lock_upload_files SÌ
Il parametro YES abilita il blocco in scrittura per tutti i file scaricati. Tutti i file scaricati hanno un blocco di lettura condiviso. Attenzione! Prima di abilitare questa opzione, ricorda che la lettura dannosa potrebbe far sì che gli utenti che caricano i file non siano in grado di finire di scriverli.

log_ftp_protocollo NO
L'opzione YES fa sì che tutte le richieste e le risposte FTP vengano registrate e l'opzione xferlog_std_format venga disabilitata.

ls_recurse_enable NO
Se l'opzione è impostata su SÌ, abilita l'uso di "ls -R". Ciò crea un rischio significativo per la sicurezza perché si esegue "ls -R" su una directory livello superiore, che contiene molte sottodirectory e file, può comportare un consumo di risorse molto elevato.

mdtm_scrivi SI
Se l'opzione è impostata su SÌ allora abilita l'impostazione MDTM degli orari di modifica del file (utile per il controllo degli accessi)

no_anon_password NO
Se questa opzione è impostata su SÌ, vstpd non chiederà una password agli utenti anonimi.

no_log_lockNO
L'opzione SÌ dice a vsftpd di non bloccarsi durante la scrittura sui file di registro. Generalmente questo parametro spento. In Solaris in collaborazione con file system Talvolta Veritas si blocca quando tenta di bloccare i file di registro.

one_process_model NO
Per i kernel 2.4 è supportato un modello di sicurezza diverso: un processo per connessione. Questo modello è meno sicuro, ma più produttivo. Non abilitarlo se non capisci cosa stai facendo e se il tuo server non ha bisogno di supporto enorme quantità connessioni separate.

passwd_chroot_enableNO
Se l'opzione è impostata su YES, consente, insieme a chroot_local_user, di abilitare chroot() separatamente per ciascun utente, in base ai dati sulla sua home directory presi da /etc/passwd. In questo caso, il valore "/./" nella riga che specifica la directory home indica una posizione separata nel percorso.

pasv_addr_resolve NO
Se l'opzione è impostata su YES, consente di utilizzare un nome (invece di un indirizzo IP) in pasv_addres

pasv_enable SÌ
Se l'opzione è impostata su NO, disabilita il metodo PASV nella connessione ricevuta per la ricezione/trasmissione dei dati.

pasv_promiscuo NO
Se l'opzione è impostata su SÌ, disabilita il controllo di sicurezza, il cui scopo è garantire che la connessione per la ricezione/trasmissione dei dati venga effettuata dallo stesso indirizzo IP della connessione di controllo. Accendilo solo se capisci cosa stai facendo! Ciò è necessario solo in alcuni casi quando si organizzano tunnel sicuri o si supporta FXP.

port_enable SÌ
Se l'opzione è impostata su NO, disabilita il metodo PORT nella connessione ricevuta per la ricezione/trasmissione dei dati.

port_promiscuo NO
Se l'opzione è impostata su SÌ, disabiliterà il controllo di sicurezza della PORTA, il cui scopo è garantire che la connessione in uscita sia connessa al client. Accendilo solo se sai cosa stai facendo!

richiede_cert NO
L'opzione SÌ richiede che tutti i client SSL dispongano di un certificato client. La riduzione dell'autenticazione applicata a questo certificato è controllata dal parametro validate_cert (aggiunto nella versione 2.0.6).

esegui_come_utente_di_avvio NO
Imposta su YES se vuoi eseguire vsftpd come utente che lo esegue effettivamente. Questo di solito è necessario nei casi in cui l'accesso da utente root non disponibile. NOTA SERIA! NON abilitare questa opzione se non sei pienamente consapevole di ciò che stai facendo, poiché l'utilizzo di questa opzione potrebbe creare seri problemi di sicurezza. È particolarmente importante che vsftpd non possa utilizzare / come directory root e utilizzare anche chroot per limitare l'accesso ai file quando questa opzione è abilitata (anche se vsftpd è in esecuzione come root). Meno soluzione adatta Potrebbe essere possibile utilizzare Denis_file con argomenti come (/*,*..*), ma l'affidabilità di questa soluzione non può essere paragonata a quella di chroot, quindi non fare troppo affidamento su di essa. Quando viene utilizzata questa opzione, vengono imposte restrizioni su altre opzioni. Ad esempio, non aspettarti che funzionino le opzioni che richiedono privilegi, come accessi non anonimi, caricamento di file con cambio di proprietà, connessione sulla porta 20 e connessione su porte inferiori a 1024, così come altre simili.

secure_email_list_enable NO
Imposta su SÌ se lo desideri accessi anonimi, solo l'elenco degli indirizzi e-mail specificati è stato utilizzato come password. Ciò è utile per limitare in qualche modo l'accesso al contenuto del server senza creare utenti virtuali. Agli utenti anonimi verrà negato l'accesso se la password fornita non è nell'elenco trovato in email_password_file. Formato file: una password per riga senza spazi aggiuntivi. Posizione file predefinita: /etc/vsftpd/email_passwords

sessione_supporto NO
Se questa opzione è impostata su SÌ, vsftpd tenterà di mantenere le sessioni. Allo stesso tempo, proverà ad aggiornare wtmp e utmp. Se PAM viene utilizzato per l'autorizzazione, vsftpd proverà anche ad aprire pam_session all'accesso e a chiuderlo solo quando l'utente si disconnette. Se non hai bisogno della registrazione della sessione, puoi disabilitarla e puoi dire a vsftpd di eseguire meno processi e/o con privilegi inferiori. La modifica di wtmp e utmp funziona solo se vsftpd è costruito con il supporto PAM.

setproctitle_enable NO
Se questa opzione è impostata su SÌ, vsftpd tenterà di mostrare le informazioni sullo stato della sessione nell'elenco dei processi. In altre parole, il nome del processo mostrato verrà modificato per riflettere lo stato della sessione vsftpd (inattiva, download, ecc.). Per ragioni di sicurezza, potrebbe essere meglio lasciare questa opzione disabilitata.

ssl_enable NO
Se l'opzione è impostata su SÌ e vsftpd è stato creato con la libreria openSSL, vsftpd offrirà connessioni sicure su SSL. Ciò vale sia per le connessioni di controllo che per le connessioni dati. È inoltre necessario che il client supporti le connessioni SSL. Utilizzare questa opzione con cautela perché vsftpd si basa interamente sulla libreria openSSL per proteggere le connessioni SSL e non può garantire che la libreria sia priva di bug.

ssl_request_cert SÌ
Se questa opzione è impostata su YES, vsftpd richiede (ma non richiede) al client di fornire un certificato.

ssl_sslv2 NO
Si applica solo se l'opzione ssl_enable è abilitata. Se l'opzione è impostata su SÌ, le connessioni about Protocollo SSL v2. Sono preferibili le connessioni TLS V1.

ssl_sslv3 NO
Si applica solo se l'opzione ssl_enable è abilitata. Se l'opzione è impostata su SÌ, sono consentite le connessioni che utilizzano il protocollo SSL v3. Sono preferibili le connessioni TLS V1.

ssl_tlsv1 SÌ
Si applica solo se l'opzione ssl_enable è abilitata. Se l'opzione è impostata su SÌ, sono consentite le connessioni che utilizzano il protocollo TLS V1. Sono preferibili le connessioni TLS V1.

Aggiunta di utenti.

Creiamo un nuovo utente chiamato 'ftpuser' e assegniamo la sua directory home '/home/ftpuser':

# useradd -d "/home/ftpuser" -s /sbin/nologin ftpuser

Aggiungiamo una password per l'utente creato:

#passwdftpuser

Creiamo una directory home per questo utente (se non già aggiunta):

# mkdir -p /home/ftpuser

# chown -R ftpuser "/home/ftpuser" # chmod 775 "/home/ftpuser"

Creiamo un gruppo "ftpusers" per gli utenti FTP e aggiungiamovi "ftpuser":

# groupadd ftpusers # usermod -G ftpusers ftpuser

Regole per IPtables.

Se usi IPTABLES, devi creare una regola corrispondente per VSftpd:

# vim /etc/sysconfig/iptables

Aggiungere riga successiva, prima della linea REJECT, per aprire 21 porte:

UN INGRESSO -m stato --stato NUOVO -m tcp -p tcp --dport 21 -j ACCETTA

Salva e chiudi il file e riavvia anche il firewall:

# servizio iptables riavviato

Riavvia Vsftpd:

# riavvio del servizio vsftpd

Aggiungiamo Vsftpd all'avvio; per fare ciò, eseguiamo:

#chkconfig vsftpd attivato

# chkconfig --levels 235 vsftpd attivo

Puoi controllare i livelli di esecuzione in questo modo:

# chkconfig --list vsftpd

Dovresti ottenere qualcosa del genere:

Vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Puoi vedere che il server funziona normalmente eseguendo il comando:

#ps-aux | grep vsftpd

Passaggio 3: vai al server FTP

Dopo aver installato il server FTP e averlo configurato a tuo piacimento, puoi accedervi. È possibile accedere al server FTP tramite il browser digitando Nome del dominio V barra degli indirizzi e accedi con l'ID appropriato.
ftp://sito/
In alternativa è possibile raggiungere il server FTP utilizzando riga di comando digitando:

#sito FTP

L'installazione di vsftpd su CentOS è completata. L'essenza principale è chiara, i dettagli (se improvvisamente non chiari) me lo chiedono. Posso aiutare.

Di recente, un certo copione è andato storto. Lo script è stato acquistato, motivo per cui ho deciso di non occuparmene, ma di contattare direttamente il supporto del venditore per chiarire il problema. Il supporto ha risposto brevemente: abbiamo bisogno dell'accesso all'FTP: lo esamineremo. E qui sono rimasto bloccato per mezzo minuto...

Dopotutto, sul mio Kent non è installato FTP perché lavoro con SSH. Inoltre accedo non con una password, ma con un certificato. Non posso semplicemente darti una chiave SSH con la quale puoi accedere in qualsiasi momento al server. E anche se abiliti temporaneamente l'accesso tramite password, perché dovrebbe supportare scrittura specifica per un km specifico vedere il mio intero server e cosa si trova su di esso?

Beh, penso solo per quelli occasioni speciali Devi alzare la ftpishka.

Fortunatamente, in realtà tutto si è rivelato abbastanza veloce e semplice, e ho anche deciso subito la scelta: "vsftpd" (Very Secure FTP Daemon). Veloce. Sicuro. Multipiattaforma. Facile sia da installare che da configurare. In altre parole, uno dei migliori server FTP.

Installa e configura vsftpd

$yum installa vsftpd

Quindi modifichiamo il file di configurazione principale, in cui abbiamo bisogno di:

  1. Isola gli utenti nella loro home directory.
  2. Nega l'accesso anonimo.
$ nano /etc/vsftpd/vsftpd.conf
1
2
chroot_local_user=SÌ
abilitazione_anonima=NO

Configurazione degli utenti vsftpd

Qui è importante capirne uno molto punto interessante: Non è necessario aggiungere ulteriori utenti FTP, esistono già. E gli utenti sono stati aggiunti esattamente quando abbiamo installato AMP su CentOS. In altre parole - l'utente ha già accesso completo alla sua home directory, non resta che modificarlo per consentire l'autorizzazione sotto vsftpd.

Ad esempio, abbiamo bisogno dell'accesso FTP alla directory /var/www/vhosts/site sul server, di proprietà dell'utente Almostover. Facciamo quanto segue:

  1. Osserviamo l'elenco degli utenti e cambiamo la directory home standard con quella di cui abbiamo bisogno.
  2. Impostiamo all'utente una password per l'accesso FTP.

Assegnazione di una directory home

$ nano /etc/passwd
1
2
-almostover:x:500:500::/home/almostover:/bin/bash
+almostover:x:500:500::/var/www/vhosts/site:/sbin/nologin

Dovresti anche sostituire /bin/bash con /sbin/nologin per negare all'utente l'accesso al sistema.

Diamo all'utente una password

$passwd quasi finito

Avvia vsftpd

E solo dopo aver effettuato tutte le impostazioni sopra descritte, avviamo il server FTP stesso.

Avvio di $service vsftpd

E se prevediamo di utilizzare il server FTP in modo continuativo, non dimentichiamoci di aggiungerlo all'avvio.

$chkconfig vsftpd attivato

Conclusione sul server FTP

Se utilizzare FTP in modo continuativo o meno è una decisione personale per ognuno.

Da un lato, se prevedi di lavorare con una directory (sito) specifica, allora un buon vantaggio è che non devi costantemente chownare file o directory appena scaricati. Tutte le operazioni verranno eseguite per conto di utente attuale e, di conseguenza, tutti i diritti gli verranno assegnati per impostazione predefinita.

D'altra parte, il mio obiettivo personale per l'aumento di FTP è stato annunciato proprio all'inizio: quando è necessario fornire a qualcuno l'accesso temporaneo a una determinata directory isolata su un server/un determinato sito:

  1. Cambio la password per il login rilasciato.
  2. Sto avviando vsftpd.
  3. Ti do il login e la password FTP.
  4. Arresto di vsftpd.
  5. Cambio nuovamente la password per lo stesso accesso (nel caso in cui la prossima volta venga emesso un accesso diverso).

Niente SSH.
Nessuna directory aggiuntiva.
Tutto è estremamente ragionevole e il più sicuro possibile.

|

Avvertimento: Protocollo FTP pericoloso! Si consiglia di utilizzare .

FTP (o File Transfer Protocol) è un metodo per lo scambio di file tra un server locale e remoto. Questo protocollo è piuttosto diffuso, ma può esporre il sistema a seri rischi a causa della mancanza di crittografia: l'FTP trasferisce i dati in formato testo normale.

Come già notato, SFTP lo è ottima alternativa. Questo protocollo scambia file su SSH.

Nota: se necessario, utilizzare esattamente Connessione FTP può essere protetto utilizzando certificati SSL/TLS.

Questo tutorial mostra come utilizzare i certificati SSL e TLS su vsftpd su un privato virtuale Server CentOS 6.4.

Installazione di vsftpd

Il server vsftpd può essere scaricato dai repository CentOS standard. Per installare vsftpd digitare:

sudo yum installa vsftpd

Il server vsftpd è installato su un VPS. Inizia a configurarlo.

Configurazione di base di vsftpd

Il file di configurazione principale di vsftpd, denominato vsftpd.conf su CentOS, è archiviato nella directory /etc/vsftpd/. Aprilo editor di testo con privilegi di root:

In questo file è necessario modificare alcuni parametri di base per aumentare il livello di sicurezza, nonché impostare i parametri di connessione.

Per prima cosa devi negare l'accesso agli utenti anonimi. A volte accesso libero per utenti anonimi è il benvenuto (ad esempio nel caso di archiviazione di file aperti), ma sicuramente non è adatto per un server FTP personale.

abilitazione_anonima=NO

L'accesso anonimo è ora vietato. Pertanto, è necessario fornire al sistema un metodo di autenticazione. Accesso aperto per gli utenti locali (ciò significa che vsftpd può utilizzare l'autenticazione degli utenti del sistema Linux).

Per fare ciò, assicurati che sia impostata la seguente impostazione:

abilitazione_locale=SÌ

È inoltre necessario concedere a questi utenti l'autorizzazione di scrittura in modo che possano caricare e modificare i contenuti.

write_enable=SI

Ora dobbiamo limitare gli utenti alle loro directory home. C'è un parametro per questo:

chroot_local_user=SÌ

Per una configurazione FTP di base (non SSL) questo è sufficiente. L'aggiunta della funzionalità SSL verrà trattata in seguito.

Salva e chiudi il file.

Creazione di un utente FTP

Quindi ora gli utenti locali hanno accesso al server e non possono spostarsi oltre le proprie directory home (grazie all'ambiente chroot).

Crea un nuovo utente utilizzando il comando:

sudo adduser ftpuser

Crea una password per il nuovo utente digitando:

sudo passwd ftpuser

CentOS 6.4 ne utilizza di più vecchia versione vsftpd, quindi la sua configurazione è un po' più semplice rispetto ad alcune nuove versioni.

Configurazione di vsftpd per supportare SSL

La prima cosa da fare è creare Certificato SSL. Infatti la guida utilizza TLS, un protocollo che è il successore di SSL ed è più sicuro.

Nella directory SSL, crea una sottodirectory per archiviare i file:

sudo mkdir /etc/ssl/private

Utilizzare il comando seguente per creare il certificato e la chiave in un unico file:

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

Verrà presentato un elenco di domande. Compila i campi con le informazioni appropriate. Attenzione speciale dovrebbe essere inserito nella riga del nome comune; Inserisci l'indirizzo IP o il dominio del server. I restanti campi, infatti, non necessitano di essere compilati.

Aggiunta di SSL alla configurazione vsftpd

Ora devi modificare le configurazioni di vsftpd, impostando una connessione sicura.

Apri il file di configurazione vsftpd come root:

sudo nano /etc/vsftpd/vsftpd.conf

Vai alla fine del file e inserisci le informazioni SSL/TLS.

Qui è necessario specificare la posizione del certificato e delle chiavi. Poiché è tutto in un unico file, specifica quel file in entrambi i parametri:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Successivamente, è necessario abilitare il supporto per questi file e disabilitare gli utenti anonimi. È inoltre necessario configurare uso forzato SSL per le connessioni di tutti gli utenti NON anonimi durante l'invio di una password o il trasferimento di dati. Ciò migliorerà notevolmente la sicurezza.

ssl_enable=SÌ
consent_anon_ssl=NO
force_local_data_ssl=SÌ
force_local_logins_ssl=SÌ

Quindi è necessario limitare il tipo di connessione a altro TLS sicuro. Per fare ciò, abilita esplicitamente TLS e disabilita SSL:

ssl_tlsv1=SÌ
ssl_sslv2=NO
ssl_sslv3=NO

Infine aggiungi i seguenti parametri:

require_ssl_reuse=NO
ssl_ciphers=ALTO

Salva e chiudi il file.

Riavvia vsftpd per abilitare le nuove impostazioni:

sudo /etc/init.d/vsftpd riavviare

Impostare avvio automatico vsftpd all'avvio del server, utilizzare:

sudo chkconfig vsftpd attivo

Connessione a vsftpd utilizzando FileZilla

Le connessioni SSL e TLS sono supportate dalla maggior parte dei client FTP moderni. Questa sezione mostra come configurare FileZilla da utilizzare connessioni sicure(a causa della loro multipiattaforma).

Nota: Si presuppone che il client sia già installato.

Apri FileZilla. Fare clic su Gestione sito.

apparirà nuova interfaccia, in esso fai clic sul pulsante Nuovo sito nell'angolo in basso a sinistra. Fornire un nome di connessione al server in modo da poterlo identificare facilmente in seguito.

Nel campo Host, inserisci l'indirizzo IP, nel menu a discesa Protocollo, seleziona "FTP - File Transfer Protocol". Dal menu a discesa Crittografia, seleziona "Richiedi FTP esplicito su TLS".

Nel menu Tipo di accesso, seleziona Richiedi password. Nel campo Utente specificare l'utente FTP creato in precedenza.

Il passaggio successivo è la prima indicazione che TLS viene utilizzato durante la connessione al server. L'avviso “Il certificato del server è sconosciuto. Esamina attentamente il certificato per assicurarti che il server sia attendibile”: in questa fase è necessario confermare il certificato.

Sullo schermo dovrebbero apparire le informazioni inserite durante la creazione del certificato, che consentiranno di confermare la connessione.

Per stabilire una connessione, accettare il certificato.

Risultati

Questa guida fornisce di più opzione sicura impostazioni. Tuttavia, potrebbe anche avere un paio di problemi di sicurezza. Pertanto non è consigliabile utilizzare FTP su installazioni con accesso a Internet; in questi casi è preferibile utilizzare SFTP.

Tag: ,

Consideriamo ora un esempio di organizzazione di un server FTP basato su vsFTPd E CentOS7. Il servizio FTP sarà estremamente utile per qualsiasi organizzazione e servizio, ad esempio . Prima di tutto, installa i pacchetti vsftpd richiesti:

sudo yum -y installa vsftpd

Successivamente, copia il file delle impostazioni in posto sicuro, cioè. directory separata. Come ho scritto negli articoli precedenti, questo è buona pratica e la possibilità di ripristinare le impostazioni predefinite.

sudo mkdir /backup

sudo cp /etc/vsftpd/vsftpd.conf /backup

Installiamo anche client FTP sul server che stai utilizzando, forse ti sarà utile in futuro e ora quando controllerai le impostazioni. Anche l'installazione è semplice:

sudo yum -y installa ftp

Configurazione del server vsFTPd

Dopo aver installato il server e il client, procediamo alla configurazione di vsftpd. Dovresti immediatamente prestare attenzione: Accesso anonimo A FTP consentito per impostazione predefinita. Impostaonymous_enable=NO per garantire la sicurezza del tuo server.

L'installazione verrà eseguita modificando il file di configurazione vsftpd.conf:

sudo nano /etc/vsftpd/vsftpd.conf

Apporteremo le seguenti modifiche:

Questo basterà per corretto funzionamento creato il server FTP, per ottenere dati estesi sui parametri utilizzati, utilizzare man (man vsftpd.conf).

Aggiunta di un nuovo utente FTP

Creiamo un utente FTP speciale chiamato ftpuser e la directory predefinita /var/www/your_directory:

useradd -d '/var/www/percorso/della/tua/dir' -s /sbin/nologin ftpuser

Impostiamo una password:

Se directory principale non è ancora stato creato per ftpuser, facciamolo ora:

mkdir -p /var/www/percorso/alla/tua/dir

chown -R ftpuser '/var/www/percorso/alla/tua/dir'

chmod 775 '/var/www/percorso/alla/tua/dir'

Crea un gruppo "ftpusers" per gli utenti FTP e aggiungi "ftpuser" ad esso:

groupadd ftpusers

usermod -G ftpusers ftpuser

Configurazione di iptables per vsFTPd

Per corretto L'FTP funziona il server deve essere configurato IPTABLES(aggiungere regole per FTP). Maggiori informazioni su iptables: +.

Apertura file di configurazione iptables e apportare le seguenti modifiche:

sudo nano /etc/sysconfig/iptables
-A INPUT -m state —state NEW -m tcp -p tcp —dport 21 -j ACCEPT

Salva e chiudi il file. Riavviare il firewall con il comando:

sudo systemctl riavvia iptables

Configurazione dell'avvio automatico di vsFTPd all'avvio del sistema

chkconfig --levels 235 vsftpd attivo

Iniziamo vsFTPd Servizio FTP:

Pronto. Configurazione dell'FTP server completato. Controlliamo il suo funzionamento localmente.

I migliori articoli sull'argomento