To properly support Microsoft's SMB protocol, an IP
Masq module would need to be written but there are three viable work-arounds.
For more details, please see
this Microsoft KnowledgeBase article.

The first way to work around this problem is to configure IPPORTFW from
Section 6.7 and portfw TCP ports 137, 138, and 139 to the
internal Windows machine's IP address. Though this solution works, it would
only work for ONE internal machine.

The second solution is to install and configure
Samba on the Linux MASQ server.
With Samba running, you can then map your internal Windows File and Print
shares onto the Samba server. Then, you can mount these newly mounted SMB
shares to all of your external clients. Configuring Samba is fully covered
in a HOWTO found in a Linux Documentation Project and in the TrinityOS document
as well.

The third solution is to configure a VPN (virtual private network) between the
two Windows machines or between the two networks. This can either be done via
the PPTP or IPSEC VPN solutions. There is a Section 7.35 patch for
Linux and also a full IPSEC implementation available for both 2.0.x and 2.2.x
kernels. This solution would probably be the most reliable and secure method
of all three solutions.

All of these solutions are NOT covered by this HOWTO. I recommend that you
look at the TrinityOS documentation for IPSEC help and John Hardin's PPTP
page for more information.

Also PLEASE understand that Microsoft's SMB protocol
is VERY insecure. Because of this, running either Microsoft File and Print
sharing or Windows Domain login traffic over the Internet without any encryption
is a VERY BAD idea.