Make website visible only to registered users - create invitation system to allow registration
See, the Request Invitation module will likely do your job
For this one, first create a new user role @ admin/people/permissions/roles (something like "Premium Users" or "Special Group" or "Only Friends" or something that makes sense). Then use the Content Access module to only allow people from the above mentioned user role to see particular contents.


Then copy the contents of page.tpl.php into a new file named page--front.tpl.php and start editing. This will theme for the front page only, where you can now add a form for the requests and so on.