Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows 8
  • Installazione del server FTP - VsFTPd - Wiki di CentOS.

Installazione del server FTP - VsFTPd - Wiki di CentOS.

Vsftpd ("Very Secure FTP Daemon") è un server FTP per sistemi simili a UNIX, inclusi CentOS / RHEL / Fedora e altre distribuzioni Linux. Supporta IPv6, SSL, il blocco degli utenti nelle loro home directory e molte altre funzionalità avanzate. 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 per farlo, esegui il comando nella riga di comando:

# yum install vsftpd

Abbiamo anche bisogno di installare un client FTP:

# yum install ftp

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

Passaggio 2: configurazione di VSFTP

Dopo aver installato VSFTP, puoi personalizzare la configurazione. Farò un backup del file di configurazione predefinito (per ogni evenienza):

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

Apri il file di configurazione:

# vim /etc/vsftpd/vsftpd.conf

Un importante cambiamento che dovresti fare è cambiare l'input per ananimus (non ne ho bisogno):

[...] anonymous_enable = NO [...]

Prima di questa modifica, Vsftpd consentiva accessi anonimi al server FTP e gli utenti sconosciuti potevano accedere ai nostri file VPS. Dopodiché, decommenta l'opzione local_enable, cambiala in yes.

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

Questo darà agli utenti locali l'accesso all'FTP.

Decommentare ulteriormente il comando chroot_local_user. Quando questa stringa è impostata su "YES", tutti gli utenti locali saranno imprigionati nelle cosiddette jail entro la loro capacità e gli sarà negato l'accesso a qualsiasi altra parte del server. Forniamo un chroot per tutti gli utenti:

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

[...] write_enable = S [...]

Ciò darà agli utenti FTP i permessi di scrittura, inoltre, se necessario, disabiliterà la porta 20 - ridurrà i privilegi di VSftpd:

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

Imposta la maschera su 022 per assicurarti che tutti i file (644) e le cartelle (755) che carichiamo siano impostati sui diritti appropriati

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

Ho configurato 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

allow_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 utenti anonimi (a determinate condizioni), ma per questo sarà necessario abilitare l'opzione "write_enable", che deve avere il permesso di scrivere da utenti anonimi per la directory padre.

anon_other_write_enable NO
Il parametro YES consente agli utenti anonimi di eseguire non solo le operazioni di caricamento dei file, creazione di cartelle, ma anche cancellazione e ridenominazione delle stesse.

anon_upload_enable NO
Il parametro YES consente agli utenti anonimi di caricare file sul server (è necessario abilitare l'opzione "write_enable", che deve disporre dei permessi di scrittura per gli utenti anonimi nella cartella di caricamento). Anche questa opzione deve essere abilitata in modo che gli utenti virtuali possano caricare i propri file, perché 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 (di proprietà dell'utente ftp).

anonimo_abilita SI
Il parametro YES consente agli utenti anonimi di connettersi al server denominato ftp e anonimo.

ascii_download_enable NO
Il parametro YES permette di selezionare la modalità ASCII per il download dei file

ascii_upload_enable NO
Il parametro YES permette di selezionare la modalità ASCII per il caricamento dei file

async_abor_enable NO
Il parametro YES abilita l'uso di uno speciale comando FTP noto come "async ABOR".

sfondo SI
Il parametro YES consente l'esecuzione di vsftpd in background.

check_shell SI
Attenzione! Questa opzione funziona solo per vsftpd compilato senza "PAM"! Se l'opzione è impostata su - NO, vsftpd non verifica la shell di un utente locale in / etc / shells. Di solito, se la shell dell'utente non viene trovata in / etc / shells, l'accesso FTP per quell'utente verrà negato!

chmod_enable S
Il parametro YES consente all'utente o agli utenti locali di utilizzare il comando "SITE CHMOD". Gli utenti anonimi non possono MAI utilizzare questo comando!

chown_uploads NO
Il parametro YES fa sì che il proprietario venga modificato nell'utente specificato nell'opzione "chown_user-name" per tutti i file caricati da utenti anonimi.

