在Linux上做个家用/办公室网络

Author: 李军胜 Date: 2001年 29期

#1?牐犚弧⒒镜耐缟柚?
  ?牐牸偕栉颐堑腖inux系统已经做好了上网配置,同时亦能在充当服务器的电脑上浏览资料,这时就可以设置你家的网络了。以下是家庭网络要遇到的情况,了解这些基本知识后,才能真正动手组建家庭网络。
  ?牐?1.对外的网络联接界面是DHCP(动态主机配置协议)的客户,虽然它没有固定的IP,只有对外的Gateway(网关)、DNS(域名服务器)等,但不会影响网关的功能。
  ?牐?2.对外的网络联接界面有固定的IP(例如i-Cable)或者ISP(Internet服务提供者),能提供长期连线服务,它提供的IP会固定数天后才转换一次。
  ?牐?3.对内的网络联接界面使用的C类IP地址,即192.168.0.1。
  ?牐牸俣?你需要的网络资料如下表:(^29041101a^)
  #1?牐牰⒂猛枷窠缑嫔柚猛?
  ?牐牽梢杂谩發inuxconf”(如果用RedHat Linux)进行设置。
  ?牐?1.以superuser(超级用户)的身份输入“linuxconf”命令将工具调出。选取“Config”→“Networking”→“Basic host Information”,在上面分别填入表1中的eth0及eth1资料。同时在“Module”(模块)栏填入ethernet 界面所需的参数。在“Networking”→“Client Tasks”→“Routing and Gateways”→“Set Defaults”,填入网关的IP,在下方按“Enable Routing(允许路由)”键。
  ?牐?2.在“Networking”→“Client Tasks”→“Name Server Specification(DNS)”处填入ISP提供的DNS。
  ?牐?3.如果你用上述PPP 时,也可以在“linuxconf” 中设置,在“linuxconf”中选择“PPP/SLIP/PLIP”,然后在“Configration”上按“Add”键,随后再选“PPP” (端对端协议),在其中填入资料,如电话号码,Modem Port(端口数值),再填上Login Name 和Password就成了,电脑会自动给你的“PPP”编号为“0”(即“PPP0”)。
  #1?牐犎⒆叭胄枰哪?樽魑阑鹎?
  ?牐爄pchain模块除了可作防火墙外,也是分享网络的一套实用工具。使用ipchain是在Kernel中建立ipmasquerading的模块。而因为要做网关,所以关于Routing(路由)、IPsharper亦需使用。
  ?牐牎咀ⅰ恳胹uperuser的身份进入/user/src/linux的目录,用“make menuconfig”或“make xconfig”,在选择完成后请存储设置:“make dep”,“make clear”及“make bzImage”。因为有模块的改动,所以同时要做“make modules”及“make modules_install”。你所编译的新模块将会放入/lib/modules/2.XX(与核心号码对应)的目录内。
  #1?牐犓摹⒂胕nsmod指令载入模块
  ?牐犛捎诮裉煊泻芏喾植际较低臣壕嫌没Ы魑氐确衿鳎哉庑┠?槎嗍壕は任没П嘁牒昧恕K栽诒嘁肭翱梢猿⑹越怯弥噶睢癷nsmod”装上看看。几个要用的模块分别是:①ip_masq_user②ip_masq_raudio③ip_masq_ftp④ip_masq_irc⑤ip_masq_vdoline。这些模块全放在你的/lib/modules/2.2XX/ipv4目录中。
  #1?牐犖濉⒓尤氡匦璧牟问?
  ?牐犎孟低吃谄舳惫疑仙鲜龅哪?椤G胗?/etc/rc.d/rc.local,rc.local是系统中最后的一个启动程序,只要用文字编辑加入下面的句子即可:
  ?牐?/sbin/insmod ip_masq_user /sbin/insmod ip_masq-raudio /sbin/insmod ip_masq_ftp /sbin/insmod ip_masq_irc
  ?牐牎拘〖记伞咳绻幌胄矗部梢允杂谩癳cho”命令,如“$echo “/sbin/insmod ip_masq_ftp” >> rc.local”这样会将括起的整句写入rc.local文件的最后一行。记住要用两个“>”,如果一个会覆盖整个rc.local的内容。
  #1?牐犃⑹褂眯卤嘁氲暮诵?
  ?牐犎绻愕南低巢⑽次阍は缺嘁肽?椋敲茨憔鸵缢闹兴龅哪茄嘁牒诵牟?安装模块。而新作出的压缩核心会放在/usr/src/linux/arch/i386/boot 中。将这个bzImage链接或移到/boot 目录中。将修改/etc/lilo.conf 中的设置,加上新的一段指向核心再用“lilo -v -v -v”装入Master Boot Record (MBR,主引导记录)。
  #1?牐犉摺pchain的设置
  ?牐爄pchain主要调节防火墙的防护功能,分别对进口及转传部加以调节。当然在家里用的防火墙并不需要太复杂的设置,下面有两个基本的设置可供参考??
  ?牐牳鳳PP0 用的:“#!/bih/sh echo 1 > /proc/sys/net/ipv4/ip_forward;/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ”;
  ?牐牳鳨thernet用的:“#!/bin/sh echo 1 > /proc/sys/net/ipv4/ip_forward;/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ -i eth0”。
  ?牐牎拘≈丁可鲜隽礁隼拥耐芬痪涫且谎模琫cho “1” 到“ip_forward” 是令ip_forward 生效的。因为系统中的默认值是“0”,意即不使用ip forward。
  ?牐牭诙渲挥凶詈笠欢尾煌渲械摹癆” 代表ipchains 的规则会对以下的一段发生作用,而“s” 代表source 及其支配的IP 地址或SubMark。在该例中只用了192.168.0.0~192.168.0.24,当然你改成192.168.0.0/5 也可,视你的需要而定。
  #1?牐牥恕⒂肧hell Script设置
  ?牐犑褂蒙鲜鰅pchain 脚本(shell script),过去我会把它存入一个名为IP 的文件,再用superuser 的身份将它变成一个可以执行的文件。但在今天已经有一个新的模块名为IP,那么最好将之改为其他的名称,避免混淆,可改为homenet。
  ?牐犚褂胔omenet,我们需要将这个shell script改为一个可以执行的文件:
  ?牐牎?$chmod +x homenet”
  ?牐犖颐墙募旁?/sbin 目录内(这里多放些与网络有关的指令)。要让它能顺利执行,一定要在上述ip_masquerade 的模块 装入后执行。
  ?牐犖颐强梢越慈?/etc/rc.d/rc/local 内,但一定要在上述ip_masquerade后写入,具体为:
  ?牐牎?/sbin/insmod ip_masq_user /sbin/insmod ip_masq_user /sbin/insmod ip_masq_randio /sbin/insmod ip_masq_irc /sbin/home-net”
  #1?牐牼拧⒆詈蟊4孀柿?
  ?牐犘薷耐瓯虾蠼浔4妫敲丛谙麓纹舳毕低尘湍芩忱舳U飧錾柚玫墓δ懿凰娑酝饬咏缑娴腎P 而改变(无论是forward 还是routing)。当然,对外界面失效,也没法送出任何的TCP/UDP packet(包),那就要修改界面的资料,修改完后,只要将Network 的功能重新启动一次即可,如“$/etc/rc.d/init.d/network restart. #redhat, mandrake user 或$/etc/init.d/networking restart #debian user”;也可以这样?熤皇窃菔钡模鼗蟠诵薷谋慊崾?效?牐骸?$ ifconfig eth0 (IP 号码) $ route add default gw (网关 IP号码)”;如果是用“ppp-on”script,请在上“/sbin/insmod ip_masq_user”之前加上“/etc/ppp/ppp-on”。
  ?牐犞链耍磺蟹衿鞣矫娴纳柚枚家淹瓿桑柚肳indows客户端的工作,各位可以自行根据上述指定的资料来设置。