Allowing WC3 through Windows Firewall
First things first, WC3 will need to be setup to be allowed through Windows Firewall. Normally when you connect to Battlenet for the first time, Windows will prompt you to allow the program through. Usually this is sufficient. However, Windows 7 users may run into issues.
Windows 7 Issues
When you click to allow WC3 through Windows Firewall, it will only do so on a "Home" or "Business" connection. If you have your network location set to "Public" Windows Firewall will not allow WC3 through. To fix this, open Control Panel. If you have Control Panel setup the default way, click on System and Security. Then open Windows Firewall. (If you have changed the appearance of Control Panel, just click on Windows Firewall)
On this Window, on the left side menu, look for Allow a Program or Feature through Windows Firewall and click on this. Find WC3 on the list and ensure both boxes are checked as shown below and click OK
Windows XP Issues
If for some reason WC3 is not being allowed through Windows Firewall in XP, open Control Panel and find Windows Firewall. Click the Exceptions tab. You should see a list of Programs, if WC3 is on the list simply make sure the box next to it is checked. If it is not listed, you will need to add it to the list by clicking the Add Program button and finding it in the list.
Opening the Port on Your Router
If your PC is connected directly to the internet, you are good to go. If you are using a router, wired or wireless, you are going to need to open the port on this device. To do this, you are going to need to know the admin login to your router. If you have no clue what it is, it's probably the default which is usually Admin/password on netgears, Admin/Admin on linksys (and then FOR GOD'S SAKE CHANGE THE PASSWORD!!!!).
If you don't know the password and can't figure out how to reset it, make a post in the Simple Questions, Simple Answers Thread with the make and model of your router and someone should be able to help you.
Assuming you know the login, open a web browser and type the following into the address bar: 192.168.1.1 and you should be prompted for the login and password. If not, that means you or someone else has probably setup some custom IP settings and you will need to figure out what these are.
After you have successfully logged in, you should see the configuration screen. Every router configuration page is going to be different. You need to find the Port Forwarding options. Sometimes there is a link on the main config page, other times you need to first go to an advanced settings menu. If you can't find it, post a screen shot and I or others will try to assist.
As far as setting up the port forward goes, again every router is going to be a little different. However, for almost all you are going to click the "Add Port Forward" or "Add New" button. If you are asked to enter a name for the service, enter "Battlenet" and you will also be asked for a port, which is 6112
Some routers may prompt you to select a certain device, in this case this would be the ONLY PC setup with that port forward and therefore the only device you would be able to host custom games from. Below is a pic or a typical router setup with the relevant items highlighted.
Still Having Issues?
Before requesting assistance, make sure WC3 is set to the correct port. In WC3, go to Options and then Gameplay. Veryfy that the port is listed as 6112 as shown below.
That's it!
You should now be able to host custom games on Battlenet for WC3!
I'm not entirely sure if these options apply if you are playing WC3 over Garena, but if you have questions about setting up port forwarding/firewall settings for Garena, feel free to use this thread and hopefully some knowledgeable individual will be able to answer them.
If you have any specific questions about your router settings or how to do something on your router, you would probably be better off directing those to the Simple Questions, Simple Answers Thread as you are likely to get a more prompt answer.
Hope this short guide helped, feel free to post any feedback/suggestions as well