chroot_list_enable NO
Il parametro "YES" permette di creare una lista di utenti locali per i quali, dopo il login, verrà eseguito un "chroot()" nella loro home directory. 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 in modo che gli utenti locali eseguano il chroot() nella loro home directory dopo il login. Attenzione! Questa opzione può essere dannosa per la sicurezza, specialmente nel caso in cui l'utente possa caricare file o avere accesso alla shell. Accendilo solo se capisci cosa stai facendo!

connect_from_port_20 NO
L'opzione impostata su YES 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 dal server. Al contrario, disabilitare questa opzione consente a vsftpd di essere eseguito con meno privilegi.

debug_ssl NO
L'opzione impostata su YES porta alla registrazione delle connessioni SSL. (Aggiunto in 2.0.6)

nega_email_abilita NO
Il parametro YES consente di fornire un elenco di password in stile e-mail per utenti anonimi (ai quali verrà negato l'accesso). Per impostazione predefinita, l'elenco è contenuto nel file /etc/vsftpd/bannato_emails, ma è possibile specificare un file diverso utilizzando l'opzione file_bannato_email.

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

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

download_enable S
Il parametro NO vieta il download dei file.

dual_log_enable NO
Il parametro YES abilita la generazione parallela di due log /var/log/xferlog e /var/log/vsftpd.log. Il primo è in stile wu-ftpd, il secondo è in stile vsftpd.

force_dot_files NO
Il parametro YES abilita la visualizzazione di file e directory il cui nome inizia con un punto. Le eccezioni sono 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 dei file.

force_anon_logins_ssl NO
Funziona solo se l'opzione ssl_enable è abilitata. Il parametro YES obbliga tutti gli utenti anonimi a cambiare connessione quando inviano una password.

force_local_data_ssl S
Funziona solo se l'opzione ssl_enable è abilitata. Il parametro YES forza tutte le connessioni degli 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 YES forza tutte le connessioni degli utenti non anonimi alla modalità SSL quando viene inviata la password.

guest_enable NO
Il parametro YES dice che tutte le connessioni anonime devono essere trattate come connessioni "ospite". Il login ospite verrà riassegnato all'utente specificato dal parametro "guest_username".

hide_ids NO
Il parametro YES fa in modo che il gruppo e il proprietario siano sempre "ftp" quando vengono visualizzati per tutti i file e le directory.

ascolta SI
Il parametro YES fa in modo che vsftpd si avvii in modalità daemon. Ciò significa che vsftpd non può essere avviato da inetd. Invece, vsftpd viene eseguito direttamente una volta e gestirà da solo le connessioni in entrata.

listen_ipv6 NO
Come per il parametro di ascolto, solo vsftpd servirà IPv6, non solo IPv4. Questo parametro e il parametro di ascolto si escludono a vicenda.

local_enable NO
Il parametro YES consente agli utenti locali di accedere tramite FTP (da /etc/passwd o autenticati tramite PAM). Questo parametro deve essere abilitato se si vuole organizzare il lavoro degli utenti non anonimi, anche virtuali.

lock_upload_files S
Il parametro YES abilita i blocchi di scrittura per tutti i file caricati. Tutti i file scaricati hanno un blocco di lettura condiviso. Attenzione! Prima di abilitare questa opzione, ricorda che la lettura dannosa può portare al fatto che gli utenti che caricano file non saranno in grado di aggiungerli.

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

ls_recurse_enable NO
Se impostato su YES, allora abilita l'uso di "ls -R". Ciò rappresenta un rischio significativo per la sicurezza perché l'esecuzione di "ls -R" in una directory di primo livello che contiene molte sottodirectory e file può richiedere molte risorse.

mdtm_write S
Se l'opzione è impostata su SI allora abilita MDTM impostando l'orario di modifica del file (utile per verificare l'accesso)

no_anon_password NO
Se l'opzione è impostata su YES, vstpd non richiede una password agli utenti anonimi.

no_log_lock NO
L'opzione YES dice a vsftpd di non bloccarsi durante la scrittura nei file di registro. Di solito questa opzione è disabilitata. Su Solaris, insieme al file system Veritas, a volte viene visualizzato un errore che provoca un blocco durante il tentativo di bloccare i file di registro.

one_process_model NO
Per i kernel 2.4 è supportato un diverso modello di sicurezza: 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 supportare un numero enorme di singole connessioni.

passwd_chroot_enable NO
Se l'opzione è impostata su YES, abilita insieme a chroot_local_user, abilita chroot() separatamente per ogni 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 il nome (invece dell'indirizzo IP) in pasv_adres

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

pasv_promiscuous NO
Se l'opzione è impostata su SI, disabilita il controllo di sicurezza, il cui scopo è assicurarsi che la connessione per la ricezione/trasmissione dati sia effettuata dallo stesso indirizzo IP della connessione di controllo. Includi solo se capisci cosa stai facendo! Ciò è necessario solo in alcuni casi quando si impostano tunnel sicuri o si supporta FXP.

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

port_promiscuous NO
Se l'opzione è impostata su YES, disabiliterà il controllo di sicurezza PORT, il cui scopo è assicurarsi che la connessione in uscita sia connessa esattamente al client. Includi solo se capisci cosa stai facendo!

require_cert NO
L'opzione S richiede che tutti i client SSL dispongano di un certificato client. Il downgrade applicabile a questo certificato è controllato dal parametro validate_cert (aggiunto in 2.0.6).

run_as_launching_user NO
Impostare su S se si desidera eseguire vsftpd come utente di avvio effettivo. Di solito è necessario nei casi in cui l'accesso root non è disponibile. AVVISO SERIO! NON abilitare questo parametro finché non si è pienamente consapevoli di ciò che si sta facendo, poiché l'utilizzo di questo parametro può creare un serio problema di sicurezza. È particolarmente importante che vsftpd non possa utilizzare / come directory principale e utilizzi anche chroot per limitare l'accesso ai file quando questa opzione è abilitata (anche se vsftpd è in esecuzione come root). Una soluzione meno adatta potrebbe essere quella di utilizzare require_file con argomenti come (/*,*..*), ma l'affidabilità di tale soluzione non può essere paragonata a chroot, quindi non fare troppo affidamento su questo. Quando si utilizza questo parametro, vengono imposte restrizioni su altre opzioni. Ad esempio, non aspettarti che opzioni privilegiate come accessi non anonimi, caricamenti di file con cambio di proprietà, connessione sulla porta 20 e connessione su porte inferiori a 1024 e altre simili funzionino.

secure_email_list_enable NO
Impostare S se si desidera utilizzare solo l'elenco specificato di indirizzi e-mail come password per gli accessi anonimi. Questo è 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 specificata non è nell'elenco, che si trova nel file email_password_file. Formato file: una password per riga senza spazi aggiuntivi. Il percorso del file predefinito è / etc / vsftpd / email_passwords

session_support NO
Se impostato su YES, vsftpd proverà a mantenere le sessioni. Quando lo fa, tenterà di aggiornare wtmp e utmp. Se PAM viene utilizzato per l'autorizzazione, vsftpd proverà anche ad aprire pam_session all'accesso e a chiuderlo solo al logout dell'utente. Se non hai bisogno della registrazione della sessione, puoi disabilitarla e puoi anche dire a vsftpd di eseguire meno processi e/o con meno privilegi. La modifica di wtmp e utmp funziona solo se vsftpd è compilato con il supporto PAM.

setproctitle_enable NO
Se impostato su YES, vsftpd proverà a visualizzare le informazioni sullo stato della sessione nell'elenco dei processi. In altre parole, il nome del processo visualizzato verrà modificato per riflettere lo stato della sessione vsftpd (inattivo, in download, ecc.) Per motivi di sicurezza, potresti voler lasciare questa opzione disabilitata.

ssl_enable NO
Se l'opzione è impostata su YES e vsftpd è stato creato con la libreria openSSL, vsftpd gestirà le connessioni sicure su SSL. Questo vale sia per le connessioni di controllo che per le connessioni di trasmissione dati. Il client deve anche supportare le connessioni SSL. Utilizzare questo parametro con cautela perché vsftpd si basa interamente su openSSL per la sicurezza SSL e non può garantire che la libreria sia priva di errori.

ssl_request_cert SI
Se l'opzione è impostata su YES, vsftpd richiede (ma non è necessario) un certificato al client.

ssl_sslv2 NO
Si applica solo se l'opzione ssl_enable è abilitata.Se l'opzione è impostata su YES, le connessioni SSL v2 sono consentite. Le connessioni TLS V1 sono preferite.

ssl_sslv3 NO
Si applica solo se l'opzione ssl_enable è abilitata.Se l'opzione è impostata su YES, le connessioni SSL v3 sono consentite. Le connessioni TLS V1 sono preferite.

ssl_tlsv1 S
Si applica solo se ssl_enable è abilitato. Se l'opzione è impostata su YES, le connessioni TLS V1 sono consentite. Le connessioni TLS V1 sono preferite.

Aggiunte utente.

Crea un nuovo utente chiamato "ftpuser" e assegnagli la directory home "/ home / ftpuser":

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

Aggiungiamo una password per l'utente creato:

# passwd ftpuser

Crea una home directory per questo utente (se non è già stata aggiunta):

# mkdir -p / home / ftpuser

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

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

# groupadd ftpusers # usermod -G ftpusers ftpuser

Regole per IPtables.

Se stai usando IPTABLES, devi creare una regola corrispondente per VSftpd:

# vim / etc / sysconfig / iptables

Aggiungi la seguente riga, prima della riga REJECT, per aprire la porta 21:

A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

Salva e chiudi il file e riavvia anche il firewall:

# servizio iptables riavviato

Ricarica Vsftpd:

# servizio vsftpd riavvio

Aggiungi Vsftpd all'avvio per questo, esegui:

# chkconfig vsftpd on

# chkconfig --levels 235 vsftpd attivo

Puoi controllare i livelli di esecuzione in questo modo:

# chkconfig --list vsftpd

Dovresti ottenere qualcosa del genere:

Vsftpd 0: spento 1: spento 2: acceso 3: acceso 4: acceso 5: acceso 6: spento

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 configurato a tuo piacimento, puoi accedervi. Puoi accedere al server FTP tramite un browser digitando il nome del dominio nella barra degli indirizzi e accedere con l'ID corrispondente.
ftp: // sito /
In alternativa, puoi raggiungere il server FTP utilizzando la riga di comando digitando:

# Sito FTP

L'installazione di vsftpd su CentOS è ora completa. Il punto principale è chiaro, i dettagli (se all'improvviso non sono chiari) mi chiedono. Posso aiutare.

