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 elevate 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.
Il Very Secure FTP Daemon (vsftpd) è 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 'stand-alone' 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 — Facendo leva sullecompatibilità presenti nella libreria libcap, i compiti che generalmente richiedono i privilegi completi di root, possono essere eseguiti in modo più sicuro da un processo con meno privilegi.
La maggior parte dei processi vengono eseguiti in una cella chroot — Quando possibile, variare la directory root dei processi, sulla directory condivisa; la suddetta directory viene così considerata una cella chroot. Per esempio, se la directory /var/ftp/ risulta essere la directory condivisa primaria, vsftpd assegna nuovamente /var/ftp/ alla nuova directory root, conosciuta come /. Questa operazione non permette alcuna azione da parte di hacker nei confronti di ogni directory non contenuta sotto la nuova directory root.
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 piccolo. — Similmente al 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ù basso 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 dai processi figlio, 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.