home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / mini / IP-Masquerade < prev    next >
Text File  |  1999-02-08  |  82KB  |  2,641 lines

  1.   Linux IP Masquerade mini HOWTO
  2.   Ambrose Au, ambrose@writeme.com; David Ranch, dranch@trin¡
  3.   net.net
  4.   v1.50, 7 February 1999
  5.  
  6.   This document describes how to enable IP masquerade feature on a Linux
  7.   host, allowing connected computers that do not have registered Inter¡
  8.   net IP addresses to connect to the Internet through your Linux box.
  9.   ______________________________________________________________________
  10.  
  11.   Table of Contents
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Introduction
  70.      1.2 Foreword, Feedback & Credits
  71.      1.3 Copyright & Disclaimer
  72.  
  73.   2. Background Knowledge
  74.  
  75.      2.1 What is IP Masquerade?
  76.      2.2 Current Status
  77.      2.3 Who Can Benefit From IP Masquerade?
  78.      2.4 Who Doesn't Need IP Masquerade?
  79.      2.5 How IP Masquerade Works?
  80.      2.6 Requirements for Using IP Masquerade on Linux 2.2.x
  81.      2.7 Requirements for Using IP Masquerade on Linux 2.0.x
  82.  
  83.   3. Setting Up IP Masquerade
  84.  
  85.      3.1 Compiling the Kernel for IP Masquerade Support
  86.         3.1.1 Linux 2.2.x Kernels
  87.         3.1.2 Linux 2.0.x Kernels
  88.      3.2 Assigning Private Network IP Address
  89.      3.3 Configuring the OTHER machines
  90.         3.3.1 Configuring Windows 95
  91.         3.3.2 Configuring Windows for Workgroup 3.11
  92.         3.3.3 Configuring Windows NT
  93.         3.3.4 Configuring UNIX Based Systems
  94.         3.3.5 Configuring DOS using NCSA Telnet package
  95.         3.3.6 Configuring MacOS Based System Running MacTCP
  96.         3.3.7 Configuring MacOS Based System Running Open Transport
  97.         3.3.8 Configuring Novell network using DNS
  98.         3.3.9 Configuring OS/2 Warp
  99.         3.3.10 Configuring Other Systems
  100.      3.4 Configuring IP Forwarding Policies
  101.         3.4.1 Linux 2.2.x Kernels
  102.         3.4.2 Linux 2.0.x Kernels
  103.      3.5 Testing IP Masquerade
  104.  
  105.   4. Other IP Masquerade Issues and Software Support
  106.  
  107.      4.1 Problems with IP Masquerade
  108.      4.2 Incoming services
  109.      4.3 Supported Client Software and Other Setup Note
  110.         4.3.1 Clients that Work
  111.         4.3.2 Clients that do not Work
  112.         4.3.3 Platforms/OS Tested as on OTHER machines
  113.      4.4 IP Firewall Administration (ipfwadm)
  114.      4.5 IP Firewalling Chains (ipchains)
  115.      4.6 IP Masquerade and Demand-Dial-Up
  116.      4.7 IPautofw Packet Fowarder
  117.      4.8 CU-SeeMe and Linux IP-Masquerade Teeny How-To
  118.         4.8.1 Introduction
  119.         4.8.2 Getting It Running
  120.         4.8.3 Restrictions/Caveats
  121.            4.8.3.1 Password Protected Reflectors
  122.            4.8.3.2 Running a Reflector
  123.            4.8.3.3 Multiple CU-SeeMe Users
  124.            4.8.3.4 Help on Setting up CU-SeeMe
  125.      4.9 Other Related Tools
  126.  
  127.   5. Frequently Asked Questions
  128.  
  129.      5.1 Does IP Masquerade work with dynamically assigned IP?
  130.      5.2 Can I use cable modem, DSL, satellite link, etc. to connect to the Internet and use IP Masquerade?
  131.      5.3 What applications are supported with IP Masquerade?
  132.      5.4 How can I get IP Masquerade running on Redhat, Debian, Slackware, etc.?
  133.      5.5 I've just upgraded to the 2.2.x kernels, why is IP Masquerade not working?
  134.      5.6 I've just upgraded to the kernels 2.0.30 or later, why is IP Masquerade not working?
  135.      5.7 I can't get IP Masquerade to work!  What options do I have for Windows Platform?
  136.      5.8 I've checked all my configurations, I still can't get IP Masquerade to work.  What should I do?
  137.      5.9 How do I join the IP Masquerade Mailing List?
  138.      5.10 I want to help on IP Masquerade development.  What can I do?
  139.      5.11 Where can I find more information on IP Masquerade?
  140.      5.12 I want to translate this HOWTO to another language, what should I do?
  141.      5.13 This HOWTO seems out of date, are you still maintaining it?  Can you include more information on ...?  Are there any plans for making this better?
  142.      5.14 I got IP Masquerade working, it'' great!  I want to thank you guys, what can I do?
  143.  
  144.   6. Miscellaneous
  145.  
  146.      6.1 Useful Resources
  147.      6.2 Linux IP Masquerade Resource
  148.      6.3 Thanks to
  149.      6.4 Reference
  150.  
  151.  
  152.   ______________________________________________________________________
  153.  
  154.   1.  Introduction
  155.  
  156.  
  157.   1.1.  Introduction
  158.  
  159.   This document describes how to enable IP masquerade feature on a Linux
  160.   host, allowing connected computers that do not have registered
  161.   Internet IP addresses to connect to the Internet through your Linux
  162.   box.  It is possible to connect your machines to the Linux host with
  163.   ethernet, as well as other kinds of connection such as a dialup ppp
  164.   link. This document will emphasize on ethernet connection, since it
  165.   should be the most likely case.
  166.  
  167.  
  168.        This document is intended for users using stable kernels
  169.        2.2.x and 2.0.x.  Older kernels such as 1.2.x are NOT cov¡
  170.        ered.
  171.  
  172.  
  173.  
  174.   1.2.  Foreword, Feedback & Credits
  175.  
  176.   I find it very confusing as a new user setting up IP masquerade on a
  177.   newer kernel, i.e. 2.x kernel.  Although there is a FAQ and a mailing
  178.   list, there is no document dedicates on that; and there are some
  179.   requests on the mailing list for such a HOWTO. So, I decided to write
  180.   this up as a starting point for new users, and possibly a building
  181.   block for knowledgeable users to build on for documentation. If you
  182.   think I'm not doing a good job, feel free to tell me so that I can
  183.   make it better.
  184.  
  185.   This document is heavily based on the original FAQ by Ken Eves , and
  186.   numerous helpful messages in the IP Masquerade mailing list. And a
  187.   special thanks to Mr. Matthew Driver whose mailing list message
  188.   inspired me to set up IP Masquerade and eventually writing this.
  189.  
  190.   Please feel free to send any feedback or comments to
  191.   ambrose@writeme.com and dranch@trinnet.net if we've mistaken on any
  192.   information, or if any information is missing. Your invaluable
  193.   feedback will certainly be influencing the future of this HOWTO!
  194.  
  195.   This HOWTO is meant to be a quick guide to get your IP Masquerade
  196.   working in the shortest time.  As I am not a technical writer, you may
  197.   find the information in this document not as general and objective as
  198.   it can be.  The latest news and information can be found at the IP
  199.   Masquerade Resource <http://ipmasq.cjb.net/> web page that we
  200.   maintained.  If you have any technical questions on IP Masquerade,
  201.   please join the IP Masquerade Mailing List instead of sending email to
  202.   me since I have limited time, and the developers of IP_Masq are more
  203.   capable of answering your questions.
  204.  
  205.   The latest version of this document can be found at the IP Masquerade
  206.   Resource <http://ipmasq.cjb.net/>, which also contains the HTML and
  207.   postscript version:
  208.  
  209.   ╖  http://ipmasq.cjb.net/
  210.  
  211.   ╖  http://ipmasq2.cjb.net/
  212.  
  213.   ╖  Please refer to IP Masquerade Resource Mirror Sites Listing
  214.      <http://ipmasq.cjb.net/index.html#mirror> for other mirror sites
  215.      available.
  216.  
  217.  
  218.   1.3.  Copyright & Disclaimer
  219.  
  220.   This document is copyright(c) 1999 Ambrose Au, and it's a free
  221.   document. You can redistribute it under the terms of the GNU General
  222.   Public License.
  223.  
  224.   The information and other contents in this document are to the best of
  225.   my knowledge. However, IP Masquerade is experimental, and there is
  226.   chance that I make mistakes as well; so you should determine if you
  227.   want to follow the information in this document.
  228.  
  229.   Nobody is responsible for any damage on your computers and any other
  230.   losses by using the information on this document. i.e.
  231.  
  232.  
  233.        THE AUTHOR AND MAINTAINERS ARE NOT RESPONSIBLE FOR ANY DAM¡
  234.        AGES INCURRED DUE TO ACTIONS TAKEN BASED ON THE INFORMATION
  235.        IN THIS DOCUMENT.
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.   2.  Background Knowledge
  245.  
  246.  
  247.   2.1.  What is IP Masquerade?
  248.  
  249.   IP Masquerade is a networking function in Linux. If a Linux host is
  250.   connected to the Internet with IP Masquerade enabled, then computers
  251.   connecting to it (either on the same LAN or connected with modems) can
  252.   reach the Internet as well, even though they have no official assigned
  253.   IP addresses.
  254.  
  255.   This allows a set of machines to invisibly access the Internet hidden
  256.   behind a gateway system, which appears to be the only system using the
  257.   Internet.  Breaking the security of a well set-up masquerading system
  258.   should be considerably more difficult than breaking a good packet
  259.   filter based firewall (assuming there are no bugs in either).
  260.  
  261.  
  262.  
  263.  
  264.  
  265.   2.2.  Current Status
  266.  
  267.   IP Masquerade had been out for several years and is maturing as Linux
  268.   heads into the 2.2.x stage.  Kernels since 1.3.x had built-in support
  269.   already. Many individuals and even busnesses are using it, with
  270.   satisfactory results.
  271.  
  272.   Browsing web pages and telnet are reported to work well over IP
  273.   Masquerade. FTP, IRC and listening to Real Audio are working with
  274.   certain modules loaded. Other network streaming audio such as True
  275.   Speech and Internet Wave work too. Some fellow users on the mailing
  276.   list even tried video conferencing software.   Ping is now working,
  277.   with the newly available ICMP patch
  278.  
  279.   Please refer to section 4.3 for a more complete listing of software
  280.   supported.
  281.  
  282.   IP Masquerade works well with 'client machines' on several different
  283.   OS and platforms. There are successful cases with systems using Unix,
  284.   Windows 95, Windows NT, Windows for Workgroup(with TCP/IP package),
  285.   OS/2, Macintosh System's OS with Mac TCP, Mac Open Transport, DOS with
  286.   NCSA Telnet package, VAX, Alpha with Linux, and even Amiga with AmiTCP
  287.   or AS225-stack.   The list goes on and on, the point is, if your OS
  288.   platform talks TCP/IP, it should work with IP Masquerade.
  289.  
  290.  
  291.   2.3.  Who Can Benefit From IP Masquerade?
  292.  
  293.  
  294.   ╖  If you have a Linux host connected to the Internet, and
  295.  
  296.   ╖  if you have some computers running TCP/IP connected to that Linux
  297.      box on a local subnet, and/or
  298.  
  299.   ╖  if your Linux host has more than one modem and acts as a PPP or
  300.      SLIP server connecting to others, which
  301.  
  302.   ╖  those OTHER machines do not have official assigned IP addresses.
  303.      (these machines are represented by OTHER machines hereby)
  304.  
  305.   ╖  And of course, if you want those OTHER machines to make it onto the
  306.      Internet without spending extra bucks :)
  307.  
  308.  
  309.   2.4.  Who Doesn't Need IP Masquerade?
  310.  
  311.  
  312.   ╖  If your machine is a stand-alone Linux host connected to the
  313.      Internet, then it is pointless to have IP Masquerade running, or
  314.  
  315.   ╖  if you already have assigned addresses for your OTHER machines,
  316.      then you don't need IP Masquerade,
  317.  
  318.   ╖  and of course, if you don't like the idea of a 'free ride'.
  319.  
  320.  
  321.   2.5.  How IP Masquerade Works?
  322.  
  323.   From IP Masquerade FAQ by Ken Eves:
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.     Here is a drawing of the most simple setup:
  332.  
  333.        SLIP/PPP         +------------+                         +-------------+
  334.        to provider      |  Linux     |       SLIP/PPP          | Anybox      |
  335.       <---------- modem1|            |modem2 ----------- modem |             |
  336.         111.222.333.444 |            |           192.168.1.100 |             |
  337.                         +------------+                         +-------------+
  338.  
  339.       In the above drawing a Linux box with ip_masquerading installed and
  340.     running is connected to the Internet via SLIP/or/PPP using modem1.  It has
  341.     an assigned IP address of 111.222.333.444.  It is setup that modem2 allows
  342.     callers to login and start a SLIP/or/PPP connection.
  343.  
  344.       The second system (which doesn't have to be running Linux) calls into the
  345.     Linux box and starts a SLIP/or/PPP connection.  It does NOT have an assigned
  346.     IP address on the Internet so it uses 192.168.1.100. (see below)
  347.  
  348.       With ip_masquerade and the routing configured properly the machine
  349.     Anybox can interact with the Internet as if it was really connected (with a
  350.     few exceptions).
  351.  
  352.   Quoting Pauline Middelink:
  353.     Do not forget to mention the ANYBOX should have the Linux box
  354.     as its gateway (whether is be the default route or just a subnet
  355.     is no matter). If the ANYBOX can not do this, the Linux machine
  356.     should do a proxy arp for all routed address, but the setup of
  357.     proxy arp is beyond the scope of the document.
  358.  
  359.   The following is an excerpt from a post on comp.os.linux.networking which
  360.   has been edited to match the names used in the above example:
  361.      o I tell machine ANYBOX that my slipped linux box is its gateway.
  362.      o When a packet comes into the linux box from ANYBOX, it will assign it
  363.        new source port number, and slap its own ip address in the packet
  364.        header, saving the originals.  It will then send the modified packet
  365.        out over the SLIP/or/PPP interface to the Internet.
  366.      o When a packet comes from the Internet to the linux box, if the port
  367.        number is one of those assigned above, it will get the original
  368.        port and ip address, put them back in the packet header, and send the
  369.        packet to ANYBOX.
  370.      o The host that sent the packet will never know the difference.
  371.  
  372.  
  373.  
  374.  
  375.   An IP Masquerading Example
  376.  
  377.   typical example is given in the diagram below:-
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.       +----------+
  398.       |          |  Ethernet
  399.       | abox     |::::::
  400.       |          |2    :192.168.1.x
  401.       +----------+     :
  402.                        :   +----------+   PPP
  403.       +----------+     :  1|  Linux   |   link
  404.       |          |     ::::| masq-gate|:::::::::// Internet
  405.       | bbox     |::::::   |          |
  406.       |          |3    :   +----------+
  407.       +----------+     :
  408.                        :
  409.       +----------+     :
  410.       |          |     :
  411.       | cbox     |::::::
  412.       |          |4
  413.       +----------+
  414.  
  415.  
  416.       <-Internal Network->
  417.  
  418.  
  419.   In this example there are 4 computer systems that we are concerned
  420.   about (there is presumably also something on the far right that your
  421.   IP connection to the internet comes through, and there is something
  422.   (far off the page) on the internet that you are interested in exchang¡
  423.   ing information with).  The Linux system masq-gate is the masquerading
  424.   gateway for the internal network of machines abox, bbox and cbox to
  425.   get to the internet.  The internal network uses one of the assigned
  426.   private network addresses, in this case the class C network
  427.   192.168.1.0, with the linux box having address 192.168.1.1 and the
  428.   other systems having addresses on that network.
  429.  
  430.   The three machines abox, bbox and cbox (which can, by the way, be
  431.   running any operating system as long as they can speak IP - such as
  432.   Windows 95, Macintosh MacTCP or even another linux box) can connect to
  433.   other machines on the internet, however the masquerading system masq-
  434.   gate converts all of their connections so that they appear to
  435.   originate from masq-gate, and arranges that data coming back in to a
  436.   masqueraded connection is relayed back to the originating system - so
  437.   the systems on the internal network see a direct route to the internet
  438.   and are unaware that their data is being masqueraded.
  439.  
  440.  
  441.  
  442.   2.6.  Requirements for Using IP Masquerade on Linux 2.2.x
  443.  
  444.  
  445.        ** Please refer to IP Masquerade Resource
  446.        <http://ipmasq.cjb.net/> for the latest information. **
  447.  
  448.  
  449.  
  450.  
  451.   ╖  Kernel 2.2.x source available from http://www.kernel.org/
  452.      (Most of the modern Linux dributions such as Redhat 5.2 - shipped
  453.      with 2.0.36 kernel - has modular kernel with all IP Masquerade
  454.      kernel options compiled.  In such cases, there is no need to
  455.      compile again.  If you are upgrading kernel, then you should be
  456.      aware of what you need, mentioned later in the HOWTO.)
  457.  
  458.   ╖  Loadable kernel modules, preferably 2.1.121 or newer
  459.  
  460.   ╖  A well set up TCP/IP network
  461.      covered in Linux NET-3 HOWTO
  462.      <http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html> and the Network
  463.      Administrator's Guide <http://metalab.unc.edu/mdw/LDP/nag/nag.html>
  464.      Also check out the Trinity OS Doc
  465.      <http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri>, a very
  466.      compreshensive guide on Linux networking.
  467.  
  468.  
  469.   ╖  Connectivity to Internet for your Linux host
  470.      covered in Linux ISP Hookup HOWTO
  471.      <http://metalab.unc.edu/mdw/HOWTO/ISP-Hookup-HOWTO.html>, Linux PPP
  472.      HOWTO <http://metalab.unc.edu/mdw/HOWTO/PPP-HOWTO.html>, Linux DHCP
  473.      mini-HOWTO <http://metalab.unc.edu/mdw/HOWTO/mini/DHCP.html> and
  474.      Linux Cable Modem mini-HOWTO
  475.      <http://metalab.unc.edu/mdw/HOWTO/mini/Cable-Modem.html>
  476.  
  477.   ╖  IP Chains 1.3.8 or newer available from
  478.      http://www.rustcorp.com/linux/ipchains/
  479.      more information on version requirement is on the Linux IP
  480.      Firewalling Chains page <http://www.rustcorp.com/linux/ipchains/>
  481.  
  482.   ╖  For other options, please see Linux IP Masquerade Resource
  483.      <http://ipmasq.cjb.net/>
  484.  
  485.  
  486.  
  487.   2.7.  Requirements for Using IP Masquerade on Linux 2.0.x
  488.  
  489.  
  490.        ** Please refer to IP Masquerade Resource
  491.        <http://ipmasq.cjb.net/> for the latest information. **
  492.  
  493.  
  494.  
  495.  
  496.   ╖  Kernel 2.0.x source available from http://www.kernel.org/
  497.      (Most of the modern Linux dributions such as Redhat 5.2 has modular
  498.      kernel with all IP Masquerade kernel options compiled.  In such
  499.      cases, there is no need to compile again.  If you are upgrading
  500.      kernel, then you should be aware of what you need, mentioned later
  501.      in the HOWTO.)
  502.  
  503.   ╖  Loadable kernel modules, preferably 2.0.0 or newer available from
  504.      http://www.pi.se/blox/modules/modules-2.0.0.tar.gz
  505.      (modules-1.3.57 is the minimal requirement)
  506.  
  507.   ╖  A well set up TCP/IP network
  508.      covered in Linux NET-3 HOWTO
  509.      <http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html> and the Network
  510.      Administrator's Guide <http://metalab.unc.edu/mdw/LDP/nag/nag.html>
  511.      Also check out the Trinity OS Doc
  512.      <http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri>, a very
  513.      compreshensive guide on Linux networking.
  514.  
  515.  
  516.   ╖  Connectivity to Internet for your Linux host
  517.      covered in Linux ISP Hookup HOWTO
  518.      <http://metalab.unc.edu/mdw/HOWTO/ISP-Hookup-HOWTO.html>, Linux PPP
  519.      HOWTO <http://metalab.unc.edu/mdw/HOWTO/PPP-HOWTO.html>, Linux DHCP
  520.      mini-HOWTO <http://metalab.unc.edu/mdw/HOWTO/mini/DHCP.html> and
  521.      Linux Cable Modem mini-HOWTO
  522.      <http://metalab.unc.edu/mdw/HOWTO/mini/Cable-Modem.html>
  523.  
  524.  
  525.   ╖  Ipfwadm 2.3 or newer available from
  526.      ftp://ftp.xos.nl/pub/linux/ipfwadm/ipfwadm-2.3.tar.gz
  527.      more information on version requirement is on the Linux IPFWADM
  528.      page <http://www.xos.nl/linux/ipfwadm/>
  529.   ╖  You can optionally apply some IP Masquerade patches to enable other
  530.      functionality.  More information availabe on IP Masquerade
  531.      Resources <http://ipmasq.cjb.net/> (these patches apply to all
  532.      2.0.x kernels)
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.   3.  Setting Up IP Masquerade
  541.  
  542.  
  543.        If your private network contains any vital information,
  544.        think carefully before using IP Masquerade.  This may be a
  545.        GATEWAY for you to get to the Internet, and vice versa for
  546.        someone on the other side of the world to get into your net¡
  547.        work.
  548.  
  549.  
  550.  
  551.  
  552.   3.1.  Compiling the Kernel for IP Masquerade Support
  553.  
  554.  
  555.  
  556.        If your Linux distribution already has the required features
  557.        and modules compiled (most modular kernels will have all you
  558.        need) mentioned below, then you do not have to re-compile
  559.        the kernel.  Reading this section is still highly recom¡
  560.        mended as it contains other useful informaiton.
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.   3.1.1.  Linux 2.2.x Kernels
  570.  
  571.  
  572.   ╖  First of all, you need the kernel source for 2.2.x
  573.  
  574.   ╖  If this is your first time compiling the kernel, don't be scared.
  575.      In fact, it's rather easy and it's covered in Linux Kernel HOWTO
  576.      <http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html>.
  577.  
  578.   ╖  Unpack the kernel source to /usr/src/ with a command: tar xvzf
  579.      linux-2.2.x.tar.gz -C /usr/src, where x is the patch level beyond
  580.      2.0
  581.      (make sure there is a directory or symbolic link called linux )
  582.  
  583.   ╖  Apply appropriate patches.  Since new patches are coming out,
  584.      details will not be included here.  Please refer to IP Masquerade
  585.      Resources <http://ipmasq.cjb.net/> for up-to-date information.
  586.  
  587.   ╖  Refer to the Kernel HOWTO and the README file in the kernel source
  588.      directory for further instructions on compiling a kernel
  589.  
  590.   ╖  Here are the options that you need to compile in:
  591.  
  592.      Say YES to the following,
  593.  
  594.  
  595.     * Prompt for development and/or incomplete code/drivers
  596.       CONFIG_EXPERIMENTAL
  597.       - this will allow you to select experimental IP Masquerade code compiled
  598.         into the kernel
  599.  
  600.     * Enable loadable module support
  601.       CONFIG_MODULES
  602.       - allows you to load ipmasq modules such as ip_masq_ftp.o
  603.  
  604.     * Networking support
  605.       CONFIG_NET
  606.  
  607.     * Network firewalls
  608.       CONFIG_FIREWALL
  609.  
  610.     * TCP/IP networking
  611.       CONFIG_INET
  612.  
  613.     * IP: forwarding/gatewaying
  614.       CONFIG_IP_FORWARD
  615.  
  616.     * IP: firewalling
  617.       CONFIG_IP_FIREWALL
  618.  
  619.     * IP: masquerading
  620.       CONFIG_IP_MASQUERADE
  621.  
  622.     * IP: ipportfw masq support
  623.       CONFIG_IP_MASQUERADE_IPPORTFW
  624.       - recommended
  625.  
  626.     * IP: ipautofw masquerade support
  627.       CONFIG_IP_MASQUERADE_IPAUTOFW
  628.       - optional
  629.  
  630.     * IP: ICMP masquerading
  631.       CONFIG_IP_MASQUERADE_ICMP
  632.       - support for masquerading ICMP packets, recommended.
  633.  
  634.     * IP: always defragment
  635.       CONFIG_IP_ALWAYS_DEFRAG
  636.       - highly recommended
  637.  
  638.     * Dummy net driver support
  639.       CONFIG_DUMMY
  640.       - recommended
  641.  
  642.     * IP: ip fwmark masq-forwarding support
  643.       CONFIG_IP_MASQUERADE_MFW
  644.       - optional
  645.  
  646.  
  647.  
  648.  
  649.   NOTE: These are just the component you need for IP Masquerade, select
  650.   whatever other options you need for your specific setup.
  651.  
  652.  
  653.  
  654.   ╖  After compiling the kernel, you should compile and install the
  655.      modules:
  656.  
  657.  
  658.        make modules; make modules_install
  659.  
  660.  
  661.   ╖  Then you should add a few lines into your /etc/rc.d/rc.local file
  662.      (or any file you think is appropriate) to load the required modules
  663.      reside in /lib/modules/2.2.x/ipv4/ automatically during each
  664.      reboot:
  665.  
  666.  
  667.                .
  668.                .
  669.                .
  670.        /sbin/depmod -a
  671.        /sbin/modprobe ip_masq_ftp
  672.        /sbin/modprobe ip_masq_raudio
  673.        /sbin/modprobe ip_masq_irc
  674.        (and other modules such as ip_masq_cuseeme, ip_masq_vdolive
  675.         if you have applied the patches)
  676.                .
  677.                .
  678.                .
  679.  
  680.  
  681.  
  682.  
  683.  
  684.   IMPORTANT: IP forwarding is disabled by default in 2.2.x kernels,
  685.   please make sure you enable it by running
  686.   echo "1" > /proc/sys/net/ipv4/ip_forwarding
  687.  
  688.   For Redhat users, you may try changing FORWARD_IPV4=false to FOR¡
  689.   WARD_IPV4=true in /etc/sysconfig/network
  690.  
  691.   ╖  Reboot the Linux box.
  692.  
  693.  
  694.   3.1.2.  Linux 2.0.x Kernels
  695.  
  696.  
  697.   ╖  First of all, you need the kernel source (preferably the latest
  698.      kernel version 2.0.36 or above)
  699.  
  700.   ╖  If this is your first time compiling the kernel, don't be scared.
  701.      In fact, it's rather easy and it's covered in Linux Kernel HOWTO
  702.      <http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html>.
  703.  
  704.   ╖  Unpack the kernel source to /usr/src/ with a command: tar xvzf
  705.      linux-2.0.x.tar.gz -C /usr/src, where x is the patch level beyond
  706.      2.0
  707.      (make sure there is a directory or symbolic link called linux )
  708.  
  709.   ╖  Apply appropriate patches.  Since new patches are coming out,
  710.      details will not be included here.  Please refer to IP Masquerade
  711.      Resources <http://ipmasq.cjb.net/> for up-to-date information.
  712.  
  713.   ╖  Refer to the Kernel HOWTO and the README file in the kernel source
  714.      directory for further instructions on compiling a kernel
  715.  
  716.   ╖  Here are the options that you need to compile in:
  717.  
  718.      Say YES to the following,
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.     * Prompt for development and/or incomplete code/drivers
  728.       CONFIG_EXPERIMENTAL
  729.       - this will allow you to select experimental IP Masquerade code compiled
  730.         into the kernel
  731.  
  732.     * Enable loadable module support
  733.       CONFIG_MODULES
  734.       - allows you to load modules
  735.  
  736.     * Networking support
  737.       CONFIG_NET
  738.  
  739.     * Network firewalls
  740.       CONFIG_FIREWALL
  741.  
  742.     * TCP/IP networking
  743.       CONFIG_INET
  744.  
  745.     * IP: forwarding/gatewaying
  746.       CONFIG_IP_FORWARD
  747.  
  748.     * IP: firewalling
  749.       CONFIG_IP_FIREWALL
  750.  
  751.     * IP: masquerading (EXPERIMENTAL)
  752.       CONFIG_IP_MASQUERADE
  753.       - although it is experimental, it is a *MUST*
  754.  
  755.     * IP: ipautofw masquerade support (EXPERIMENTAL)
  756.       CONFIG_IP_MASQUERADE_IPAUTOFW
  757.       -recommended
  758.  
  759.     * IP: ICMP masquerading
  760.       CONFIG_IP_MASQUERADE_ICMP
  761.       - support for masquerading ICMP packets, optional.
  762.  
  763.     * IP: always defragment
  764.       CONFIG_IP_ALWAYS_DEFRAG
  765.       - highly recommended
  766.  
  767.     * Dummy net driver support
  768.       CONFIG_DUMMY
  769.       - recommended
  770.  
  771.  
  772.  
  773.  
  774.   NOTE: These are just the component you need for IP Masquerade, select
  775.   whatever other options you need for your specific setup.
  776.  
  777.  
  778.  
  779.  
  780.   ╖  After compiling the kernel, you should compile and install the
  781.      modules:
  782.  
  783.  
  784.        make modules; make modules_install
  785.  
  786.  
  787.  
  788.  
  789.  
  790.   ╖  Then you should add a few lines into your /etc/rc.d/rc.local file
  791.      (or any file you think is appropriate) to load the required modules
  792.      reside in /lib/modules/2.0.x/ipv4/ automatically during each
  793.      reboot:
  794.  
  795.  
  796.                .
  797.                .
  798.                .
  799.        /sbin/depmod -a
  800.        /sbin/modprobe ip_masq_ftp
  801.        /sbin/modprobe ip_masq_raudio
  802.        /sbin/modprobe ip_masq_irc
  803.        (and other modules such as ip_masq_cuseeme, ip_masq_vdolive
  804.         if you have applied the patches)
  805.                .
  806.                .
  807.                .
  808.  
  809.  
  810.  
  811.  
  812.  
  813.   IMPORTANT: IP forwarding is disabled by default since 2.0.34 kernels,
  814.   please make sure you enable it by running
  815.   echo "1" > /proc/sys/net/ipv4/ip_forward
  816.  
  817.   For Redhat users, you may try changing FORWARD_IPV4=false to FOR¡
  818.   WARD_IPV4=true in /etc/sysconfig/network
  819.  
  820.   ╖  Reboot the Linux box.
  821.  
  822.  
  823.  
  824.   3.2.  Assigning Private Network IP Address
  825.  
  826.   Since all OTHER machines do not have official assigned addressees,
  827.   there must be a right way to allocate address to those machines.
  828.  
  829.   From IP Masquerade FAQ:
  830.  
  831.   There is an RFC (#1597, probably obsolete by now) on which IP
  832.   addresses are to be used on a non-connected network.  There are 3
  833.   blocks of numbers set aside specifically for this purpose. One which I
  834.   use is 255 Class-C subnets at 192.168.1.n to 192.168.255.n .
  835.  
  836.  
  837.  
  838.        From RCF 1597:
  839.  
  840.        Section 3: Private Address Space
  841.  
  842.        The Internet Assigned Numbers Authority (IANA) has reserved the
  843.        following three blocks of the IP address space for private networks:
  844.  
  845.                      10.0.0.0        -   10.255.255.255
  846.                      172.16.0.0      -   172.31.255.255
  847.                      192.168.0.0     -   192.168.255.255
  848.  
  849.        We will refer to the first block as "24-bit block", the second as
  850.        "20-bit block", and to the third as "16-bit" block".  Note that the
  851.        first block is nothing but a single class A network number, while the
  852.        second block is a set of 16 contiguous class B network numbers, and
  853.        third block is a set of 255 contiguous class C network numbers.
  854.  
  855.  
  856.  
  857.  
  858.   So, if you're using a class C network, you should name your machines
  859.   as 192.168.1.1, 1.92.168.1.2, 1.92.168.1.3, ..., 192.168.1.x
  860.  
  861.   192.168.1.1 is usually the gateway machine, which is your Linux host
  862.   connecting to the Internet. Notice that 192.168.1.0 and 192.168.1.255
  863.   are the Network and Broadcast address respectively, which are
  864.   reserved. Avoid using these addresses on your machines.
  865.  
  866.  
  867.   3.3.  Configuring the OTHER machines
  868.  
  869.   Besides setting the appropriate IP address for each machine, you
  870.   should also set the appropriate gateway. In general, it is rather
  871.   straight forward. You simply enter the address of your Linux host
  872.   (usually 192.168.1.1) as the gateway address.
  873.  
  874.   For the Domain Name Service, you can add in any DNS available. The
  875.   most apparent one should be the one that your Linux is using. You can
  876.   optionally add any domain search suffix as well.
  877.  
  878.   After you have reconfigured those IP addresses, remember to restart
  879.   the appropriate services or reboot your systems.
  880.  
  881.   The following configuration instructions assume that you are using a
  882.   Class C network with 192.168.1.1 as your Linux host's address. Please
  883.   note that 192.168.1.0 and 192.168.1.255 are reserved.
  884.  
  885.  
  886.  
  887.   3.3.1.  Configuring Windows 95
  888.  
  889.  
  890.   1. If you haven't installed your network card and adapter driver, do
  891.      so now.
  892.  
  893.   2. Go to 'Control Panel'/'Network'.
  894.  
  895.   3. Add 'TCP/IP protocol' if you don't already have it.
  896.  
  897.   4. In 'TCP/IP properties', goto 'IP Address' and set IP Address to
  898.      192.168.1.x, (1 < x < 255), and then set Subnet Mask to
  899.      255.255.255.0
  900.  
  901.   5. Add 192.168.1.1 as your gateway under 'Gateway'.
  902.  
  903.   6. Under 'DNS Configuration'/'DNS Server search order' add your the
  904.      DNS that your Linux host uses (usually find in /etc/resolv.conf).
  905.      Optionally, you can add the appropriate domain search suffix.
  906.  
  907.   7. Leave all the other settings as they are unless you know what
  908.      you're doing.
  909.  
  910.   8. Click 'OK' on all dialog boxes and restart system.
  911.  
  912.   9. Ping the linux box to test the network connection: 'Start/Run',
  913.      type: ping 192.168.1.1
  914.      (This is only a LAN connection testing, you can't ping the outside
  915.      world yet.)
  916.  
  917.   10.
  918.      You can optionally create a HOSTS file in the windows directory so
  919.      that you can use hostname of the machines on your LAN.  There is an
  920.      example called HOSTS.SAM in the windows directory.
  921.  
  922.  
  923.  
  924.  
  925.   3.3.2.  Configuring Windows for Workgroup 3.11
  926.  
  927.  
  928.   1. If you haven't installed your network card and adapter driver, do
  929.      so now.
  930.  
  931.   2. Install the TCP/IP 32b package if you don't have it already.
  932.  
  933.   3. In 'Main'/'Windows Setup'/'Network Setup', click on 'Drivers'.
  934.  
  935.   4. Highlight 'Microsoft TCP/IP-32 3.11b' in the 'Network Drivers'
  936.      section, click 'Setup'.
  937.  
  938.   5. Set IP Address to 192.168.1.x (1 < x < 255), then set Subnet Mask
  939.      to 255.255.255.0 and Default Gateway to 192.168.1.1
  940.  
  941.   6. Do not enable 'Automatic DHCP Configuration' and put anything in
  942.      those 'WINS Server' input areas unless you're in a Windows NT
  943.      domain and you know what you're doing.
  944.  
  945.   7. Click 'DNS', fill in the appropriate information mentioned in STEP
  946.      6 of section 3.3.1, then click 'OK' when you're done with it.
  947.  
  948.   8. Click 'Advanced', check 'Enable DNS for Windows Name Resolution'
  949.      and 'Enable LMHOSTS lookup' if you're using a look up host file,
  950.      similar to the one mentioned in STEP 10 of section 3.3.1
  951.  
  952.   9. Click 'OK' on all dialog boxes and restart system.
  953.  
  954.   10.
  955.      Ping the linux box to test the network connection: 'File/Run',
  956.      type: ping 192.168.1.1
  957.      (This is only a LAN connection testing, you can't ping the outside
  958.      world yet.)
  959.  
  960.  
  961.   3.3.3.  Configuring Windows NT
  962.  
  963.  
  964.   1. If you haven't installed your network card and adapter driver, do
  965.      so now.
  966.  
  967.   2. Go to 'Main'/'Control Panel'/'Network'
  968.  
  969.   3. Add the TCP/IP Protocol and Related Component from the 'Add
  970.      Software' menu if you don't have TCP/IP service installed already.
  971.  
  972.   4. Under 'Network Software and Adapter Cards' section, highlight
  973.      'TCP/IP Protocol' in the 'Installed Network Software' selection
  974.      box.
  975.  
  976.   5. In 'TCP/IP Configuration', select the appropriate adapter, e.g.
  977.      [1]Novell NE2000 Adapter.  Then set the IP Address to 192.168.1.x
  978.      (1 < x < 255), then set Subnet Mask to 255.255.255.0 and Default
  979.      Gateway to 192.168.1.1
  980.  
  981.   6. Do not enable 'Automatic DHCP Configuration' and put anything in
  982.      those 'WINS Server' input areas unless you're in a Windows NT
  983.      domain and you know what you're doing.
  984.  
  985.   7. Click 'DNS', fill in the appropriate information mentioned in STEP
  986.      6 of section 3.3.1, then click 'OK' when you're done with it.
  987.  
  988.   8. Click 'Advanced', check 'Enable DNS for Windows Name Resolution'
  989.      and 'Enable LMHOSTS lookup' if you're using a look up host file,
  990.      similar to the one mentioned in STEP 10 of section 3.3.1
  991.   9. Click 'OK' on all dialog boxes and restart system.
  992.  
  993.   10.
  994.      Ping the linux box to test the network connection: 'File/Run',
  995.      type: ping 192.168.1.1
  996.      (This is only a LAN connection testing, you can't ping the outside
  997.      world yet.)
  998.  
  999.  
  1000.   3.3.4.  Configuring UNIX Based Systems
  1001.  
  1002.  
  1003.   1. If you haven't installed your network card and recompile your
  1004.      kernel with the appropriate adapter driver, do so now.
  1005.  
  1006.   2. Install TCP/IP networking, such as the nettools package, if you
  1007.      don't have it already.
  1008.  
  1009.   3. Set IPADDR to 192.168.1.x (1 < x < 255), then set NETMASK to
  1010.      255.255.255.0, GATEWAY to 192.168.1.1, and BROADCAST to
  1011.      192.168.1.255
  1012.      For example, you can edit the /etc/sysconfig/network-scripts/ifcfg-
  1013.      eth0 file on a Red Hat Linux system, or simply do it through the
  1014.      Control Panel.
  1015.      (it's different in SunOS, BSDi, Slackware Linux, etc...)
  1016.  
  1017.   4. Add your domain name service (DNS) and domain search suffix in
  1018.      /etc/resolv.conf
  1019.  
  1020.   5. You may want to update your /etc/networks file depending on your
  1021.      settings.
  1022.  
  1023.   6. Restart the appropriate services, or simply restart your system.
  1024.  
  1025.   7. Issue a ping command: ping 192.168.1.1  to test the connection to
  1026.      your gateway machine.
  1027.      (This is only a LAN connection testing, you can't ping the outside
  1028.      world yet.)
  1029.  
  1030.  
  1031.   3.3.5.  Configuring DOS using NCSA Telnet package
  1032.  
  1033.  
  1034.   1. If you haven't installed your network card, do so now.
  1035.  
  1036.   2. Load the appropriate packet driver. For an NE2000 card, issue nwpd
  1037.      0x60 10 0x300, with your network card set to IRQ 10 and hardware
  1038.      address at 0x300
  1039.  
  1040.   3. Make a new directory, and then unpack the NCSA Telnet package:
  1041.      pkunzip tel2308b.zip
  1042.  
  1043.   4. Use a text editor to open the config.tel file
  1044.  
  1045.   5. Set myip=192.168.1.x (1 < x < 255), and netmask=255.255.255.0
  1046.  
  1047.   6. In this example, you should set hardware=packet, interrupt=10,
  1048.      ioaddr=60
  1049.  
  1050.   7. You should have at least one individual machine specification set
  1051.      as the gateway, i.e. the Linux host:
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   name=default
  1058.   host=yourlinuxhostname
  1059.   hostip=192.168.1.1
  1060.   gateway=1
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.   8. Have another specification for a domain name service:
  1067.  
  1068.  
  1069.        name=dns.domain.com ; hostip=123.123.123.123; nameserver=1
  1070.  
  1071.  
  1072.  
  1073.  
  1074.   Note: substitute the appropriate information about the DNS that your
  1075.   Linux host uses
  1076.  
  1077.   9. Save your config.tel file
  1078.  
  1079.   10.
  1080.      Telnet to the linux box to test the network connection: telnet
  1081.      192.168.1.1
  1082.  
  1083.  
  1084.   3.3.6.  Configuring MacOS Based System Running MacTCP
  1085.  
  1086.  
  1087.   1. If you haven't installed the appropriate driver software for your
  1088.      Ethernet adapter, now would be a very good time to do so.
  1089.  
  1090.   2. Open the MacTCP control panel.  Select the appropriate network
  1091.      driver (Ethernet, NOT EtherTalk) and click on the 'More...' button.
  1092.  
  1093.   3. Under 'Obtain Address:', click 'Manually'.
  1094.  
  1095.   4. Under 'IP Address:', select class C from the popup menu. Ignore the
  1096.      rest of this section of the dialog box.
  1097.  
  1098.   5. Fill in the appropriate information under 'Domain Name Server
  1099.      Information:'.
  1100.  
  1101.   6. Under 'Gateway Address:', enter 192.168.1.1
  1102.  
  1103.   7. Click 'OK' to save the settings.  In the main window of the MacTCP
  1104.      control panel, enter the IP address of your Mac (192.168.1.x, 1 < x
  1105.      < 255) in the 'IP Address:' box.
  1106.  
  1107.   8. Close the MacTCP control panel.  If a dialog box pops up notifying
  1108.      you to do so, restart the system.
  1109.  
  1110.   9. You may optionally ping the Linux box to test the network
  1111.      connection.  If you have the freeware program MacTCP Watcher, click
  1112.      on the 'Ping' button, and enter the address of your Linux box
  1113.      (192.168.1.1) in the dialog box that pops up.  (This is only a LAN
  1114.      connection testing, you can't ping the outside world yet.)
  1115.  
  1116.   10.
  1117.      You can optionally create a Hosts file in your System Folder so
  1118.      that you can use the hostnames of the machines on your LAN.  The
  1119.      file should already exist in your System Folder, and should contain
  1120.      some (commented-out) sample entries which you can modify according
  1121.      to your needs.
  1122.  
  1123.   3.3.7.  Configuring MacOS Based System Running Open Transport
  1124.  
  1125.  
  1126.   1. If you haven't installed the appropriate driver software for your
  1127.      Ethernet adapter, now would be a very good time to do so.
  1128.  
  1129.   2. Open the TCP/IP Control Panel and choose 'User Mode ...' from the
  1130.      Edit menu. Make sure the user mode is set to at least 'Advanced'
  1131.      and click the 'OK' button.
  1132.  
  1133.   3. Choose 'Configurations...' from the File menu.  Select your
  1134.      'Default' configuration and click the 'Duplicate...' button.  Enter
  1135.      'IP Masq' (or something to let you know that this is a special
  1136.      configuration) in the 'Duplicate Configuration' dialog, it will
  1137.      probably say something like 'Deafault copy'.  Then click the 'OK'
  1138.      button, and the 'Make Active' button
  1139.  
  1140.   4. Select 'Ethernet' from the 'Connect via:' pop-up.
  1141.  
  1142.   5. Select the appropriate item from the 'Configure:' pop-up.  If you
  1143.      don't know which option to choose, you probably should re-select
  1144.      your 'Default' configuration and quit.  I use 'Manually'.
  1145.  
  1146.   6. Enter the IP address of your Mac (192.168.1.x, 1 < x < 255) in the
  1147.      'IP Address:' box.
  1148.  
  1149.   7. Enter 255.255.255.0 in the 'Subnet mask:' box.
  1150.  
  1151.   8. Enter 192.168.1.1 in the 'Router address:' box.
  1152.  
  1153.   9. Enter the IP addresses of your domain name servers in the 'Name
  1154.      server addr.:' box.
  1155.  
  1156.   10.
  1157.      Enter the name of your Internet domain (e.g. 'microsoft.com') in
  1158.      the 'Starting domain name' box under 'Implicit Search Path:'.
  1159.  
  1160.   11.
  1161.      The following procedures are optional.  Incorrect values may cause
  1162.      erratic behavior.  If your not sure, it's probably better to leave
  1163.      them blank, unchecked and/or un- selected.  Remove any information
  1164.      from those fields, if necessary.  As far as I know there is no way
  1165.      through the TCP/IP dialogs, to tell the system not to use a
  1166.      previously select alternate "Hosts" file.  If you know, I would be
  1167.      interested.
  1168.      Check the '802.3' if your network requires 802.3 frame types.
  1169.  
  1170.   12.
  1171.      Click the 'Options...' button to make sure that the TCP/IP is
  1172.      active.  I use the 'Load only when needed' option.  If you run and
  1173.      quit TCP/IP applications many times without rebooting your machine,
  1174.      you may find that unchecking the 'Load only when needed' option
  1175.      will prevent/reduce the effects on your machines memory management.
  1176.      With the item unchecked the TCP/IP protocol stacks are always
  1177.      loaded and available for use.  If checked, the TCP/IP stacks are
  1178.      automatically loaded when needed and un- loaded when not.  It's the
  1179.      loading and unloading process that can cause your machines memory
  1180.      to become fragmented.
  1181.  
  1182.   13.
  1183.      You may ping the Linux box to test the network connection.  If you
  1184.      have the freeware program MacTCP Watcher, click on the 'Ping'
  1185.      button, and enter the address of your Linux box (192.168.1.1) in
  1186.      the dialog box that pops up.  (This is only a LAN connection
  1187.      testing, you can't ping the outside world yet.)
  1188.  
  1189.   14.
  1190.      You can create a Hosts file in your System Folder so that you can
  1191.      use the hostnames of the machines on your LAN.  The file may or may
  1192.      not already exist in your System Folder.  If so, it should contain
  1193.      some (commented-out) sample entries which you can modify according
  1194.      to your needs.  If not, you can get a copy of the file from a
  1195.      system running MacTCP, or just create your own (it follows a subset
  1196.      of the Unix /etc/hosts file format, described on RFC952).  Once
  1197.      you've created the file, open the TCP/IP control panel, click on
  1198.      the 'Select Hosts File...' button, and open the Hosts file.
  1199.  
  1200.   15.
  1201.      Click the close box or choose 'Close' or 'Quit' from the File menu,
  1202.      and then click the 'Save' button to save the changes you have made.
  1203.  
  1204.   16.
  1205.      The changes take effect immediately, but rebooting the system won't
  1206.      hurt.
  1207.  
  1208.  
  1209.  
  1210.  
  1211.   3.3.8.  Configuring Novell network using DNS
  1212.  
  1213.  
  1214.   1. If you haven't installed the appropriate driver software for your
  1215.      Ethernet adapter, now would be a very good time to do so.
  1216.  
  1217.   2. Downloaded tcpip16.exe from
  1218.      <ftp.novell.com/pub/updates/unixconn/lwp5>
  1219.  
  1220.   3.
  1221.  
  1222.      edit c:\nwclient\startnet.bat
  1223.  
  1224.  
  1225.      SET NWLANGUAGE=ENGLISH
  1226.      LH LSL.COM
  1227.      LH KTC2000.COM
  1228.      LH IPXODI.COM
  1229.      LH tcpip
  1230.      LH VLM.EXE
  1231.      F:
  1232.  
  1233.  
  1234.  
  1235.   4.
  1236.  
  1237.      edit c:\nwclient\net.cfg
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.      Link Driver KTC2000
  1256.              Protocol IPX 0 ETHERNET_802.3
  1257.              Frame ETHERNET_802.3
  1258.              Frame Ethernet_II
  1259.              FRAME Ethernet_802.2
  1260.  
  1261.      NetWare DOS Requester
  1262.                 FIRST NETWORK DRIVE = F
  1263.                 USE DEFAULTS = OFF
  1264.                 VLM = CONN.VLM
  1265.                 VLM = IPXNCP.VLM
  1266.                 VLM = TRAN.VLM
  1267.                 VLM = SECURITY.VLM
  1268.                 VLM = NDS.VLM
  1269.                 VLM = BIND.VLM
  1270.                 VLM = NWP.VLM
  1271.                 VLM = FIO.VLM
  1272.                 VLM = GENERAL.VLM
  1273.                 VLM = REDIR.VLM
  1274.                 VLM = PRINT.VLM
  1275.                 VLM = NETX.VLM
  1276.  
  1277.      Link Support
  1278.              Buffers 8 1500
  1279.              MemPool 4096
  1280.  
  1281.      Protocol TCPIP
  1282.              PATH SCRIPT     C:\NET\SCRIPT
  1283.              PATH PROFILE    C:\NET\PROFILE
  1284.              PATH LWP_CFG    C:\NET\HSTACC
  1285.              PATH TCP_CFG    C:\NET\TCP
  1286.              ip_address      xxx.xxx.xxx.xxx
  1287.              ip_router       xxx.xxx.xxx.xxx
  1288.  
  1289.  
  1290.  
  1291.   5. and finally created
  1292.  
  1293.      c:\bin\resolv.cfg
  1294.  
  1295.  
  1296.      SEARCH DNS HOSTS SEQUENTIAL
  1297.      NAMESERVER 207.103.0.2
  1298.      NAMESERVER 207.103.11.9
  1299.  
  1300.  
  1301.  
  1302.   6. I hope this helps some people get their Novell Nets online, BTW
  1303.      this can be done using Netware 3.1x or 4.x
  1304.  
  1305.  
  1306.  
  1307.   3.3.9.  Configuring OS/2 Warp
  1308.  
  1309.  
  1310.   1. If you haven't installed the appropriate driver software for your
  1311.      Ethernet adapter, now would be a very good time to do so.
  1312.  
  1313.   2. Install the TCP/IP protocoll if you don't have it already.
  1314.  
  1315.   3. Go to Programms/TCP/IP (LAN) / TCP/IP Settings
  1316.  
  1317.   4. In 'Network' add your TCP/IP Address and set your Netmask
  1318.      (255.255.255.0)
  1319.  
  1320.  
  1321.   5. Under 'Routing' press 'Add'. Set the Type to 'default' and type the
  1322.      IP Address of your Linux Box in the Field 'Router Address'.
  1323.      (192.168.1.1).
  1324.  
  1325.   6. Set the same DNS (Nameserver) Address that your Linux host uses in
  1326.      'Hosts'.
  1327.  
  1328.   7. Close the TCP/IP control panel. Say yes to the following
  1329.      question(s).
  1330.  
  1331.  
  1332.   8. Reboot your system
  1333.  
  1334.   9. You may ping the Linux box to test the network configuration. Type
  1335.      packets are received all is ok.
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.   3.3.10.  Configuring Other Systems
  1343.  
  1344.   The same logic should apply to setting up other platforms.  Consult
  1345.   the sections above.  If you're interested in writing about any of
  1346.   systems that have not been covered yet, please send a detail setup
  1347.   instruction to ambrose@writeme.com and dranch@trinnet.net.
  1348.  
  1349.  
  1350.  
  1351.  
  1352.   3.4.  Configuring IP Forwarding Policies
  1353.  
  1354.   At this point, you should have your kernel and other required packages
  1355.   installed, as well as your modules loaded. Also, the IP addresses,
  1356.   gateway, and DNS should be all set on the OTHER machines.
  1357.  
  1358.   Now, the only thing left to do is to use the IP firewalling tools to
  1359.   forward appropriate packets to the appropriate machine:
  1360.  
  1361.  
  1362.  
  1363.        ** This can be accomplished in many different ways.  The
  1364.        following suggestions and examples worked for me, but you
  1365.        may have different ideas, please refer to section 4.4 and
  1366.        the ipchains(2.2.x) / ipfwadm(2.0.x) manpages for details.
  1367.        **
  1368.  
  1369.  
  1370.  
  1371.  
  1372.        ** This section ONLY provides you with the bare minimum rule
  1373.        set to get IP Masquerade working while security issue is not
  1374.        being considered.  It is highly recomended that you spend
  1375.        some time to apply appropriate firewall rules to tighten
  1376.        security. **
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.   3.4.1.  Linux 2.2.x Kernels
  1388.  
  1389.  
  1390.   ipfwadm is no longer the tool for manipulating ipmasq rules for 2.2.x
  1391.   kernels, please use ipchains.
  1392.  
  1393.  
  1394.  
  1395.        ipchains -P forward DENY
  1396.        ipchains -A forward -s yyy.yyy.yyy.yyy/x -j MASQ
  1397.  
  1398.  
  1399.  
  1400.  
  1401.   where x is one of the following numbers according to the class of your
  1402.   subnet, and yyy.yyy.yyy.yyy is your network address.
  1403.  
  1404.  
  1405.        netmask         | x  | Subnet
  1406.        ~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
  1407.        255.0.0.0       | 8  | Class A
  1408.        255.255.0.0     | 16 | Class B
  1409.        255.255.255.0   | 24 | Class C
  1410.        255.255.255.255 | 32 | Point-to-point
  1411.  
  1412.  
  1413.  
  1414.  
  1415.   You may also use the format yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx, where
  1416.   xxx.xxx.xxx.xxx specfies your subnet mask such as 255.255.255.0
  1417.  
  1418.   For example, if I'm on a class C subnet, I would have entered:
  1419.  
  1420.  
  1421.        ipchains -P forward DENY
  1422.        ipchains -A forward -s 192.168.1.0/24 -j MASQ
  1423.  
  1424.        or
  1425.  
  1426.        ipchains -P forward DENY
  1427.        ipchains -A forward -s 192.168.1.0/255.255.255.0 -j MASQ
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.   You can also do it on a per machine basis.  For example, if I want
  1434.   192.168.1.2 and 192.168.1.8 to have access to the Internet, but not
  1435.   the other machines, I would have entered:
  1436.  
  1437.  
  1438.        ipchains -P forward DENY
  1439.        ipchains -A forward -s 192.168.1.2/32 -j MASQ
  1440.        ipchains -A forward -s 192.168.1.8/32 -j MASQ
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.   Do not make your default policy be masquerading - otherwise someone
  1448.   who can manipulate their routing will be able to tunnel straight back
  1449.   through your gateway, using it to masquerade their identity!
  1450.  
  1451.  
  1452.  
  1453.   Again, you can add these lines to the /etc/rc.local files, one of the
  1454.   rc files you prefer, or do it manually every time you need IP
  1455.   Masquerade.
  1456.  
  1457.  
  1458.   For detail ipchains usage, please refer to the Linux IPCHAINS HOWTO
  1459.   <http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-HOWTO.html>
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.   3.4.2.  Linux 2.0.x Kernels
  1466.  
  1467.  
  1468.  
  1469.  
  1470.        ipfwadm -F -p deny
  1471.        ipfwadm -F -a m -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
  1472.  
  1473.        or
  1474.  
  1475.        ipfwadm -F -p deny
  1476.        ipfwadm -F -a masquerade -S yyy.yyy.yyy.yyy/x -D 0.0.0.0/0
  1477.  
  1478.  
  1479.  
  1480.  
  1481.   where x is one of the following numbers according to the class of your
  1482.   subnet, and yyy.yyy.yyy.yyy is your network address.
  1483.  
  1484.  
  1485.        netmask         | x  | Subnet
  1486.        ~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~
  1487.        255.0.0.0       | 8  | Class A
  1488.        255.255.0.0     | 16 | Class B
  1489.        255.255.255.0   | 24 | Class C
  1490.        255.255.255.255 | 32 | Point-to-point
  1491.  
  1492.  
  1493.  
  1494.  
  1495.   You may also use the format yyy.yyy.yyy.yyy/xxx.xxx.xxx.xxx, where
  1496.   xxx.xxx.xxx.xxx specfies your subnet mask such as 255.255.255.0
  1497.  
  1498.  
  1499.   For example, if I'm on a class C subnet, I would have entered:
  1500.  
  1501.  
  1502.        ipfwadm -F -p deny
  1503.        ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
  1504.  
  1505.  
  1506.  
  1507.  
  1508.   Since bootp request packets comes without valid IP's once the client
  1509.   knows nothing about it, for people with a bootp server in the
  1510.   masquerade/firewall machine it is necessary to use the following
  1511.   before the deny command:
  1512.  
  1513.  
  1514.        ipfwadm -I -a accept -S 0/0 68 -D 0/0 67 -W bootp_clients_net_if_name -P udp
  1515.  
  1516.  
  1517.  
  1518.  
  1519.   You can also do it on a per machine basis.  For example, if I want
  1520.   192.168.1.2 and 192.168.1.8 to have access to the Internet, but not
  1521.   the other machines, I would have entered:
  1522.  
  1523.  
  1524.        ipfwadm -F -p deny
  1525.        ipfwadm -F -a m -S 192.168.1.2/32 -D 0.0.0.0/0
  1526.        ipfwadm -F -a m -S 192.168.1.8/32 -D 0.0.0.0/0
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.   What appears to be a common mistake is to make the first command be
  1533.   this
  1534.  
  1535.   ipfwadm -F -p masquerade
  1536.  
  1537.  
  1538.   Do not make your default policy be masquerading - otherwise someone
  1539.   who can manipulate their routing will be able to tunnel straight back
  1540.   through your gateway, using it to masquerade their identity!
  1541.  
  1542.  
  1543.  
  1544.  
  1545.   Again, you can add these lines to the /etc/rc.local files, one of the
  1546.   rc files you prefer, or do it manually every time you need IP
  1547.   Masquerade.
  1548.  
  1549.   Please read section 4.4 for a detail guide on Ipfwadm
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.   3.5.  Testing IP Masquerade
  1558.  
  1559.   It's time to give it a try, after all these hard work. Make sure the
  1560.   connection of your Linux hosts to the Internet is okay.
  1561.  
  1562.   You can try browsing some 'INTERNET!!!' web sites on your OTHER
  1563.   machines, and see if you get it. I recommend using an IP address
  1564.   rather than a hostname on your first try, because your DNS setup may
  1565.   not be correct.
  1566.  
  1567.   For example, you can access the Linux Documentation Project site
  1568.   http://metalab.unc.edu/mdw/linux.html with an entry of
  1569.   http://152.19.254.81/mdw/linux.html
  1570.  
  1571.   If you see The Linux Documentation Project homepage, then
  1572.   congratulations! It's working! You may then try one with hostname
  1573.   entry, and then ping, telnet, ssh, ftp, Real Audio, True Speech,
  1574.   whatever supported by IP Masquerade.....
  1575.  
  1576.   So far, I have no trouble with the above settings, and it's full
  1577.   credit to the people who spend their time making this wonderful
  1578.   feature working.
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.   4.  Other IP Masquerade Issues and Software Support
  1586.  
  1587.  
  1588.  
  1589.   4.1.  Problems with IP Masquerade
  1590.  
  1591.   Some protocols will not currently work with masquerading because they
  1592.   either assume things about port numbers, or encode data in their data
  1593.   stream about addresses and ports - these latter protocols need
  1594.   specific proxies built into the masquerading code to make them work.
  1595.  
  1596.  
  1597.   4.2.  Incoming services
  1598.  
  1599.   Masquerading cannot handle incoming services at all.  There are a few
  1600.   ways of allowing them, but they are completely separate from
  1601.   masquerading, and are really part of standard firewall practice.
  1602.  
  1603.   If you do not require high levels of security then you can simply
  1604.   redirect ports.  There are various ways of doing this - I use a
  1605.   modified redir program (which I hope will be available from sunsite
  1606.   and mirrors soon). If you wish to have some level of authorisation on
  1607.   incoming connections then you can either use TCP wrappers or Xinetd on
  1608.   top of redir (0.7 or above) to allow only specific IP addresses
  1609.   through, or use some other tools.  The TIS Firewall Toolkit is a good
  1610.   place to look for tools and information.
  1611.  
  1612.   More details can be found at IP Masquerade Resource
  1613.   <http://ipmasq.cjb.net>.
  1614.  
  1615.   A section on more about forwarding services will be added soon.
  1616.  
  1617.  
  1618.  
  1619.  
  1620.   4.3.  Supported Client Software and Other Setup Note
  1621.  
  1622.  
  1623.        ** The following list is not being maintained anymore.
  1624.        Please refer to this page
  1625.        <http://dijon.nais.com/~nevo/masq/> on applications that
  1626.        work thru Linux IP masquerading and IP Masquerade Resource
  1627.        <http://ipmasq.cjb.net/> for more detail. **
  1628.  
  1629.  
  1630.   Generally, application that uses TCP and UDP should work.  If you have
  1631.   any suggestion, hints, or questions about applications with IP
  1632.   Masquerade, please visit this page on applications that work thru
  1633.   Linux IP masquerading <http://dijon.nais.com/~nevo/masq/> by Lee Nevo.
  1634.  
  1635.  
  1636.   4.3.1.  Clients that Work
  1637.  
  1638.   General Clients
  1639.  
  1640.      HTTP
  1641.         all supported platforms, surfing the web
  1642.  
  1643.      POP & SMTP
  1644.         all supported platforms, email client
  1645.  
  1646.      Telnet
  1647.         all supported platforms, remote session
  1648.  
  1649.      FTP
  1650.         all supported platforms, with ip_masq_ftp.o module (not all
  1651.         sites work with certain clients; e.g. some sites cannot be
  1652.         reached using ws_ftp32 but works with netscape)
  1653.  
  1654.      Archie
  1655.         all supported platforms, file searching client (not all archie
  1656.         clients are supported)
  1657.  
  1658.      NNTP (USENET)
  1659.         all supported platforms, USENET news client
  1660.  
  1661.      VRML
  1662.         Windows(possibly all supported platforms), virtual reality
  1663.         surfing
  1664.  
  1665.      traceroute
  1666.         mainly UNIX based platforms, some variations may not work
  1667.  
  1668.      ping
  1669.         all platforms, with ICMP patch
  1670.  
  1671.      anything based on IRC
  1672.         all supported platforms, with ip_masq_irc.o modules
  1673.  
  1674.      Gopher client
  1675.         all supported platforms
  1676.  
  1677.      WAIS client
  1678.         all supported platforms
  1679.  
  1680.  
  1681.   Multimedia Clients
  1682.  
  1683.      Real Audio Player
  1684.         Windows, network streaming audio, with ip_masq_raudio module
  1685.         loaded
  1686.  
  1687.      True Speech Player 1.1b
  1688.         Windows, network streaming audio
  1689.  
  1690.      Internet Wave Player
  1691.         Windows, network streaming audio
  1692.  
  1693.      Worlds Chat 0.9a
  1694.         Windows, Client-Server 3D chat program
  1695.  
  1696.      Alpha Worlds
  1697.         Windows, Client-Server 3D chat program
  1698.  
  1699.      Internet Phone 3.2
  1700.         Windows, Peer-to-peer audio communications, people can reach you
  1701.         only if you initiate the call, but people cannot call you
  1702.  
  1703.      Powwow
  1704.         Windows, Peer-to-peer Text audio whiteboard communications,
  1705.         people can reach you only if you initiate the call, but people
  1706.         cannot call you
  1707.  
  1708.      CU-SeeMe
  1709.         all supported platforms, with cuseeme modules loaded, please see
  1710.         IP Masquerade Resource <http://ipmasq.cjb.net/> for detail
  1711.  
  1712.      VDOLive
  1713.         Windows, with vdolive patch
  1714.  
  1715.   Note: Some clients such as IPhone and Powwow may work even if you're
  1716.   not the one who initiate the call by using ipautofw package (refer to
  1717.   section 4.6)
  1718.  
  1719.  
  1720.   Other Clients
  1721.  
  1722.      NCSA Telnet 2.3.08
  1723.         DOS, a suite containing telnet, ftp, ping, etc.
  1724.  
  1725.      PC-anywhere for windows 2.0
  1726.         MS-Windows, Remotely controls a PC over TCP/IP, only work if it
  1727.         is a client but not a host
  1728.  
  1729.      Socket Watch
  1730.         uses ntp - network time protocol
  1731.  
  1732.      Linux net-acct package
  1733.         Linux, network administration-account package
  1734.  
  1735.  
  1736.   4.3.2.  Clients that do not Work
  1737.  
  1738.  
  1739.  
  1740.      Intel Internet Phone Beta 2
  1741.         Connects but voice travels one way (out) Traffic only
  1742.  
  1743.      Intel Streaming Media Viewer Beta 1
  1744.         Cannot connect to server
  1745.  
  1746.      Netscape CoolTalk
  1747.         Cannot connect to opposite side
  1748.  
  1749.      talk,ntalk
  1750.         will not work - requires a kernel proxy to be written.
  1751.  
  1752.      WebPhone
  1753.         Cannot work at present (it makes invalid assumptions about
  1754.         addresses).
  1755.  
  1756.      X  Untested, but I think it cannot work unless someone builds an X
  1757.         proxy, which is probably an external program to the masquerading
  1758.         code.  One way of making this work is to use ssh as the link and
  1759.         use the internal X proxy of that to make things work!
  1760.  
  1761.  
  1762.  
  1763.  
  1764.   4.3.3.  Platforms/OS Tested as on OTHER machines
  1765.  
  1766.  
  1767.  
  1768.   ╖  Linux
  1769.  
  1770.   ╖  Solaris
  1771.  
  1772.   ╖  Windows 95
  1773.  
  1774.   ╖  Windows NT (both workstation and server)
  1775.  
  1776.   ╖  Windows For Workgroup 3.11 (with TCP/IP package)
  1777.  
  1778.   ╖  Windows 3.1 (with Chameleon package)
  1779.  
  1780.   ╖  Novel 4.01 Server
  1781.  
  1782.  
  1783.   ╖  OS/2 (including Warp v3)
  1784.  
  1785.   ╖  Macintosh OS (with MacTCP or Open Transport)
  1786.  
  1787.   ╖  DOS (with NCSA Telnet package, DOS Trumpet works partially)
  1788.  
  1789.   ╖  Amiga (with AmiTCP or AS225-stack)
  1790.  
  1791.   ╖  VAX Stations 3520 and 3100 with UCX (TCP/IP stack for VMS)
  1792.  
  1793.   ╖  Alpha/AXP with Linux/Redhat
  1794.  
  1795.   ╖  SCO Openserver (v3.2.4.2 and 5)
  1796.  
  1797.   ╖  IBM RS/6000 running AIX
  1798.  
  1799.   Basically all OS platforms support TCP/IP and give you the option to
  1800.   specify the gateway/router should work with IP Masquerade.
  1801.  
  1802.  
  1803.   4.4.  IP Firewall Administration (ipfwadm)
  1804.  
  1805.   This section provides a more in-depth guide on using ipfwadm.
  1806.  
  1807.   This is a setup for a firewall/masquerade system behind a PPP link
  1808.   with a static PPP address follows. Trusted interface is 192.168.255.1,
  1809.   PPP interface has been changed to protect the guilty :).  I listed
  1810.   each incoming and outgoing interface individually to catch IP spoofing
  1811.   as well as stuffed routing and/or masquerading. Also anything not
  1812.   explicitly allowed is forbidden!
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.   #!/bin/sh
  1850.   #
  1851.   # /etc/rc.d/rc.firewall, define the firewall configuration, invoked from
  1852.   # rc.local.
  1853.   #
  1854.  
  1855.   PATH=/sbin:/bin:/usr/sbin:/usr/bin
  1856.  
  1857.   # testing, wait a bit then clear all firewall rules.
  1858.   # uncomment following lines if you want the firewall to automatically
  1859.   # disable after 10 minutes.
  1860.   # (sleep 600; \
  1861.   # ipfwadm -I -f; \
  1862.   # ipfwadm -I -p accept; \
  1863.   # ipfwadm -O -f; \
  1864.   # ipfwadm -O -p accept; \
  1865.   # ipfwadm -F -f; \
  1866.   # ipfwadm -F -p accept; \
  1867.   # ) &
  1868.  
  1869.   # Incoming, flush and set default policy of deny. Actually the default policy
  1870.   # is irrelevant because there is a catch all rule with deny and log.
  1871.   ipfwadm -I -f
  1872.   ipfwadm -I -p deny
  1873.   # local interface, local machines, going anywhere is valid
  1874.   ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
  1875.   # remote interface, claiming to be local machines, IP spoofing, get lost
  1876.   ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
  1877.   # remote interface, any source, going to permanent PPP address is valid
  1878.   ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D
  1879.   your.static.PPP.address/32
  1880.   # loopback interface is valid.
  1881.   ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
  1882.   # catch all rule, all other incoming is denied and logged. pity there is no
  1883.   # log option on the policy but this does the job instead.
  1884.   ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
  1885.  
  1886.   # Outgoing, flush and set default policy of deny. Actually the default policy
  1887.   # is irrelevant because there is a catch all rule with deny and log.
  1888.   ipfwadm -O -f
  1889.   ipfwadm -O -p deny
  1890.   # local interface, any source going to local net is valid
  1891.   ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
  1892.   # outgoing to local net on remote interface, stuffed routing, deny
  1893.   ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
  1894.   # outgoing from local net on remote interface, stuffed masquerading, deny
  1895.   ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
  1896.   # outgoing from local net on remote interface, stuffed masquerading, deny
  1897.   ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
  1898.   # anything else outgoing on remote interface is valid
  1899.   ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D
  1900.   0.0.0.0/0
  1901.   # loopback interface is valid.
  1902.   ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
  1903.   # catch all rule, all other outgoing is denied and logged. pity there is no
  1904.   # log option on the policy but this does the job instead.
  1905.   ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
  1906.  
  1907.   # Forwarding, flush and set default policy of deny. Actually the default policy
  1908.   # is irrelevant because there is a catch all rule with deny and log.
  1909.   ipfwadm -F -f
  1910.   ipfwadm -F -p deny
  1911.   # Masquerade from local net on local interface to anywhere.
  1912.   ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
  1913.   # catch all rule, all other forwarding is denied and logged. pity there is no
  1914.   # log option on the policy but this does the job instead.
  1915.   ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o
  1916.  
  1917.  
  1918.  
  1919.   You can block traffic to a particular site using the -I, -O or -F.
  1920.   Remember that the set of rules are scanned top to bottom and -a means
  1921.   "append" to the existing set of rules so any restrictions need to come
  1922.   before global rules. For example (and untested) :-
  1923.  
  1924.   Using -I rules. Probably the fastest but it only stops the local
  1925.   machines, the firewall itself can still access the "forbidden" site.
  1926.   Of course you might want to allow that combination.
  1927.  
  1928.  
  1929.  
  1930.   ... start of -I rules ...
  1931.   # reject and log local interface, local machines going to 204.50.10.13
  1932.   ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
  1933.   # local interface, local machines, going anywhere is valid
  1934.   ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
  1935.   ... end of -I rules ...
  1936.  
  1937.  
  1938.  
  1939.  
  1940.   Using -O rules. Slowest because the packets go through masquerading
  1941.   first but this rule even stops the firewall accessing the forbidden
  1942.   site.
  1943.  
  1944.  
  1945.   ... start of -O rules ...
  1946.   # reject and log outgoing to 204.50.10.13
  1947.   ipfwadm -O -a reject -V your.static.PPP.address -S your.static.PPP.address/32 -D
  1948.   204.50.10.13/32 -o
  1949.   # anything else outgoing on remote interface is valid
  1950.   ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D
  1951.   0.0.0.0/0
  1952.   ... end of -O rules ...
  1953.  
  1954.  
  1955.  
  1956.   Using -F rules. Probably slower than -I and this still only stops
  1957.   masqueraded machines (i.e. internal), firewall can still get to
  1958.   forbidden site.
  1959.  
  1960.  
  1961.   ... start of -F rules ...
  1962.   # Reject and log from local net on PPP interface to 204.50.10.13.
  1963.   ipfwadm -F -a reject -W ppp0 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
  1964.   # Masquerade from local net on local interface to anywhere.
  1965.   ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
  1966.   ... end of -F rules ...
  1967.  
  1968.  
  1969.  
  1970.   No need for a special rule to allow 192.168.0.0/16 to go to
  1971.   204.50.11.0, it is covered by the global rules.
  1972.  
  1973.   There is more than one way of coding the interfaces in the above
  1974.   rules.  For example instead of -V 192.168.255.1 you can code -W eth0,
  1975.   instead of -V your.static.PPP.address you can use -W ppp0. Personal
  1976.   choice and documentation more than anything.
  1977.  
  1978.  
  1979.  
  1980.  
  1981.   4.5.  IP Firewalling Chains (ipchains)
  1982.  
  1983.   This is the firewall ruleset manipulation tool primarily intended for
  1984.   2.2.x kernels (there is a patch for this to work on 2.0.x).
  1985.  
  1986.   We will update this section to give several examples on ipchains usage
  1987.   soon.
  1988.  
  1989.   See the Linux IP Firewalling Chains page
  1990.   <http://www.rustcorp.com/linux/ipchains/> and  Linux IPCHAINS HOWTO
  1991.   <http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-HOWTO.html> for detail.
  1992.  
  1993.  
  1994.  
  1995.  
  1996.   4.6.  IP Masquerade and Demand-Dial-Up
  1997.  
  1998.  
  1999.   1. If you would like to setup your network to automatically dial up
  2000.      the Internet, the diald demand dial-up package will be of great
  2001.      utility.
  2002.  
  2003.   2. To setup the diald, please check out the Setting Up Diald for Linux
  2004.      Page <http://home.pacific.net.sg/~harish/diald.config.html>
  2005.  
  2006.   3. Once diald and IP masq have been setup, you can go to any of the
  2007.      client machines and initiate a web, telnet or ftp session.
  2008.  
  2009.   4. Diald will detect the incoming request, then dial up your ISP and
  2010.      establish the connection.
  2011.  
  2012.   5. There is a timeout that will occur with the first connection.  This
  2013.      is inevitable if you are using analog modems.  The time taken to
  2014.      establish the modem link and the PPP connections will cause your
  2015.      client program to timeout.  This can be avoided if you are using an
  2016.      ISDN connection.  All you need to do is to terminate the current
  2017.      process on the client and restart it.
  2018.  
  2019.  
  2020.  
  2021.   4.7.  IPautofw Packet Fowarder
  2022.  
  2023.   IPautofw <ftp://ftp.netis.com/pub/members/rlynch/ipautofw.tar.gz> is a
  2024.   generic forwarder of TCP and UDP for Linux masquerading.  Generally to
  2025.   utilize a package which requires UDP, a specific ip_masq module needs
  2026.   to be loaded; ip_masq_raudio, ip_masq_cuseeme, ...  Ipautofw acts in a
  2027.   more generic manner, it will forward any type of traffic including
  2028.   those which the application specific modules will not forward.  This
  2029.   may create a security hole if not administered correctly.
  2030.  
  2031.  
  2032.  
  2033.   4.8.  CU-SeeMe and Linux IP-Masquerade Teeny How-To
  2034.  
  2035.  
  2036.   Provided by Michael Owings <mailto:mikey@swampgas.com>.
  2037.  
  2038.  
  2039.   4.8.1.  Introduction
  2040.  
  2041.  
  2042.  
  2043.        This section will explain the necessary steps to get CU-
  2044.        SeeMe (both the Cornell and White Pine versions) working
  2045.        together with Linux's IP-Masquerade.
  2046.  
  2047.   CU-SeeMe is a desktop video conferencing package available for both
  2048.   Windows and Macintosh clients. A free version is available from
  2049.   Cornell University <http://cu-seeme.cornell.edu>. A significantly
  2050.   enhanced commercial version can be obtained from White Pine Software
  2051.   <http://www.wpine.com>.
  2052.  
  2053.   IP Masquerading allows one or more workstations on a LAN to
  2054.   "masquerade" behind a single Linux machine connected to the Internet.
  2055.   The workstations on the LAN can access the Internet almost
  2056.   transparently even without valid IP addresses. The Linux box rewrites
  2057.   outgoing packets from the LAN to the Internet in such a way that they
  2058.   they appear to originate from the Linux machine. Response packets
  2059.   coming back in are re-written and routed back to the correct
  2060.   workstations on the LAN. This arrangement allows many Internet
  2061.   applications to run transparently from the lan workstations. For some
  2062.   other applications (such as CU-SeeMe), however, the Linux masquerade
  2063.   code needs a little help to route packets properly. This help usually
  2064.   comes in the form of special kernel loadable modules. For more
  2065.   information on IP-Masquerading, see The Linux IP Masquerading Website
  2066.   <http://www.indyramp.com/masq/>.
  2067.  
  2068.  
  2069.   4.8.2.  Getting It Running
  2070.  
  2071.  
  2072.   First you will need a properly configured kernel. You should have full
  2073.   support compiled in for both IP-Masquerading and IP AutoForwarding. IP
  2074.   Autoforwarding is available as a config option on kernels 2.0.30 and
  2075.   later -- you will need to patch earlier kernels. See the Linux IP
  2076.   Masquerade Resource <http://ipmasq.cjb.net> for pointers to the IP-
  2077.   Autoforwarding material.
  2078.  
  2079.   Next, you will need to get the latest version of ip_masq_cuseeme.c.
  2080.   The latest version is available via anon ftp from
  2081.   ftp://ftp.swampgas.com/pub/cuseeme/ip_masq_cuseeme.c. This new module
  2082.   will also be rolled up into the kernel 2.0.31 distribution. You should
  2083.   replace the version in your kernel distribution with this new version.
  2084.   ip_masq_cuseeme.c normally resides in net/ipv4 off of the Linux source
  2085.   tree. You should compile and install this module.
  2086.  
  2087.   Now, you should set up ip autoforwarding for udp ports 7648-7649 as
  2088.   follows:
  2089.  
  2090.  
  2091.   ipautofw -A -r udp 7648 7649 -c udp 7648 -u
  2092.  
  2093.   OR
  2094.  
  2095.   ipautofw -A -r udp 7648 7649 -h www.xxx.yyy.zzz
  2096.  
  2097.  
  2098.  
  2099.   The first form will allow calls to/from the last workstation to use
  2100.   port 7648 (the primary cu-seeme port) . The second invocation of
  2101.   ipautofw will allow cu-seeme calls only to/from www.xxx.yyy.zzz. I
  2102.   prefer the former invocation, as it is more flexible because there is
  2103.   no need to specify a fixed workstation IP. However, this invocation
  2104.   also requires a workstation to have previously placed an outgoing call
  2105.   in order to receive incoming calls.
  2106.  
  2107.   Note that both invocations leave UDP ports 7648-7649 on the client
  2108.   machines open to the outside world -- and while this does not pose an
  2109.   enormous security hazard, you should use appropriate caution.
  2110.  
  2111.   Finally, load up the new ip_masq_cuseeme module as follows:
  2112.  
  2113.   modprobe ip_masq_cuseeme
  2114.  
  2115.  
  2116.  
  2117.   You should now be able to fire up CU-SeeMe from a masqueraded machine
  2118.   on your lan and connect to a remote reflector, or another CU-Seeme
  2119.   user. You should also be able to get incoming calls. Note that outside
  2120.   callers should call using the ip of your linux gateway, NOT the
  2121.   masqueraded workstation.
  2122.  
  2123.  
  2124.   4.8.3.  Restrictions/Caveats
  2125.  
  2126.  
  2127.  
  2128.   4.8.3.1.  Password Protected Reflectors
  2129.  
  2130.   No way, no how. Uh-uh. Negatory. White Pine uses the source IP (as
  2131.   computed by the client program) to encrypt the password prior to
  2132.   transmission. Since we have to rewrite this address, the reflector
  2133.   ends up using the wrong source IP to decrypt it, which yields an
  2134.   invalid password. This will only be fixed if White Pine changes their
  2135.   password encryption scheme (which I have suggested), or if they would
  2136.   be willing to make their password encryption routines public so I
  2137.   could add in a fix to ip_masq_cuseeme. While chances for the latter
  2138.   solution are vanishingly small, I would encourage anyone reading this
  2139.   to contact White Pine and suggest the former approach. As the traffic
  2140.   on this page is relatively high, I suspect we could generate enough
  2141.   email to get this problem moved up on White Pine's list of priorities.
  2142.  
  2143.   Thanx to Thomas Griwenka for bringing this to my attention.
  2144.  
  2145.  
  2146.   4.8.3.2.  Running a Reflector
  2147.  
  2148.   You should not attempt to run a reflector on the same machine where
  2149.   you have ip_masq_cuseeme and ipautoforwarding for port 7648 loaded. It
  2150.   simply won't work, as both setups require port 7648. Either run the
  2151.   reflector on another Internet-reachable host, or unload CU-SeeMe
  2152.   client support prior to running the reflector.
  2153.  
  2154.  
  2155.   4.8.3.3.  Multiple CU-SeeMe Users
  2156.  
  2157.   You cannnot have multiple simultaneous CU-SeeMe users on the LAN at
  2158.   this time. This is due largely to CU-SeeMe's stubborn insistence on
  2159.   always sending to port 7648, which can only be redirected (easily) to
  2160.   one LAN workstation at a time.
  2161.  
  2162.   Using the -c (control port) invocation of ipautofw above, you can
  2163.   avoid to having to specify a fixed workstation address allowed to use
  2164.   CU-SeeMe -- the first workstation to send anything out on control port
  2165.   7648 will be designated to receive traffic on 7648-7649. 5 minutes or
  2166.   so after this workstation has been inactive on port 7648, another
  2167.   workstation can come along and use CU-SeeMe.
  2168.  
  2169.  
  2170.   4.8.3.4.  Help on Setting up CU-SeeMe
  2171.  
  2172.  
  2173.   Feel free to email any comments or questions to mikey@swampgas.com. Or
  2174.   if you wish, you can call me up via CU-SeeMe
  2175.   <http://www.swampgas.com/vc/vc.htm>.
  2176.  
  2177.  
  2178.  
  2179.   4.9.  Other Related Tools
  2180.  
  2181.   We will be updating this section soon to cover more ipmasq related
  2182.   tools such as ipportfw and masqadmin.
  2183.  
  2184.  
  2185.  
  2186.  
  2187.   5.  Frequently Asked Questions
  2188.  
  2189.  
  2190.   If you can think of any useful FAQ, please send it to
  2191.   ambrose@writeme.com and dranch@trinnet.net.  Please clearly state the
  2192.   question and an appropriate answer.  Thank you!
  2193.  
  2194.  
  2195.  
  2196.   5.1.  Does IP Masquerade work with dynamically assigned IP?
  2197.  
  2198.   Yes, it works with dynamic IP assigned by your ISP, usually by a DHCP
  2199.   server.  As long as you have an valid Internet IP address, it should
  2200.   work.  Of course, static IP works too.
  2201.  
  2202.  
  2203.   5.2.  Can I use cable modem, DSL, satellite link, etc. to connect to
  2204.   the Internet and use IP Masquerade?
  2205.  
  2206.   Sure, as long as Linux supports that network interface, it should
  2207.   work.
  2208.  
  2209.  
  2210.   5.3.  What applications are supported with IP Masquerade?
  2211.  
  2212.   It is very difficult to keep track of a list of "working
  2213.   applications".  However, most of the normal Internet applications are
  2214.   supported, such as browsing the Internet (Netscape, MSIE, etc.), ftp
  2215.   (such as WS_FTP), Real Audio, telnet, SSH, POP3 (incoming email -
  2216.   Pine, Outlook), SMTP (outgoing email), etc.
  2217.  
  2218.   Applications involving more complicated protocols or special
  2219.   connection methods such as video conferencing software need special
  2220.   helper tools.
  2221.  
  2222.   For more detail, please see this page about applications that work
  2223.   thru Linux IP masquerading <http://dijon.nais.com/~nevo/masq/> by Lee
  2224.   Nevo.
  2225.  
  2226.  
  2227.   5.4.  How can I get IP Masquerade running on Redhat, Debian, Slack¡
  2228.   ware, etc.?
  2229.  
  2230.   No matter what Linux distribution you got, the procedures for setting
  2231.   up IP Masquerade mentioned in this HOWTO should apply.  Some
  2232.   distributions may have GUI or special configuration files that make
  2233.   the setup easier.  We try our best to write the HOWTO as general as
  2234.   possible.
  2235.  
  2236.  
  2237.   5.5.  I've just upgraded to the 2.2.x kernels, why is IP Masquerade
  2238.   not working?
  2239.  
  2240.   There are several things you should check assuming your Linux ipmasq
  2241.   box already have proper connection to the Internet and your LAN:
  2242.  
  2243.  
  2244.  
  2245.   ╖  Make sure you have the necessary features and modules are compiled
  2246.      and loaded.  See earlier sections for detail.
  2247.  
  2248.   ╖  Check /usr/src/linux/Documentation/Changes and make sure you have
  2249.      the minimal requirement for the network tools installed.
  2250.  
  2251.   ╖  Make sure you have enabled IP forwarding.  Try running echo "1" >
  2252.      /proc/sys/net/ipv4/ip_forwarding.
  2253.  
  2254.   ╖  You should use ipchains <http://www.rustcorp.com/linux/ipchains/>
  2255.      to manipulate ipmasq and firewalling rules.
  2256.  
  2257.   ╖  Go through all setup and configuration again!  A lot of time it's
  2258.      just a typo or a stupid mistake you oversee.
  2259.  
  2260.  
  2261.   5.6.  I've just upgraded to the kernels 2.0.30 or later, why is IP
  2262.   Masquerade not working?
  2263.  
  2264.   There are several things you should check assuming your Linux ipmasq
  2265.   box already have proper connection to the Internet and your LAN:
  2266.  
  2267.  
  2268.   ╖  Make sure you have the necessary features and modules are compiled
  2269.      and loaded.  See earlier sections for detail.
  2270.  
  2271.   ╖  Check /usr/src/linux/Documentation/Changes and make sure you have
  2272.      the minimal requirement for the network tools installed.
  2273.  
  2274.   ╖  Make sure you have enabled IP forwarding.  Try running echo "1" >
  2275.      /proc/sys/net/ipv4/ip_forward.
  2276.  
  2277.   ╖  You should use ipfwadm <http://www.xos.nl/> to manipulate ipmasq
  2278.      and firewalling rules.  You need to patch the 2.0.x kernels to use
  2279.      ipchains.
  2280.  
  2281.   ╖  Go through all setup and configuration again!  A lot of time it's
  2282.      just a typo or a stupid mistake you oversee.
  2283.  
  2284.  
  2285.   5.7.  I can't get IP Masquerade to work!  What options do I have for
  2286.   Windows Platform?
  2287.  
  2288.   Giving up a free, reliable, high performance solution that works on
  2289.   minimal hardware and pay a fortune for something that needs more
  2290.   hardware, lower performance and less reliable?  (IMHO.  And yes, I
  2291.   have real life experience with these ;-)
  2292.  
  2293.   Okay, it's your call.  Do a web search on MS Proxy Server, Wingate, or
  2294.   see www.winfiles.com.  Don't tell anyone I sent you.
  2295.  
  2296.  
  2297.   5.8.  I've checked all my configurations, I still can't get IP Mas¡
  2298.   querade to work.  What should I do?
  2299.  
  2300.  
  2301.   ╖  Stay calm.  Get yourself a cup of tea and have a rest, then try the
  2302.      suggestions mentioned below.
  2303.  
  2304.   ╖  Check the IP Masquerade Mailing List Archive
  2305.      <http://home.indyramp.com/lists/masq/>, most likely your answer is
  2306.      there waiting for you.
  2307.  
  2308.   ╖  Post your question to the IP Masquerade Mailing List, see next the
  2309.      FAQ for deatil.  Please only try this if you cannot find the answer
  2310.      from the mailing list archive.
  2311.   ╖  Post your question to related Linux networking newsgroup.
  2312.  
  2313.   ╖  Send email to ambrose@writeme.com and dranch@trinnet.net.   You
  2314.      have a better chance of getting a reply if you send to both of us.
  2315.      David is usually pretty good on replying, and I do not want to
  2316.      comment on my response time.
  2317.  
  2318.   ╖  Check your configurations again :-)
  2319.  
  2320.  
  2321.  
  2322.   5.9.  How do I join the IP Masquerade Mailing List?
  2323.  
  2324.   Join the Linux IP Masquerading mailing list by sending an email to
  2325.   masq-subscribe@indyramp.com.
  2326.  
  2327.   Subject and body of the message are IGNORED. This gives you every
  2328.   message on the list as it comes out. You are welcome to use this form
  2329.   if you need it, but if you can stand the digest, please choose it
  2330.   instead. The digest puts less of a load on the list servers. Note that
  2331.   you can only post from an account/address you are subscribed from.
  2332.  
  2333.   For more commands, email masq-help@tori.indyramp.com.
  2334.  
  2335.  
  2336.   5.10.  I want to help on IP Masquerade development.  What can I do?
  2337.  
  2338.   Join the Linux IP Masquerading DEVELOPERS list and ask the great
  2339.   developers there, by sending an email to masq-dev-
  2340.   subscribe@tori.indyramp.com (or for a digest format, use masq-dev-
  2341.   digest-subscribe@tori.indyramp.com).
  2342.  
  2343.   DON'T ask non IP Masquerade development related questions there!!!!
  2344.  
  2345.  
  2346.   5.11.  Where can I find more information on IP Masquerade?
  2347.  
  2348.   You can find more information on IP Masquerade at the Linux IP
  2349.   Masquerade Resource <http://ipmasq.cjb.net/> that David and I also
  2350.   maintained.  See section 6.2 for availability.
  2351.  
  2352.   You may also find more information at The Semi-Original Linux IP
  2353.   Masquerading Web Site <http://www.indyramp.com/masq/> maintained by
  2354.   Indyramp Consulting, who also provided the ipmasq mailing lists.
  2355.  
  2356.  
  2357.   5.12.  I want to translate this HOWTO to another language, what should
  2358.   I do?
  2359.  
  2360.   Make sure the lanaguage you want to translate to is not already
  2361.   covered by someone else, a list of available HOWTO translations is
  2362.   available at the Linux IP Masquerade Resource
  2363.   <http://ipmasq.cjb.net/>.
  2364.  
  2365.   Send an email to ambrose@writeme.com and I will send you the SGML
  2366.   source of the latest version of the HOWTO.
  2367.  
  2368.  
  2369.  
  2370.   5.13.  This HOWTO seems out of date, are you still maintaining it?
  2371.   Can you include more information on ...?  Are there any plans for mak¡
  2372.   ing this better?
  2373.  
  2374.   Yes, this HOWTO is still being maintained.  I'm guilty of being too
  2375.   busy working on two jobs and don't have much time to work on this, my
  2376.   apology.  However, with the addition of David Ranch as the HOWTO
  2377.   maintainer, things should improve.
  2378.  
  2379.   If you think of a topic that could be included in the HOWTO, please
  2380.   send email to me and David.  It will be even better if you can provide
  2381.   that information.  I and David will include the information into the
  2382.   HOWTO if it is appropriate.  And many thanks for your contributions.
  2383.  
  2384.   We have a lot of new ideas and plans for improving the HOWTO, such as
  2385.   case studies that will cover different network setup involving IP
  2386.   Masquerade, more on security, ipchains usage, ipfwadm/ipchains ruleset
  2387.   examples, more FAQs, more coverage on protocol and port forwarding
  2388.   utilities like masqadmin, etc.  If you think you can help, please do.
  2389.   Thanks.
  2390.  
  2391.  
  2392.   5.14.  I got IP Masquerade working, it'' great!  I want to thank you
  2393.   guys, what can I do?
  2394.  
  2395.   Thank the developers and appreciate the time and effort they spent on
  2396.   this.  Send an email to us and let us know how happy you are.
  2397.   Introduce other people to Linux and help them when they have problems.
  2398.  
  2399.  
  2400.  
  2401.  
  2402.   6.  Miscellaneous
  2403.  
  2404.  
  2405.  
  2406.   6.1.  Useful Resources
  2407.  
  2408.  
  2409.   ╖  IP Masquerade Resource page <http://ipmasq.cjb.net/> should have
  2410.      enough information for setting up IP Masquerade
  2411.  
  2412.   ╖  IP masquerade mailing list archive
  2413.      <http://www.indyramp.com/masq/list/> contains some of the recent
  2414.      messages sent to the mailing list.
  2415.  
  2416.   ╖  This Linux IP Masquerade mini HOWTO <http://ipmasq.cjb.net/ipmasq-
  2417.      HOWTO.html> for kernel 2.2.x and 2.0.x
  2418.  
  2419.   ╖  IP Masquerade HOWTO for kernel 1.2.x <http://ipmasq.cjb.net/ipmasq-
  2420.      HOWTO-1.2.x.txt> if you're using an older kernel
  2421.  
  2422.   ╖  IP masquerade FAQ <http://www.indyramp.com/masq/ip_masquerade.txt>
  2423.      has some general information
  2424.  
  2425.   ╖  Linux IPCHAINS HOWTO <http://metalab.unc.edu/mdw/HOWTO/IPCHAINS-
  2426.      HOWTO.html> and http://www.rustcorp.com/linux/ipchains/ has lots of
  2427.      information for ipchains usage, as well as source and binaries for
  2428.      the ipchains.
  2429.  
  2430.   ╖  X/OS Ipfwadm page <http://www.xos.nl/linux/ipfwadm/> contains
  2431.      sources, binaries, documentation, and other information about the
  2432.      ipfwadm package
  2433.  
  2434.   ╖  A page on applications that work thru Linux IP masquerading
  2435.      <http://dijon.nais.com/~nevo/masq/> by Lee Nevo provides tips and
  2436.      tricks on getting applications to work with IP Masquerade.
  2437.  
  2438.   ╖  The LDP Network Administrator's Guide
  2439.      <http://metalab.unc.edu/mdw/LDP/nag/nag.html> is a must for
  2440.      beginners trying to set up a network.
  2441.  
  2442.  
  2443.   ╖  Trinity OS Doc
  2444.      <http://www.ecst.csuchico.edu/~dranch/LINUX/TrinityOS.wri>, a very
  2445.      compreshensive guide on Linux networking.
  2446.  
  2447.   ╖  Linux NET-3 HOWTO
  2448.      <http://metalab.unc.edu/mdw/HOWTO/NET-3-HOWTO.html> also has lots
  2449.      of useful information about Linux networking
  2450.  
  2451.   ╖  Linux ISP Hookup HOWTO <http://metalab.unc.edu/mdw/HOWTO/ISP-
  2452.      Hookup-HOWTO.html> and Linux PPP HOWTO
  2453.      <http://metalab.unc.edu/mdw/HOWTO/PPP-HOWTO.html> gives you
  2454.      information on how to connect your Linux host to the Internet
  2455.  
  2456.   ╖  Linux Ethernet-Howto <http://metalab.unc.edu/mdw/HOWTO/Ethernet-
  2457.      HOWTO.html> is a good source of information about setting up a LAN
  2458.      running ethernet
  2459.  
  2460.   ╖  You may also be interested in Linux Firewalling and Proxy Server
  2461.      HOWTO <http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html>
  2462.  
  2463.   ╖  Linux Kernel HOWTO <http://metalab.unc.edu/mdw/HOWTO/Kernel-
  2464.      HOWTO.html> will guide you through the kernel compilation process
  2465.  
  2466.   ╖  Other Linux HOWTOs <http://metalab.unc.edu/mdw/HOWTO/HOWTO-
  2467.      INDEX-3.html> such as Kernel HOWTO
  2468.  
  2469.   ╖  Posting to the USENET newsgroup: comp.os.linux.networking
  2470.  
  2471.  
  2472.  
  2473.   6.2.  Linux IP Masquerade Resource
  2474.  
  2475.  
  2476.   The Linux IP Masquerade Resource  <http://ipmasq.cjb.net/> is a
  2477.   website dedicated to Linux IP Masquerade information also maintained
  2478.   by David Ranch and I.  It usually has the latest information related
  2479.   to IP Masquerade and may have information that is not being included
  2480.   in the HOWTO.
  2481.  
  2482.   You may find the Linux IP Masquerade Resource at the following
  2483.   locations:
  2484.  
  2485.   ╖  http://ipmasq.cjb.net/, Primary Site, redirected to
  2486.      http://www.tor.shaw.wave.ca/~ambrose/
  2487.  
  2488.   ╖  http://ipmasq2.cjb.net/, Secondary Site, redirected to
  2489.      http://www.geocities.com/SiliconValley/Heights/2288/
  2490.  
  2491.  
  2492.  
  2493.   6.3.  Thanks to
  2494.  
  2495.  
  2496.   ╖  David Ranch, dranch@trinnet.net
  2497.      help maintaining this HOWTO and the Linux IP Masquerade Resource
  2498.      Page, ..., too many to list here :-)
  2499.  
  2500.   ╖  Michael Owings, mikey@swampgas.com
  2501.      on providing section for CU-SeeMe and Linux IP-Masquerade Teeny
  2502.      How-To
  2503.  
  2504.   ╖  Gabriel Beitler, gbeitler@aciscorp.com
  2505.      on providing section 3.3.8 (setting up Novel)
  2506.  
  2507.   ╖  Ed Doolittle, dolittle@math.toronto.edu
  2508.      on suggestion to -V option in ipfwadm command for improved security
  2509.   ╖  Matthew Driver, mdriver@cfmeu.asn.au
  2510.      on helping extensively on this HOWTO, and providing section 3.3.1
  2511.      (setting up Windows 95)
  2512.  
  2513.   ╖  Ken Eves, ken@eves.com
  2514.      on the FAQ that provides invaluable information for this HOWTO
  2515.  
  2516.   ╖  Ed. Lott, edlott@neosoft.com
  2517.      for a long list of tested system and software
  2518.  
  2519.   ╖  Nigel Metheringham, Nigel.Metheringham@theplanet.net
  2520.      on contributing his version of IP Packet Filtering and IP
  2521.      Masquerading HOWTO, which make this HOWTO a better and technical
  2522.      in-depth document
  2523.      section 4.1, 4.2, and others
  2524.  
  2525.   ╖  Keith Owens, kaos@ocs.com.au
  2526.      on providing an excellent guide on ipfwadm section 4.2
  2527.      on correction to ipfwadm -deny option which avoids a security hole,
  2528.      and clarified the status of ping over IP Masquerade
  2529.  
  2530.   ╖  Rob Pelkey, rpelkey@abacus.bates.edu
  2531.      on providing section 3.3.6 and 3.3.7 (setting up MacTCP and Open
  2532.      Transport)
  2533.  
  2534.   ╖  Harish Pillay, h.pillay@ieee.org
  2535.      on providing section 4.5 (dial-on-demand using diald)
  2536.  
  2537.   ╖  Mark Purcell, purcell@rmcs.cranfield.ac.uk
  2538.      on providing section 4.6 (IPautofw)
  2539.  
  2540.   ╖  Ueli Rutishauser, rutish@ibm.net
  2541.      on providing section 3.3.9 (setting up OS/2 Warp)
  2542.  
  2543.   ╖  John B. (Brent) Williams, forerunner@mercury.net
  2544.      on providing section 3.3.7 (setting up Open Transport)
  2545.  
  2546.   ╖  Enrique Pessoa Xavier, enrique@labma.ufrj.br
  2547.      on the bootp setup suggestion
  2548.  
  2549.   ╖  developers of IP Masquerade for this great feature
  2550.  
  2551.  
  2552.        ╖  Delian Delchev, delian@wfpa.acad.bg
  2553.  
  2554.        ╖  Nigel Metheringham, Nigel.Metheringham@theplanet.net
  2555.  
  2556.        ╖  Keith Owens, kaos@ocs.com.au
  2557.  
  2558.        ╖  Jeanette Pauline Middelink, middelin@polyware.iaf.nl
  2559.  
  2560.        ╖  David A. Ranch, trinity@value.net
  2561.  
  2562.        ╖  Miquel van Smoorenburg, miquels@q.cistron.nl
  2563.  
  2564.        ╖  Jos Vos, jos@xos.nl
  2565.  
  2566.        ╖  Paul Russell, Paul.Russell@rustcorp.com.au
  2567.  
  2568.        ╖  And more who I may have failed to mention here (please
  2569.           let me know)
  2570.  
  2571.  
  2572.  
  2573.   ╖  all users sending feedback and suggestion to the mailing list,
  2574.      especially the ones who reported errors in the document and the
  2575.      clients that are supported and not supported
  2576.  
  2577.   ╖  I appologize if I have not included information that some fellow
  2578.      users sent me.  There are many suggestions and ideas sent to me,
  2579.      but I just do not have enough time to verify or I lost track of
  2580.      them.  I am trying my best to incorporate all the information sent
  2581.      to me into the HOWTO.  I thank you for the effort, and I hope you
  2582.      understand my situation.
  2583.  
  2584.  
  2585.  
  2586.   6.4.  Reference
  2587.  
  2588.  
  2589.   ╖  IP masquerade FAQ by Ken Eves
  2590.  
  2591.   ╖  IP masquerade mailing list archive by Indyramp Consulting
  2592.  
  2593.   ╖  Ipfwadm page by X/OS
  2594.  
  2595.   ╖  Various networking related Linux HOWTOs
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.