Ora diamo un'occhiata a un esempio di organizzazione di un server FTP basato su vsFTPd e CentOS 7... Il servizio FTP sarà estremamente utile per qualsiasi organizzazione e servizio, ad esempio. Il primo passo è installare i pacchetti vsftpd richiesti:

sudo yum -y install vsftpd

Successivamente, copia il file delle impostazioni in un luogo sicuro, ad es. directory separata. Come ho scritto negli articoli precedenti, questa è una buona pratica e la possibilità di ripristinare le impostazioni predefinite.

sudo mkdir / backup

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

Installiamo anche il client ftp sul server utilizzato: potrebbe essere utile in futuro e ora durante il controllo delle impostazioni. Anche l'installazione è semplice:

sudo yum -y install ftp

Configurazione del server vsFTPd

Dopo aver installato il server e il client, procediamo alla configurazione di vsftpd. Dovresti prestare attenzione subito: Accesso anonimo a FTP consentito per impostazione predefinita. Imposta Anonymous_enable = NO per proteggere il tuo server.

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

sudo nano /etc/vsftpd/vsftpd.conf

Apportiamo le seguenti modifiche:

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

Aggiungere un nuovo utente FTP

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

useradd -d '/var/www/path/to/your/dir' -s/sbin/nologin ftpuser

