• λ我爱Aspx >> Asp.Net >> 用Linux+IPChains代替Windows+WinGate
  • 用Linux+IPChains代替Windows+WinGate

  • :未知  Դ:internet  :2007-5-5 19:46:19  ؼ:
  • 用Linux+IPChains代替Windows+WinGate

    张中华(mike_z@21cn.com),2000.12.02

    任务:办公室有10台电脑,组成局域网,其中1台名为gate的机器配有ISDN卡,可拨号上网,另外9台机器也要上网,由gate机器做代理或网关,共享其ISDN设备。原来的方案是:gate机器上的操作系统是Win98,使用的代理软件是WinGate。现在,gate机器的操作系统换成了Linux,怎么让其它9台机器也能上网?

    经过尝试,我使用IPChains的IP伪装转发功能成功地做到了这一点。我的配置为:蓝点Linux 2.0,Kernel-2.2.16,isdn4linux v3.1pre1,上海贝尔生产的ISDN内置卡,型号为SBT6021。

    下面介绍具体做法。介绍顺序为:内核->ipchains的配置->其它机器的配置。

    0、 前提条件

    前提条件当然就是这台配有ISDN卡,安装了Linux的名为gate的机器,本身必须能够顺利拨号上网。我已做到了,具体操作过程写在我的另一篇文章《在Linux下使用ISDN拨号上网》中。

    1、 内核

    这个方案的原理是:由于这台gate机器建立拨号连接后,具有真正的IP地址,能够正常地访问Internet,而局域网内其它机器却没有真正的IP地址,不能象gate机器那样正常地访问Internet,解决办法就是由gate机器代劳其它机器的Internet访问请求,假装是它自己的。把这台gate机器作为局域网的网关,当它收到来自局域网内其它机器的请求数据包时,进行伪装,然后再转发出去;相应地,当伪装后发出去的数据包得到响应返回时,先对该响应数据包进行还原,再转交给回局域网内真正发出请求的那台机器。这种做法叫做IP Masquerade(IP伪装)。

    要Linux内核支持IP伪装这种功能,在编译内核时,必须选中下列选项:

    Network firewalls

    IP: firewalling

    IP: masquerading

    IP: ipportfw masq support

    IP: ipautofw masquerade support

    IP: ip fwmark masq-forwarding support

    IP: ICMP masquerading

    但我不必急于编译内核,如果现有的内核已经包含这些选项了,我又何必重复一遍呢。那我怎么知道现有内核是否已经包含这些选项了呢?看内核编译配置文件/usr/src/linux/.config(注意:文件名以"."开头的文件是隐藏文件,要用ls -a才可看到。)我看到其中有下面这7行内容,对应于刚才的7个选项:

    CONFIG_FIREWALL=y

    CONFIG_IP_FIREWALL=y

    CONFIG_IP_MASQUERADE=y

    CONFIG_IP_MASQUERADE_ICMP=y

    CONFIG_IP_MASQUERADE_IPAUTOFW=m

    CONFIG_IP_MASQUERADE_IPPORTFW=m

    CONFIG_IP_MASQUERADE_MFW=m

    Ҷƪл˵?
  • һƪCIH病毒原理的应用——物理内存的读写
    һƪ在Linux下使用ISDN拨号上网