Im Linuxbereich gibt es viele Möglichkeiten. Meine Favoriten sind proftpd und glftpd.
Proftpd zeichnet sich durch eine einfache, aber dennoch ausreichende, Konfiguration aus(die kannst in der .conf Datei auch die Ports für den passive mode bestimmen etc., max. Upload/Downloadgeschwindigkeit, anonftp, etc. etc.).
Glftpd ist da um weiten schwieriger einzurichten jedoch sind die Konfigurationsmöglichkeiten gewaltig, du kannst auch eigene Scripte für diesen ftpd schreiben (bash, c++, ...) und diese dann bei bestimmten Ereignissen ausführen lassen (login, Datei komplett[->sfv check], ...). Auch gibt es viele Statistiken, die du einfach per Client aufrufen kannst (z.B. site alup für die hochgeladenen MB aller User, oder site traffic für den Gesamttraffic seit glftpd eingerichtet wurde etc.). Die Möglichkeiten aufzuzählen würde den Rahmen dieses Threads um weiten sprengen.
Kurzum: proftpd für "faule"(Hey, proftpd läuft auf meinem iBook sehr gut

- es ist portabel), glftpd für Profis. Wobei noch zu sagen wäre, dass glftpd zwar Freeware ist, aber nicht open-source. Das bedeutet, du bekommst nur binaries.