Impostiamo una password:

Se la directory home per ftpuser non è stata ancora creata, facciamolo ora:

mkdir -p / var / www / percorso / per / tuo / dir

chown -R ftpuser '/ var / www / path / to / your / dir'

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

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

groupadd ftpusers

usermod -G ftpusers ftpuser

Configurazione di iptables per vsFTPd

Affinché il server FTP funzioni correttamente, è necessario effettuare le impostazioni IPTABLES(aggiungere regole per FTP). Ulteriori informazioni su iptables: +.

Apri il file di configurazione di iptables e apporta 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. Riavvia il firewall con il comando:

sudo systemctl riavvia iptables

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

chkconfig —livelli 235 vsftpd su

Iniziamo vsFTPd Servizio FTP:

Pronto. Configurazione di un server FTP completato. Controlliamo il suo lavoro localmente.

|

Avvertimento: FTP non è sicuro! Si consiglia di utilizzare invece.

FTP (o File Transfer Protocol) è un metodo per scambiare file tra un server locale e un server remoto. Questo protocollo è abbastanza diffuso, ma può mettere seriamente a rischio il sistema a causa della mancanza di crittografia: FTP trasferisce i dati in formato testo.

Come notato, SFTP è un'ottima alternativa. Questo protocollo implementa lo scambio di file utilizzando il protocollo SSH.

