What kind of Heterogeneous clients?
- A lot of people use SAMBA instead, as it is also works with any Windows PCs on the LAN. Setting up SAMBA share in Ubuntu is really easy.
- You'll have to use something like uShare if you want to use upnp with xbox 360.
- You can also run torrent client with remote access on NAS
Over here we use a computer that largely function as a NAS (although it also serves as a web host and database host as well). NFS (Network File System) is really all you need. You can put the remote storage into your file system and when it is mounted, you can write to it as if it were part of the hard disk in the local computer. It isn't secure enough to use across the Internet, but for LAN use, it is fine.
NFS is built into the kernel, or provided by a kernel module. You probably need some support files - exactly what depends on your distro. This is the standard HOWTO:
Are you planning on sharing your filesystem over the internet (not just a LAN)? I really would advise you against that unless you know exactly what you are doing. How about running a web server if you want to make some files public?