I would and do use FTP for the purposes of what you are trying to do. You can do this with wu-ftpd or with proftpd. I would suggest proftpd as it uses an Apache like configuration file. You would set up semi-anonymous user accounts where the users can only access one specific directory or a specific subdirectory under each of the home directories depending on how you want to configure it. They will not be able to see anything above those directory levels that you give them access too. See
http://www.proftpd.org/ for more info.
As far as virus scanners. Most of the major virus vendors have Linux versions of their software specifically for this purpose. You could have it scan each file that is uploaded. Once you get proftpd working let me know if you need more help on the virus part and I will help you.
ssl stands for "Secure Socket Layer". It's just a method for encrypting many common tcp/ip services. For example it turns "http" (unencrypted) into https (encrypted) and imap (unencrypted) into imaps (encrypted).
Linux has outstanding firewall capabilities. Of course a firewall does you no good if the services that you advertise are exploitable. It is key to make sure you keep any software that is exposed to the internet up to date with any security patches, and to have those services securely configured. Apache, openssl, PHP, ftpd, or any other service you expose need to be monitored and kept up to date.
The number of connections is not limited by bandwidth directly. The number of connections would be determined by what type of connections they are and the power/memory capabilities of your server. A single connection could consume your entire bandwidth depending on what type of connection you are referring to. Yet 1000 connections may only consume a fraction of the bandwidth.
[ September 26, 2002: Message edited by: void main ]