Nota: se è necessario utilizzare FTP, la connessione può essere protetta tramite certificati SSL/TLS.

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

Installazione di vsftpd

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

sudo yum install vsftpd

Il server vsftpd è installato sul VPS. Inizia a configurarlo.

Configurazione di base di vsftpd

Il file di configurazione principale di vsftpd vsftpd.conf su CentOS è memorizzato nella directory /etc/vsftpd/. Aprilo in un 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 è incoraggiato l'accesso aperto per gli utenti anonimi (ad esempio, nel caso di un repository di file aperto), ma questo non è sicuramente adatto per un server FTP personale.

Anonymous_enable = NO

L'accesso anonimo è ora negato. Pertanto, è necessario fornire al sistema un metodo di autenticazione. Apri l'accesso utente locale (questo significa che vsftpd sarà in grado di utilizzare gli accessi e gli utenti del sistema Linux).

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

local_enable = S

Inoltre, è necessario concedere a questi utenti l'autorizzazione in scrittura in modo che possano scaricare e modificare i contenuti.

write_enable = S

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

chroot_local_user = S

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

Salva e chiudi il file.

Crea utente FTP

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

Crea un nuovo utente usando il comando:

sudo adduser ftpuser

Crea una password per il nuovo utente digitando:

sudo passwd ftpuser

CentOS 6.4 utilizza una versione precedente di vsftpd, quindi la configurazione è un po' più semplice rispetto ad alcune versioni più recenti.

Configurazione di vsftpd per il supporto SSL

La prima cosa da fare è creare un certificato SSL. In effetti, il tutorial utilizza TLS, 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 un certificato e inserire una chiave in un file:

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

Verrà proposto un elenco di domande. Compila i campi con le informazioni appropriate. Presta particolare attenzione alla riga del Nome Comune; inserisci l'indirizzo IP o il dominio del server in esso. In effetti, il resto dei campi può essere lasciato vuoto.

Iniezione SSL nella configurazione di vsftpd

Ora devi modificare le tue configurazioni vsftpd per impostare una connessione sicura.

Apri il file di configurazione vsftpd come utente root:

sudo nano /etc/vsftpd/vsftpd.conf

Vai in fondo al file e inserisci le tue informazioni SSL/TLS.

Qui è necessario specificare la posizione del certificato e delle chiavi. Poiché è tutto in un file, includi quel file in entrambe le opzioni:

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 l'uso forzato di SSL per tutte le connessioni degli utenti non anonimi quando si invia una password o si trasferiscono dati. Ciò migliorerà notevolmente la sicurezza.

