Red Hat Enterprise Linux contiene due diversi server FTP:
Red Hat Content Accelerator — Un Web server basato sul Kernel che consente di avere un web server e servizi FTP con alevate prestazioni. Poichè la velocità rappresenta la sua prima caratteristica, esso presenta una funzionalità limitata e viene eseguito solo come server FTP anonimo. Per maggiori informazioni su come configurare e gestire Red Hat Content Accelerator, consultare la documentazione disponibile online su http://www.redhat.com/docs/manuals/tux/.
vsftpd — un demone FTP sicuro e veloce, il quale rappresenta il server FTP preferito per Red Hat Enterprise Linux. Il remainder di questo capitolo si concentra su vsftpd.
vsftpd o Very Secure FTP Daemon è stato creato per essere veloce, stabile e in modo particolare sicuro. La sua abilità di gestire in modo efficiente e sicuro, un gran numero di collegamenti, rappresenta il motivo per il quale vsftpd è il solo FTP distribuito con Red Hat Enterprise Linux.
Il modello di sicurezza usato da vsftpd presenta tre aspetti primari:
Una separazione sostanziale di processi privilegiati e non — I suddetti processi gestiscono compiti diversi, e ognuno di questi processi viene eseguito con privilegi minimi necessari per affrontare un compito.
I compiti che richiedono privilegi elevati, vengono gestiti da processi che richiedono privilegi minimi — I compiti di compatibilità per il leveraging (presenti nella libreria libcap) che generalmente richiedono i privilegi root, possono essere eseguiti in modo più sicuro da un processo che necessita meno privilegi.
Molti processi vengono eseguiti in una cella chroot — Quando possibile, i processi sono del tipo 'change-rooted' per la directory da condividere; questa directory viene considerata successivamente una cella chroot.
L'uso di queste pratiche di sicurezza provoca i seguenti effetti su come vsftpd affronta queste richieste:
Il processo genitore viene eseguito con il minimo dei privilegi necessari. — Il processo genitore calcola dinamicamente il livello dei privilegi necessari per minimizzare il livello di rischio. I processi figli gestiscono l'interazione diretta con i client FTP e vengono eseguiti con il numero più basso possibile di privilegi.
Tutte le operazioni che richiedono privilegi elevati, vengono gestite da un processo genitore più piccolo. — Similmente a Server HTTP Apache, vsftpd lancia i processi figli non privilegiati, in modo da gestire i collegamenti in entrata. Ciò permette al processo genitore privilegiato, di essere il più piccolo possibile e di gestire un numero più piccolo di compiti.
Tutte le richieste provenienti dai processi figlio non privilegiati, vengono distribuiti dal processo genitore. — Le comunicazioni con i processi figlio vengono ricevute attraverso un socket, e la validità di una informazione provenienti da processi filgio, viene controllata prima di essere abilitata.
Molte interazioni con i client FTP vengono gestite in una cella chroot da processi figlio non privilegiati. — Poichè questi processi figlio non sono privilegiati e hanno accesso solo alla directory che è stata condivisa, qualsiasi processo interrotto permette all'aggressore un accesso ai file condivisi.