Penguin
Diff: HowToBridgeFirewall
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToBridgeFirewall.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 2 Last edited on Thursday, October 21, 2004 5:16:29 pm by AristotlePagaltzis
Older page: version 1 Last edited on Friday, June 7, 2002 1:06:18 am by perry Revert
@@ -1,1236 +1 @@
-  
-  
-  
-Linux Bridge+Firewall Mini-HOWTO version 1.2.  
-  
-  
-  
-----  
-  
-!!!Linux Bridge+Firewall Mini-HOWTO version 1.2.  
-  
-!!Peter Breuer (  
-ptb@it.uc3m.es)v, 19 December 1997  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. What and Why (and How?)  
-  
-  
-*2.1 What  
-  
-*2.2 Why  
-  
-*2.3 How?  
-  
-  
-  
-  
-  
-!!3. BRIDGING  
-  
-  
-*3.1 Software  
-  
-*3.2 Prior Reading.  
-  
-*3.3 Boot configuration  
-  
-*3.4 Kernel configuration  
-  
-*3.5 Network addresses  
-  
-*3.6 Network routing  
-  
-*3.7 Card configuration  
-  
-*3.8 Additional routing  
-  
-*3.9 Bridge Configuration  
-  
-*3.10 Try it out  
-  
-*3.11 Checks  
-  
-  
-  
-  
-  
-!!4. FIREWALLING  
-  
-  
-*4.1 Software and reading  
-  
-*4.2 Preliminary checks  
-  
-*4.3 Default rule  
-  
-*4.4 Holes per address  
-  
-*4.5 Holes per protocol  
-  
-*4.6 Checks  
-  
-----  
-  
-!! 1. Introduction  
-  
-  
-You should look at the original  
-Bridging mini-HOWTO by Chris Cole for a different perspective on this.  
-He is  
-chris@polymer.uakron.edu. The version of his HOWTO  
-that I have based this document on (alternatively, ripped off) is 1.03  
-dated Aug 23 1996.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!! 2. What and Why (and How?)  
-  
-  
-  
-  
-  
-  
-  
-!! 2.1 What  
-  
-  
-  
-A bridge is an intelligent connecting wire betwen two network cards.  
-A firewall is an intelligent insulator.  
-  
-  
-  
-  
-!! 2.2 Why  
-  
-  
-  
-You might want a bridge if you have several computers:  
-  
-  
-  
-  
-  
-#  
- to save the price of a new hub when you just happen  
-to have an extra ethernet card available.  
-  
-#  
-  
-#  
- to save the bother of learning how to do  
-IP-forwarding and other tricks when you _have_ two cards in your  
-computer.  
-  
-#  
-  
-#  
- to avoid maintenance work in the future when  
-things change around!  
-  
-#  
-  
-  
-  
-  
-  
-  
-``Several computers'' might be as few as three if those are  
-routing or bridging or just moving around the room from time to time! You  
-also might want a bridge just for the fun of finding out what it does.  
-2 was what I wanted a bridge for.  
-  
-  
-  
-  
-  
-If you are really interested in  
-1, you have to be one of the  
-very few. Check the  
-NET-2-HOWTO and the  
-Serial-HOWTO for better tricks.  
-  
-  
-  
-  
-  
-You want a firewall if  
-  
-  
-  
-  
-  
-# you are trying to protect your network from  
-external accesses, or  
-  
-  
-#  
-  
-# you are trying to deny access to the world  
-outside from your network.  
-  
-  
-#  
-  
-  
-  
-  
-  
-  
-Curiously, I needed  
-2 here too. Policy at my university  
-presently is that we should not act as internet service providers to  
-undergraduates.  
-  
-  
-  
-  
-!! 2.3 How?  
-  
-  
-  
-I started out bridging the network cards in a firewalling machine  
-and ended up firewalling without having cut the bridge. It seems to work  
-and is more flexible than either configuration alone. I can take down the  
-firewall and keep bridging or take down the bridge when I want to be more  
-circumspect.  
-  
-  
-  
-  
-  
-I would guess that the bridge code lives just above the physical device  
-layer and the firewalling code lives one layer higher up, so that the bridging  
-and firewalling configurations effectively act as though they are running  
-connected together ``in sequence'' and not ``in parallel''  
-(ouch!). Diagram:  
-  
-  
-  
-  
-  
--> Bridge-in -> Firewall-in -> Kernel -> Firewall-out -> Bridge-out ->  
-  
-  
-  
-  
-  
-  
-  
-There is no other way to explain how one machine can be a  
-``conductor'' and an ``insulator'' at the same time. There are a few  
-caveats but I'll come to those later. Basically you must route packets  
-that you want to firewall. Anyway, it all seems to work together nicely  
-for me. Here is what you do ...  
-  
-  
-  
-----  
-  
-!! 3. BRIDGING  
-  
-!! 3.1 Software  
-  
-  
-  
-Get the  
-bridge configuration utility from Alan Cox's home pages. This  
-is the same reference as in Chris' document. I just didn't realize that  
-it was an ftp and not an http URL ...  
-  
-  
-  
-  
-  
-  
-  
-!! 3.2 Prior Reading.  
-  
-  
-  
-Read the  
-Multiple Ethernet HOWTO for some advice on getting more than  
-one network card recognized and configured.  
-  
-  
-  
-  
-  
-Yet more details of the kind of boot magic that you may need are in  
-the  
-Boot Prompt HOWTO.  
-  
-  
-  
-  
-  
-You may be able to get away without the  
-NET-2 HOWTO. It is a good long  
-read and you will have to pick from it the details you need.  
-  
-  
-  
-  
-!! 3.3 Boot configuration  
-  
-  
-  
-The reading material above will tell you that you need to prepare the  
-kernel to recognize a second ethernet device at boot up by adding this  
-to your __/etc/lilo.conf__, and then re-run __lilo__:  
-  
-  
-  
-  
-  
-append = "ether=,,eth1"  
-  
-  
-  
-  
-  
-  
-  
-Note the "eth1". "eth0" is the first card. "eth1"  
-is the second card. You can always add the boot parameters in your response  
-to the line that lilo offers you. This is for three cards:  
-  
-  
-  
-  
-  
-linux ether=,,eth1 ether=,,eth2  
-  
-  
-  
-  
-  
-  
-  
-I use __loadlin__ to boot my kernel from DOS:  
-  
-  
-  
-  
-  
-loadlin.exe c:\vmlinuz root=/dev/hda3 ro ether=,,eth1 ether=,,eth2  
-  
-  
-  
-  
-  
-  
-  
-Note that this trick makes the kernel probe at bootup. That will not  
-happen if you load the ethernet drivers as __modules__ (for safety since  
-the probe order can't be determined) so if you use modules you will have  
-to add the appropriate IRQ and port parameters for the driver in your __/etc/conf.modules__.  
-I have at least  
-  
-  
-  
-  
-  
-alias eth0 3c509  
-alias eth1 de620  
-options 3c509 irq=5 io=0x210  
-options de620 irq=7 bnc=1  
-  
-  
-  
-  
-  
-  
-  
-You can tell if you use modules by using ``ps -aux'' to see  
-if __kerneld __is running and checking that there are .o files in a  
-subdirectory of your __/lib/modules__ directory. You want the directory  
-named with what uname -r tells you. If you have kerneld and/or you have  
-a foo.o then edit __/etc/conf.modules__ and read the man page for depmod  
-carefully.  
-  
-  
-  
-  
-  
-Note also that until recently (kernel 2..25) the __3c509__ driver  
-could not be used for more than one card if used as a module. I have seen  
-a patch floating around that fixes the oversight. It may be in the kernel  
-when you read this.  
-  
-  
-  
-  
-!! 3.4 Kernel configuration  
-  
-  
-  
-Recompile the kernel with bridging enabled.  
-  
-  
-  
-  
-  
-CONFIG_BRIDGE=y  
-  
-  
-  
-  
-  
-  
-  
-I also compiled with firewalling and IP-forwarding and -masquerading  
-and the rest enabled. Only if you want firewalling too ...  
-  
-  
-  
-  
-  
-CONFIG_FIREWALL=y  
-CONFIG_NET_ALIAS=y  
-CONFIG_INET=y  
-CONFIG_IP_FORWARD=y  
-CONFIG_IP_MULTICAST=y  
-CONFIG_IP_FIREWALL=y  
-CONFIG_IP_FIREWALL_VERBOSE=y  
-CONFIG_IP_MASQUERADE=y  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-You don't need all of this. What you do need apart from this is the  
-standard net configuration:  
-  
-  
-  
-  
-  
-CONFIG_NET=y  
-  
-  
-  
-  
-  
-  
-  
-and I do not think you need worry about any of the other networking  
-options. I have any options that I did not actually compile into the kernel  
-available through kernel modules that I can add in later.  
-  
-  
-  
-  
-  
-Install the new kernel in place, rerun lilo and reboot with the new  
-kernel. Nothing should have changed at this point!  
-  
-  
-  
-  
-  
-  
-  
-!! 3.5 Network addresses  
-  
-  
-  
-Chris says that a bridge should not have an IP address but that is not  
-the setup to be described here.  
-  
-  
-  
-  
-  
-You are going to want to use the machine for connecting to the net so  
-you need an address and you need to make sure that you have the loopback  
-device configured in the normal way so that your software can talk to the  
-places they expect to be able to talk to. If loopback is down the name  
-resolver or other net sevices might fail. See the NET-2-HOWTO, but your  
-standard configuration should already have done this bit:  
-  
-  
-  
-  
-  
-ifconfig lo 127...1 route add -net 127...  
-  
-  
-  
-  
-  
-  
-  
-You will have to give addresses to your network cards. I altered  
-the /etc/rc.d/rc.inet1 file in my slackware (3.x) to setup two cards  
-and you should also essentially just look for your net configuration file  
-and double or treble the number of instructions in it. Suppose that you  
-already have an address at  
-  
-  
-  
-  
-  
-192.168.2.100  
-  
-  
-  
-  
-  
-  
-  
-(that is in the private net reserved address space, but never mind - it  
-won't hurt anybody if you use this address by mistake) then you probably  
-already have a line like  
-  
-  
-  
-  
-  
-ifconfig eth0 192.168.2.100 netmask 255.255.255.0 metric 1  
-  
-  
-  
-  
-  
-  
-  
-in your configuration. The first thing you are going to probably want  
-to do is cut the address space reached by this card in half so that you  
-can eventually bridge or firewall the two halves. So add a line which  
-reduces the mask to address a smaller number of machines:  
-  
-  
-  
-  
-  
-ifconfig eth0 netmask 255.255.255.128  
-  
-  
-  
-  
-  
-  
-  
-Try it too. That restricts the card to at most the address space between  
-.0 and .127.  
-  
-  
-  
-  
-  
-Now you can set your second card up in the other half of the local address  
-space. Make sure that nobody already has the address. For symmetry I set  
-it at 228=128+100 here. Any address will do so long as it is not in the  
-other card's mask, and even then, well, maybe. Avoid special addresses  
-like ., .1, .128 etc. unless you really know what you are doing.  
-  
-  
-  
-  
-  
-ifconfig eth1 192.168.2.228 netmask 255.255.255.128 metric 1  
-  
-  
-  
-  
-  
-  
-  
-That restricts the second card to addresses between .128 and .255.  
-  
-  
-  
-  
-!! 3.6 Network routing  
-  
-  
-  
-This is where I have to announce the caveats in the bridging +  
-firewalling scheme: you cannot firewall packets which are not routed.  
-No routes, no firewall. At least this appears to be true in the 2..30  
-and more recent kernels. The firewalling filters are closely involved  
-with the ip-forwarding code.  
-  
-  
-  
-  
-  
-That does not mean that you cannot bridge. You can bridge between two  
-cards and firewall them from a third. You can have only two cards  
-and firewall both of them against an outside IP such as a nearby router,  
-provided that the router is routed by you to exactly one of the  
-cards.  
-  
-  
-  
-  
-  
-In other words, since I will be doing firewalling, so I want to precisely  
-control the physical destination of some packets.  
-  
-  
-  
-  
-  
-I have the small net of machines attached to a hub hanging off eth0,  
-so I configure a net there:  
-  
-  
-  
-  
-  
-route add -net 192.168.2.128 netmask 255.255.255.128 dev eth0  
-  
-  
-  
-  
-  
-  
-  
-The 128 would be 0 if I had a full class C network there. I don't,  
-by definition, since I just halved the address space. The "dev  
-eth0" is not necessary here because the cards address falls within  
-the mask, but it may be necessary for you. One might need more than one  
-card holding up this subnet (127 machines on one segment, oh yeah) but  
-those cards would be being bridged under the same netmask so that they  
-appear as one to the routing code.  
-  
-  
-  
-  
-  
-On the other card I have a line going straight through to a big router  
-that I trust.  
-  
-  
-  
-  
-client 129  
-__ | __  
-client 1 \ .0 .128 | / net 1  
-client 2 --- Hub - eth0 - Kernel - eth1 - Hub - Router --- net 2  
-client 3 __/ .100 .228 .2 | \__ net 3  
-|  
-client 254  
-  
-  
-  
-  
-  
-  
-I attach the address of the router to that card as a fixed  
-("static") route because it would otherwise fall within the  
-first cards netmask and the kernel would be thinking wrongly about how  
-to send packets to the big router. I will want to firewall these packets  
-and that is another reason fow wanting to route them specifically.  
-  
-  
-  
-  
-  
-route add 192.168.2.2 dev eth1  
-  
-  
-  
-  
-  
-  
-  
-I don't need it, since I don't have any more machines in that half of  
-the address space, but I declare a net also on the second card.  
-Separating my interfaces into two sets via routing will allow me to do  
-very tight firewalling eventually , but you can get away with far less  
-routing than this.  
-  
-  
-  
-  
-  
-route add -net 192.168.2.128 netmask 255.255.255.128 dev eth1  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-I also need to send all non-local packets out to the world so I tell  
-the kernel to send them to the big router  
-  
-  
-  
-  
-  
-route add default gw 192.168.2.2  
-  
-  
-  
-  
-  
-  
-!! 3.7 Card configuration  
-  
-  
-  
-So much was standard networking setup, but we are bridging so we also  
-have to listen on both (?) cards for packets that are not aimed at us.  
-The following should go into the network configuration file.  
-  
-  
-  
-  
-  
-ifconfig promisc eth0 ifconfig promisc eth1  
-  
-  
-  
-  
-  
-  
-  
-The man page says allmulti=promisc, but it didn't work for me.  
-  
-  
-  
-  
-!! 3.8 Additional routing  
-  
-  
-  
-One thing that I noticed was that I had to put at least the second card  
-into a mode where it would respond to the big router's questions about  
-which machines I was hiding in my local net.  
-  
-  
-  
-  
-  
-ifconfig arp eth1  
-  
-  
-  
-  
-  
-  
-  
-For good measure I did this to the other card too.  
-  
-  
-  
-  
-  
-ifconfig arp eth0.  
-  
-  
-  
-  
-  
-  
-!! 3.9 Bridge Configuration  
-  
-  
-  
-Put bridging enabling on and into your configuration file:  
-  
-  
-  
-  
-  
-brcfg -enable  
-  
-  
-  
-  
-  
-  
-  
-You should have been trying this out in real time all along, of course!  
-The bridge configure will bring up some numbers. You can experiment with  
-turning on and off the ports one at a time  
-  
-  
-  
-  
-  
-brcfg -port 0 -disable/-enable  
-brcfg -port 1 -disable/-enable  
-  
-  
-  
-  
-  
-  
-  
-You get status reports anytime by just running  
-  
-  
-  
-  
-  
-brcfg  
-  
-  
-  
-  
-  
-  
-  
-without any parameters. You will see that the bridge listens,learns,  
-and then does forwarding. (I don't understand why the code repeats the  
-same hardware addresses for both my cards, but never mind .. Chris' howto  
-say that is OK)  
-  
-  
-  
-  
-!! 3.10 Try it out  
-  
-  
-  
-If you are still up and running as things are, try out your configuration  
-script for real by taking down both cards and then executing it:  
-  
-  
-  
-  
-  
-ifconfig eth0 down ifconfig eth1 down /etc/rc.d/rc.inet1  
-  
-  
-  
-  
-  
-  
-  
-With any luck the various subsystems (__nfs__, __ypbind__, etc.)  
-won't notice. ''Do not try this unless you are sitting at the keyboard!''  
-  
-  
-  
-  
-  
-If you want to be more careful than this, you should take down as many  
-daemons as possible beforehand, and unmount nfs directories. The worst  
-that can happen is that you have to reboot in single-user mode (the "__single__"  
-parameter to __lilo __or __loadlin__), and take out your changes  
-before rebooting with things the way they were before you started.  
-  
-  
-  
-  
-!!3.11 Checks  
-  
-  
-  
-Verify that there is different traffic on each interface:  
-  
-  
-  
-  
-  
-tcpdump -i eth0  
-  
-(in one window)  
-  
-tcpdump -i eth1  
-  
-(in another window)  
-  
-  
-  
-  
-  
-  
-You should get used to using __tcpdump__ to look for things that  
-should not be happening or that are happening and should not.  
-  
-  
-  
-  
-  
-For instance look for packets that have gone through the bridge to the  
-second card from the internal net. Here I am looking for packets from the  
-machine with address .22:  
-  
-  
-  
-  
-  
-tcpdump -i eth1 -e host 192.168.2.22  
-  
-  
-  
-  
-  
-  
-  
-Then send a ping from the .22 host to the router. You should see the  
-packet reported by tcpdump.  
-  
-  
-  
-  
-  
-At this stage you should have a bridge ready that also has two  
-network addreses. Test that you can ping them from outside and inside  
-your local net, and that you can telnet and ftp around between inside  
-and outside too.  
-  
-  
-  
-----  
-  
-!! 4. FIREWALLING  
-  
-!! 4.1 Software and reading  
-  
-  
-  
-You should read the  
-Firewall-HOWTO.  
-  
-  
-  
-  
-  
-That will tell you where to get __ipfwadm__ if you don't already  
-have it. There are other tools you can get but I made no progress until  
-I tried __ipfwadm__. It is nice and low level! You can see exactly what  
-it is doing.  
-  
-  
-  
-  
-!! 4.2 Preliminary checks  
-  
-  
-  
-You have compiled IP-forwarding and masquerading into the kernel so  
-you will want to check that the firewall is in its default (accepting)  
-state with  
-  
-  
-  
-  
-  
-ipfwadm -I -l ipfwadm -O -l ipfwadm -F -l  
-  
-  
-  
-  
-  
-  
-  
-That is respectively, "display the rules affecting the .."  
-incoming or outgoing or forwarding (masquerading) ".. sides of the  
-firewall". The "-l" means "list".  
-  
-  
-  
-  
-  
-You might have compiled in accounting too:  
-  
-  
-  
-  
-  
-ipfwadm -A -l  
-  
-  
-  
-  
-  
-  
-  
-You should see that there are no rules defined and that the default  
-is to accept every packet. You can get back to this working state anytime  
-with  
-  
-  
-  
-  
-  
-ipfwadm -I -f  
-ipfwadm -O -f  
-ipfwadm -F -f  
-  
-  
-  
-  
-  
-  
-  
-The "-f" means "flush". You may need to use that.  
-  
-  
-  
-  
-  
-  
-  
-!! 4.3 Default rule  
-  
-  
-  
-I want to cut the world off from my internal net and do nothing else,  
-so I will want to give as a last (default) rule that the firewall should  
-ignore any packets coming in from the internal net and directed to outside.  
-I put all the rules (in this order) into __/etc/rc.d/rc.firewall __and  
-execute it from __/etc/rc.d/rc.local__ at bootup.  
-  
-  
-  
-  
-  
-ipfwadm -I -a reject -S 192.168.2./255.255.255.128 -D .../...  
-  
-  
-  
-  
-  
-  
-  
-The "-S" is the source address/mask. The "-D" is  
-the destination address/mask.  
-  
-  
-  
-  
-  
-This format to is rather long-winded. __Ipfwadm__  
-is intelligent about network names and some common abbreviations. Check  
-the man pages.  
-  
-  
-  
-  
-  
-It is possibly more convenient to put some or all of these rules on  
-the outgoing half of the firewall by using "-O" instead of "-I",  
-but I'll state the rules here all formulated for the incoming half.  
-  
-  
-  
-  
-!! 4.4 Holes per address  
-  
-  
-  
-Before that default rule, I have to place some rules that serve as exceptions  
-to this general denial of external services to internal clients.  
-  
-  
-  
-  
-  
-I want to treat the firewall machines address on the internal net specially.  
-I will stop people logging in to the firewall machine unless they have  
-special permission, but once they are there they should be allowed to talk  
-to the world.  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -S 192.168.2.100/255.255.255.255 \  
--D .../...  
-  
-  
-  
-  
-  
-  
-  
-I also want the internal clients to be able to talk to the firewalling  
-machine. Maybe they can persuade it to let them get out!  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -S 192.168.2./255.255.255.128 \  
--D 192.168.2.100/255.255.255.255  
-  
-  
-  
-  
-  
-  
-  
-Check at this point that you can get in to the clients from outside  
-the firewall via __telnet__, but that you cannot get out. That should  
-mean that you can just about make first contact, but the clients cannot  
-send you any prompts. You should be able to get all the way in if you use  
-the firewall machine as a staging post. Try __rlogin__ and __ping __too,  
-with __tcpdump__ running on one card or the other. You should be able  
-to make sense of what you see.  
-  
-  
-  
-  
-!! 4.5 Holes per protocol  
-  
-  
-  
-I went on to relax the rules protocol by protocol. I want to allow pings  
-from the outside to the inside to get an echo back, for instance, so I  
-inserted the rule:  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -P icmp -S 192.168.2./255.255.255.128 \  
--D .../...  
-  
-  
-  
-  
-  
-  
-  
-The "-P icmp" works the protocol-specific magic.  
-  
-  
-  
-  
-  
-  
-  
-  
-Until I get hold of an __ftp__ proxy I am also allowing ftp calls  
-out with port-specific relaxations. This targets ports 20 21 and 115 on  
-outside machines.  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -P tcp -S 192.168.2./255.255.255.128 \  
--D .../...0 20 21 115  
-  
-  
-  
-  
-  
-  
-  
-I could not make __sendmail__ between the local clients work without  
-a nameserver. Rather than set up a nameserver right then on the firewall,  
-I just lifted the firewall for tcp domain service queries precisely aimed  
-at the nearest existing nameserver and put its address in the clients __/etc/resolv.conf__  
-("nameserver 123.456.789.31" on a separate line).  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -P tcp -S 192.168.2./255.255.255.128 \  
--D 123.456.789.31/255.255.255.255 54  
-  
-  
-  
-  
-  
-  
-  
-You can find which port number and protocol a service requires with  
-__tcpdump__. Trigger the service with a an __ftp__ or a __telnet__  
-or whatever to or from the internal machine and then watch for it on the  
-input and output ports of the firewall with __tcpdump__:  
-  
-  
-  
-  
-  
-tcpdump -i eth1 -e host client04  
-  
-  
-  
-  
-  
-  
-  
-for example. The __/etc/services __file is another important source  
-of clues. To let __telnet__ and __ftp__ IN to the firewall from outside,  
-you have to allow the local clients to call OUT on a specific port. I understand  
-why this is necessary for __ftp__ - it's the server that establishes  
-the data stream in the end - but I am not sure why __telnet__ also needs  
-this.  
-  
-  
-  
-  
-  
-ipfwadm -I -i accept -P tcp -S 192.168.2./255.255.255.128 ftp telnet \  
--D .../...  
-  
-  
-  
-  
-  
-  
-  
-There is a particular problem with some daemons that look up the hostname  
-of the firewalling machine in order to decide what is their networking  
-address. __Rpc.yppasswdd__ is the one I had trouble with. It insists  
-on broadcasting information that says it is outside the firewall (on the  
-second card). That means the clients inside can't contact it.  
-  
-  
-  
-  
-  
-Rather than start IP aliasing or change the daemon code, I mapped the  
-name to the inside card address on the clients in their __/etc/hosts__.  
-  
-  
-  
-  
-  
-  
-  
-!!4.6 Checks  
-  
-  
-  
-You want to test that you can still __telnet__, __rlogin __and  
-__ping__ from the outside. From the inside you should be able to __ping__  
-out. You should also be able to __telnet__ to the firewall machine from  
-the inside and the latter should be able to do anything.  
-  
-  
-  
-  
-  
-That is it. At this point you probably want to learn about __rpc__/__Y__ellow  
-__P__ages and the interaction with the password file. The firewalled  
-network wants to run without its unprivileged users being able to log on  
-to the firewall - and thus get out . Some other HOWTO!  
-  
-  
-  
-----  
+Describe [HowToBridgeFirewall] here.