I have created a page that I would like to be visible only for logged in users and admin.
It sounds like you're looking for a node access module. There are many of these modules available which approach this problem in different ways. But in the end, they all allow you to specify more fine grained access rights to nodes (and other types of content). There's a good overview of the various node access modules on drupal.org. This page explains what you should consider when choosing a node access module and describes quite a few of the popular ones. If none of these quite meet your needs and you're up for creating your own custom module check out the documentation for Node Access Rights (here's the Drupal 6 version just in case).
In response to the comment from OP, in general you can't set access (view) permissions per content type (though you can set create/edit/delete permissions per content type). So either people can't see any content until they sign in, or they can see all content all the time. So if you have a specific content type that should only ever be visible by logged in users you'll likely need a node access module.
I have seen pages which allows to interact with them only when one is logged in to the website and displays the login page for non logged in users. Just wondering how to set that up?– pal4lifeSep 6, 2011 at 19:38
Protected Node is close to what you are looking, but overall you should look into what SoftArtisans is suggesting re: Node Access– zerolabSep 6, 2011 at 19:51
@SoftArtisans Thank you for your answer. Can you provide more details on how to do this with the node access module? In this case, it is a content type and I do not want non -logged in users to access it.– pal4lifeSep 7, 2011 at 14:38
you should look at Content Access, it should cover what you need and looks pretty simple. There's also a screencast to help you get it going Sep 7, 2011 at 14:54