If you do stain then apply finish, be sure to experiment with scrap piece for compatibility. For example, a solvent based dye might run when applying a solvent based finish like shellac or a charcoal and oil stain like PatB suggested works great with tung oil or true oil over the top but might cause problems with a water based poly sticking.
I like to use water based stains then base coat with shellac, and then topcoat with tung oil or linseed oil. Dean torges demonstrated that shellac is one of the most effective finishes guarding against moisture. And it is natural and easy to use. I like to mix dry shellac flakes in denatured alcohol, or everclear.
Good luck!