To change the port Apache listens on you have to edit the
http.conf
file and change the line that says
#
# Port: The port to which the standalone server listens.
#
Port 80
to
#
# Port: The port to which the standalone server listens.
#
Port 3000
then you have to restart apache using the command
apachectl restart
The windows machines will be different because they are running IIS. I don't know how to do this because I dont use IIS , however it will be fairly simple to do. Open up IIS and browse through the options until you find something that specifies the port. Currently both the windows machines will be listening on port 80 so you will have to change these to 3000 and 3001, or whatever numbers you want (don't use reserved ports though like 21 etc). Save and restart IIS, you should now need to type
http://YourIPaddress:3000 to access the first windows machine,
http://YourIPaddress:3001 to access the second windows machine and just
http://YourIPaddress to access the apache machine because it is listening on port 80 (you can change this though as explained above).
The routing can be done via your ADSL router or whatever you are using. Anything coming on port 3000 you want to redirect to the IP address of your windows machine 1. Anything coming on port 3001 you want to redirect to the IP address of your windows machine 2. Anything coming on port 80 you want to redirect to the IP address of your linux machine running apache. You will need to use the port redirection feature of your router to do this. You can usually log on to your router using a web browser.
If your connection comes straight into one of your machines you will need to use IP tables to route traffic. There should be some nice GUIs to route traffic out there somewhere as well.