How to create a newsletter sign up block in Drupal
If you are using Drupal 7 I would use Drupal Webform - together with the Webform CiviCRM integration module, since the Webform module let's you set the form to show within a block. 

These are pure drupal webform settings. This is done under Adv Settings, which is on the Form settings tab ie at node/xx/webform/configure "Available as block: 
If enabled this webform will be available as a block."

There are then controls as to whether you show the whole node in the block or just the form, which probably isn't an issue in your case.

Then set the civicrm settings on the webform to collect the various fields you want and add them to the Group that is used for the newsletter.