ssl_enable = S
allow_anon_ssl = NO
force_local_data_ssl = S
force_local_logins_ssl = S

Quindi è necessario limitare il tipo di connessione a TLS più sicuro. Per fare ciò, abilitare esplicitamente TLS e disabilitare 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 attivare le nuove impostazioni:

sudo /etc/init.d/vsftpd restart

Per configurare vsftpd per l'avvio automatico all'avvio del server, utilizzare:

sudo chkconfig vsftpd on

Connessione a vsftpd con FileZilla

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

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

Apri FileZilla. Fare clic su Gestione sito.

Apparirà una nuova interfaccia, in essa fai clic sul pulsante Nuovo sito nell'angolo in basso a sinistra. Specificare un nome per la connessione al server in modo da poterla identificare facilmente in seguito.

Nel campo Host, inserire l'indirizzo IP, nel menu a tendina Protocollo, selezionare "FTP - Protocollo di trasferimento file". Dal menu a discesa Crittografia, seleziona Richiedi FTP esplicito su TLS.

Dal menu Tipo di accesso, selezionare Richiedi password. Nel campo Utente, inserisci l'utente FTP creato in precedenza.

Il passaggio successivo è la prima indicazione che TLS viene utilizzato per connettersi al server. L'avviso "Il certificato del server è sconosciuto. Si prega di esaminare attentamente il certificato per assicurarsi che il server possa essere attendibile": in questa fase è necessario confermare il certificato.

Le informazioni inserite durante la creazione del certificato dovrebbero apparire sullo schermo, consentendo di confermare la connessione.

Accetta il certificato per stabilire la connessione.

risultati

Questa guida fornisce un'opzione di configurazione più sicura. Tuttavia, può mostrare anche un paio di problemi di sicurezza. Pertanto, non è consigliabile utilizzare FTP su installazioni con accesso a Internet, in questi casi è meglio rivolgersi a SFTP.

tag:,

Il buon vecchio protocollo di trasferimento FTP ti consente di trasferire file su reti e molto probabilmente lo hai mai incontrato o ne hai sentito parlare. Per impostazione predefinita, utilizza la porta 21 (è successo storicamente) e tradizionalmente serve 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 grazie alla sua comodità per la condivisione di file.

In questo post, esamineremo l'installazione di un server ftp su un sistema operativo CentOS. A causa del fatto che è stato sviluppato molto tempo fa, l'ftp originale non è sicuro in termini di crittografia del traffico, ecc., Il che oggi mina la sua rilevanza per i moderni standard di sicurezza. Pertanto, la scelta ottimale per la maggior parte degli utenti che necessitano di un server ftp è il software vsftp(Demone FTP molto sicuro). Vale la pena notare la sua affidabilità, così come la semplicità di configurazione di un server FTP.

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

# yum install vsftpd

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

# chkconfig vsftpd on

Dopo l'installazione del server, la 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 una copia di backup del file di configurazione prima di apportare ulteriori modifiche. La lettura della documentazione ti consentirà di personalizzare il server "per te stesso" con il minimo spreco di tempo, nervi e non si sa mai. Descrive lo scopo di molti parametri, che non descriverò qui.
Successivamente, puoi avviare il server, ma c'è qualcos'altro che può impedire il funzionamento del server, questo è un firewall, poiché nella maggior parte dei casi con la configurazione del server, dovresti consentire la connessione al tuo server.

Regole di iptables
Apertura del file di configurazione iptables:

/etc/sysconfig/iptables

Aggiungi regole per il server ftp:

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

Non dimenticare che le regole hanno effetto, iptables deve essere riavviato.

# servizio iptables riavviato

Esecuzione di vsftpd

# avvio del servizio vsftpd

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

Un esempio di una semplice configurazione del server

Modifica il file di configurazione:

# vi /etc/vsftpd/vsftpd.conf

Impedire a un utente di disconnettersi dalla directory home

Chroot_local_user = S

Proibiamo l'accesso anonimo al server

