1. Takes a lot of programming knowledge
2. http://www.debian.org/doc/manuals/maint-guide/
3. BT5, Katana, Metasploit, etc. The list goes on and on.
4. Just go to a hosting company, pay the money, get the site, buy the domain name if you want, then set it up. It's hard to help something that doesn't exist.