There are two ways to do this in Drupal.
CiviCRM Profiles
- Go to Administer » System Settings » Misc, and set Accept profile submissions from external sites to Yes.
- Create a profile in CiviCRM with the "Add to Group" option set to add someone to the group in question.
- Once the profile is created, select its more menu » HTML Form Snippet (see screenshot).
- Paste the HTML snippet into a Drupal block. Handle access to the block like any other Drupal block.
SPECIAL NOTE: This creates a bit of a security issue - when you enable the "Remote Profile Submissions", anyone who knows what your profiles are can add contacts to your system by recreating the form on a remote site. If you choose this path, consider editing your web server to block access to profile URLs by IP address.
Webform CiviCRM integration
Alternatively, you can use Webform-CiviCRM integration to build webforms to handle this. This is much more flexible, but can be trickier to get right, depending on your needs. I'd probably try this first.
Bonus: WordPress edition
- Create a profile in CiviCRM with the "Add to Group" option set to add someone to the group in question.
- Use a shortcode to drop the profile into a page. Use the Shortcode Widget if you want to drop it into a sidebar.