Anonymous_enable = NO

Crea utenti FTP
Aggiungi utente

# useradd ftpuser

Imposta una password per l'utente creato

# passwd ftpuser

Osa, modifica il file / etc / passwd
Trova la stringa utente ftpuser:

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

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

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

Alcuni dei programmi più diffusi per la connessione a un server FTP sono FileZilla o Total Commander.
(centimetro. ). Anche sul nostro sito c'è un post su come può essere usato tra due server Linux.

La connessione è configurata allo stesso modo degli altri casi, nelle impostazioni di connessione specifichiamo l'indirizzo del server, nome utente ftpuser, password.
La directory radice può essere omessa, poiché per impostazione predefinita sarà / home / ftp.

Di recente, è stato attivato uno script sul puff. Lo script è stato acquistato, motivo per cui ho deciso di non occuparmene, ma di contattare direttamente l'assistenza del venditore per chiarire il problema. Il supporto ha risposto brevemente: è necessario l'accesso a FTP - vedremo. E qui ho appeso per mezzo minuto ...

Dopotutto, ftp non è installato sul mio Kent, perché lavoro in SSH. Inoltre, accedo non con una password, ma con un certificato. Non posso semplicemente prenderlo e dargli una chiave SSH, sotto la quale sarà quindi possibile accedere al server in modo permanente. E anche se abiliti temporaneamente l'immissione della password, perché un supporto per uno script specifico per un km specifico dovrebbe vedere il mio intero server e cosa si trova su di esso?

Bene, penso che solo per casi così speciali sia necessario aumentare il ftpishechku.

Fortunatamente, in realtà tutto si è rivelato piuttosto rapido e semplice, e ha persino fatto una scelta immediata: "vsftpd" (Very Secure FTP Daemon). Veloce. Secolare. Multipiattaforma. Facile da installare e configurare. In altre parole, uno dei migliori server FTP.

Installa e configura vsftpd

$ yum install vsftpd

Quindi modifichiamo il file di configurazione principale, in cui è necessario:

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

Configurazione degli utenti vsftpd

È importante capire un punto molto interessante qui: non è necessario aggiungere utenti FTP aggiuntivi, esistono già. E gli utenti sono stati aggiunti esattamente quando abbiamo installato AMP su CentOS. In altre parole - l'utente ha già pieno accesso alla sua home directory non resta che modificarlo per abilitare l'autorizzazione sotto vsftpd.

Ad esempio, abbiamo bisogno dell'accesso FTP alla directory /var/www/vhosts/ del sito sul server, che è quasi di proprietà dell'utente. Facciamo quanto segue:

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

Assegnare la directory home

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

Segue anche sostituire /bin/bash con /sbin/nologin, per negare l'accesso dell'utente al sistema.

Imposta una password per l'utente

$ passwd quasi finito

Esegui vsftpd

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

$ service vsftpd start

E se abbiamo intenzione di utilizzare il server FTP su base continuativa, non dimenticare di aggiungerlo all'avvio.

$ chkconfig vsftpd on

Conclusione sul server FTP

Se utilizzare FTP su base continuativa o meno spetta a tutti personalmente.

Da un lato, se hai intenzione di lavorare con una directory specifica (sito), allora un buon vantaggio qui sarà che non dovrai caricare costantemente i file o le directory appena scaricati. Tutte le operazioni verranno eseguite per conto dell'utente corrente e, di conseguenza, tutti i diritti per impostazione predefinita verranno assegnati a lui.

D'altra parte, il mio obiettivo personale di aumentare l'FTP è stato espresso all'inizio: quando è necessario concedere a qualcuno l'accesso temporaneo a una determinata directory isolata sul server/un determinato sito:

  1. Cambio la password dal login rilasciato.
  2. Inizio vsftpd.
  3. Fornisco login e password da FTP.
  4. Interrompo vsftpd.
  5. Cambio nuovamente la password dallo stesso nome utente (nel caso in cui venga emesso un altro nome utente la prossima volta).

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

Principali articoli correlati