LRP路由说明档
作者:Yagami(柯宋)
前言
什么是LRP?其全名是:Linux Router Projecr,中文译名为:Linux路由方案,它是一种以普通PC机为基础的通过网卡实现专业路由器的基本功能,其网路基础是一个迷你的Linux。
用它可以代替网络上大多数的专业小型路由器,使用它可以很容易的实现路由(Router)、网桥(Bridges)、防火墙(Firewalls)和接发伺服机,用它还要做成一个简单的交换机,这就是LRP的基本功能,可以像大多数专来路由器一样在防火墙后加IP伪装,IP Masquerade加NAT(Network Address Translating), 可以用它做成一台拔号服务器通过路由实现网络共享,而且只要使用一张软盘,当然也可以用小硬盘和DOM之类,不过在使用它之前要有自己的本地LAN。实现大约如图一所示:
internet 公网
或者别的网路 Eth0
拔号设备 Moden 386,486,586…..
普通PC机
Eth1
别的网络 Eth…
本地局域网
乙太网络
图一
注:本图为多种方法的使用
制作准备
我用一个我个人实例来说明一下大概的做法,我的网络是这样的:由LAN宽带接入,家里有三台微机要上网,但是只有一个公网IP。
准备好两张网卡,最好是LRP所支持的(注LRP支持的网卡可上网查找)。网卡参数用设置盘设置好,如果网卡要用跳线设置参数,请分别设置两块风卡的IO地址和IRQ(部分网卡的IO和IRQ设置可以在网络上找到)。如果用的是PCI的网卡可以有不用设置这些,因为它们可能自动设置好,但大多数的ISA网卡一定要做好这一步,这里我选用的是3Com509 TPO.
找一台586的机子,32M内存,将两块网卡插入计算机后,将第一块网卡连接到宽带网,按宽带网的要求在第一块网卡设好IP、mask、gate,第二块网接到自己家里的局域网里,同样的设好IP、mask但不要设gate,这样就形成内网NET1和外网NET0如图一的黑色部分一样。
从网络上下载到LRP的镜像方件,这里我用的是:
idiot-image_1440KB_FAT_2.9.8_Linux_2.2,但是为了好全我还是找到了一块200M的硬盘来做,因为软盘不大可靠,但是但如果用软盘做的话下面的一些对硬盘的操作可以不用做了。
先把下载的文件解压好,还原到软盘1上。在Windows下可以用Rawrite或者Winimage等工具,在linux下可以用dd命令。同时上网下载网卡驱动,当然在ftp:ftp.linuxrouter.org上都有的。下载好后放在软盘2上,因为是要装在硬盘上所以同时下载下syslinux也就是DR-DOS的启动盘,还有用硬盘的内核文root.lrp也下载下来在ftp网上都有 。
接着用DOS启动盘给200M硬盘分区和格式化,因为个人原因我分区是这样做的,
主公区C盘大给了60M,把剩下的分给逻辑盘D盘。做好格式化后,用DR-DOS的启动盘启动一下机子运行一下 C:>syslinux ?s c: 然后把软盘1的除了root.lrp文件外全部Copy到硬盘上。最后重启一下机子就可以进入可爱是LRP Linux的登入介面了。
如果是用软盘的就可以不要做什么了,只要用软盘1启动完机子就可以进入登入介面了。
设置过程
启动完机子以root用户登入,第一次登入不要密码,它会自动进入LRP的配置菜单里,先选择退出。插入软盘2也就是网卡驱动的软盘,接着把软盘Mount上去用:
mount -t msdos /dev/fd0u1440 /mnt 。但是不要忘记把软盘的写保保开起来(也就是可以写的),这里不就明这个命令的意思了,这是每个学习Linux的人都会的。再接下来:
cp /mnt/*.* /lib/modules ,这是将软盘的驱动Copy到/lib/modues目录下,以方便以后开机可以自动加载,之后在取出软盘时不要忘记:umount /mnt 才可以取出软盘。要是用软盘启动的机子在启动完机子后取出软盘后做一样的动作就可以了。
回载网卡驱动,在上面的动作完后键入:lrcfg 重新进入配置菜单,先择
3)Package setting
2)Modules
1)modules Kernel modules to load at boot
进入编辑状态,输入网卡动程序,如我的3Com的:
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a `#', and everything on the line after them are ignored.
#
# All modules should reside in /lib/modules, and you are required
# to list what you need *in the correct order*. Modprobe is not
# used and there is no dependacy checking.
# How they are loaded: insmod /lib/module/"$module".o $args
#pci-scan
#tulip
#serial
###Some ethernet cards
3c509
#eepro io=0x300
###Some 8390 based ethernet cards
#8390
# card1,card2
#ne io=0x300,0x340
#ne2k-pci
#e2100
###PPP and SLIP (bsd_comp for ppp optional)
#slhc
#ppp
#slip
###IP Masq modules
#ip_masq_vdolive
#ip_masq_user
#ip_masq_raudio
#ip_masq_quake
#ip_masq_portfw
#ip_masq_mfw
#ip_masq_irc
#ip_masq_ftp
#ip_masq_cuseeme
#ip_masq_autofw
3c905(注要是非PNP的3com509的网卡要这样写3c905b io=0x300,0x320 irq=10,11)
基本上里面别的行可以有些是没有用到的看自己如何使用了,把不用的在每行的前面用#把它变成注释句。还用如果用的是别的网卡就加上别的网卡的驱动名并把IO和IRQ加上去,确定改好后按下+保存到文件中,(但注意思这里并没有把修改过的文件保存到硬盘上或软盘上),按+退到菜单上然后两次回到主菜单上:
b)Back-up ramdisk
5)modules
确定后将改好的内容从内存中保存到硬盘上或软盘上。网卡上好后重启机子,并登入到LRP的主菜单下并退到命令提示符下也就是按,要查看网卡是否正常可以用dmesg命令查看
eth0和eth1是还正常,如果不能正常确定网卡驱动的正确性和网卡没有坏。
确定网卡正常后接下来就是LRP防火墙设置和内外网设置了。记下内外网的ip和mask
在主菜单里选择:
1)Network settings
1)Network configuation(auto)
会进入文本编辑里内容如下://为本人注释内容
##########################################################
# Auto configuration bypass (Say NO to use this file)
##########################################################
DIRECT_SETTINGS_ONLY=NO //不要改变默认为NO
##########################################################
# Default Settings
##########################################################
VERBOSE=YES
MAX_LOOP=15
IPFWDING_KERNEL=YES //这里要改成YES,因为要让内核支持IP包转发
IPFWDING_FW=YES //这里要改成YES,因为要让内核支持防火墙
CONFIG_HOSTNAME=YES //这里可改可不改成YES,改成YES后可以在下面改子名也就是在提示符下会变成XXX#
CONFIG_HOSTSFILE=NO //使用默认
CONFIG_DNS=YES //使用DNS当开内网用户没有设DNS时
##########################################################
# Interfaces
##########################################################
IF0_IFNAME=eth0 //这部分为eth0的网卡IP、mask、和网关等
IF0_IPADDR=10.214.4.228 //本机的IP
IF0_NETMASK=255.255.255.0 //本机的mask
IF0_BROADCAST=10.214.4.255 //本网段的有地址结束为
IF0_IP_SPOOF=YES //IP伪装是否启用一般为YES
IF1_IFNAME=eth1 //同上只是内网的
IF1_IPADDR=192.168.10.254
IF1_NETMASK=255.255.255.0
IF1_BROADCAST=192.168.1.255
IF1_IP_SPOOF=YES //一样选择YES
#IF2_IFNAME=eth2 //如果有第三张网卡的话可以把前面的#去了
#IF2_IPADDR=192.168.1.254
#IF2_NETMASK=255.255.255.0
#IF2_BROADCAST=192.168.2.255
#IF2_IP_SPOOF=YES
##########################################################
# Hosts //这部分可以不要用到只有用到三张以上的网卡时用到
##########################################################
#HOST0_IPADDR=192.168.0.1
#HOST0_GATEWAY_IF=default
#HOST0_GATEWAY_IP=192.168.0.1
#HOST0_IPMASQ=NO
#HOST0_IPMASQ_IF=default
##########################################################
# Networks
##########################################################
NET0_NETADDR=10.214.4.0 //这里是eth0的网段
NET0_NETMASK=$IF0_NETMASK //这里可以
NET0_GATEWAY_IF=$IF0_IFNAME
NET0_GATEWAY_IP=default
NET0_IPMASQ=NO //这里是不用IP伪装因为这是合法IP
NET0_IPMASQ_IF=$IF0_IFNAME
NET1_NETADDR=192.168.10.0 //同上但是内网的
NET1_NETMASK=$IF1_NETMASK
NET1_GATEWAY_IF=$IF1_IFNAME
NET1_GATEWAY_IP=default
NET1_IPMASQ=YES //因为内网用户要用eth0的合法IP上网
NET1_IPMASQ_IF=$IF1_IFNAME
#NET2_NETADDR=192.168.2.0
#NET2_NETMASK=$IF2_NETMASK
#NET2_GATEWAY_IF=$IF2_IFNAME
#NET2_GATEWAY_IP=default
#NET2_IPMASQ=YES
#NET2_IPMASQ_IF=$IF2_IFNAME
##########################################################
# Gateways (Default Routes) //这里是定义eth0网关
##########################################################
GW0_IPADDR=10.214.4.32
GW0_IFNAME=$IF0_NAME
GW0_METRIC=1
###############################################################################
# Port Fowarding .//这里是配置代理
###############################################################################
#PF0_IFNAME=$IF0_IFNAME
#PF0_DESTIP=192.168.0.10
#PF0_TPORTS=53:5353,80:80,25:25,110:110,21:21,20:20,22:22
#PF0_UPORTS=53:5353
##########################################################
# Hostname Requires : CONFIG_HOSTNAME=YES //这里就是上面讲的
##########################################################
HOSTNAME=Myrouter
##########################################################
# Host File (Static domainname entires) Requires : CONFIG_HOSTSFILE=YES
##########################################################
# IP FQDM hostname alias1 alias2 ...
#
#HOSTS0="$IF0_IPADDR $HOSTNAME.21stcentury.net $HOSTNAME mrrtr"
#HOSTS1="192.168.1.22 hosts2.somewhere.net host2 h2"
##########################################################
# Domain Search Order and Name Servers Requires : CONFIG_DNS=YES //可以在上面定义YES如内网用户用DHCP
##########################################################
DOMAINS="dns.fj.fz.com" //这里要任意
DNS0=202.101.98.55 //这里两个为DNS的IP
DNS1=202.101.98.54
##########################################################
# End
##########################################################
当然有时外网的IP也可能是由DHCP获得的,那部分修改内容为:
#Interfaces 部分改成
IF0_IFNAME=eth0
IF0_IPADDR=dhcp
IF0_NETMASK=255.255.255.255
IF0_BROADCAST=255.255.255.255
IF0_IP_SPOOF=YES
# Gateways (Default Routes) 部分改为注释句:
#GW0_IPADDR=$HOST0_IPADDR
#GW0_IFNAME=$IF0_NAME
#GW0_METRIC=1
# Networks 这里把NET0_这一部分全部去掉不要,但是要把NET1的部分写上去
NET0_NETADDR=10.214.4.0 这部分不要只要全删
NET0_NETMASK=$IF0_NETMASK
NET0_GATEWAY_IF=$IF0_IFNAME
NET0_GATEWAY_IP=default
NET0_IPMASQ=NO
NET0_IPMASQ_IF=$IF0_IFNAME
完成IP的修改后要保存文件,要主菜单中先择
b)Back-up ramdisk
2)etc
将改动过的内容存入LRP的软盘或硬盘中。完成后重新启动计算机,登录后退出配置菜单,在命令提示符下键入:
ifconfig 可以看到以下内容说明配置成功,要是不是的话可能是网卡或配置不正确可能要重新配置以上的动作。内容如下:
eth0 Link encap:Ethernet HWaddr 00:10:4B:17:4C:D9
inet addr:10.214.4.228 Bcast:10.214.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7632 errors:0 dropped:0 overruns:0 frame:0
TX paceets:137 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
interrupt:10 Base address:0x300
eth1 Link encap:Ethernet HWaddr 00:10:5C:17:5C:DF
inet addr:192.168.10.254 Bcast:192.168.10.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX paceets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
interrupt:11 Base address:0x320
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3452 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
当出现这样的显示,其本上以经把一个未高防的路由器做好了,要把防火墙加上去还要做一点工作,可以在内网上ping一下网关(注意:这时内网的机子要把网关设成192.168.10.254)看一下网路是否正常。
在简单路由上加入防火墙的数据包过滤规则,这里用的是2.2的内核,所以可以用ipchinss 实现要是用的是2.0的内核只能用ipfwadm来实现过滤。
具体做法如下:
在配置菜选择:
1) Network setting
2) Network Configuation(direct)
在文本编辑器中加入规则:
ipchains ?P forward DENY
ipchains ?A forward ?j MASQ ?s 192.168.10.0/24 ?d 0.0.0.0
但如果是用2.0的内核加入如下内容:
ipfwadm ?F ?p deny
ipfwadm ?F ?a m ?S 192.168.10.0/24 ?D 0.0.0.0
同要保存好etc内容
这样通过ipchains或ipfwadm可以实现相当复杂的数据包转发控制。
通过以上的工作一台带防火墙的路由器做好了,但为了安全可以把root用户密码改了做法如下:
在命令提示符下键入:passwd 改好密码后一样保存etc。
这样就可以把主机的显示器和键盘脱离主机,这样主机也可以正常的工作,由于主机只有网卡和一个硬盘(或软驱)所以用电很少。
但有时为了主便为了能让远程的计算机连上这台路由器,可以开起telnet服务。具体做法如下:
上网下载ssh.lrp和sshd.lrp两个文件,把它放在硬盘上、或软盘上。载下来的文件放在软盘上,在路由器的命令提示符下:
mount ?t msdos /dev/boot /mnt (注:可以用mount ?t msdos /dev/fd01440 /mnt 或者用
mount ?t msdos /dev/hda1 /mnt )
mount ?t msdos /dev/fd01440 /root (注:当用硬盘安装必须要装上软盘。)
cp /root/*.* /mnt (注:把ssh.lrp和sshd.lrp copy到启动盘上)
lrpkg ?i /mnt/ssh.lrp (注:安装上ssh.lrp)
lrpkg ?i /mnt/sshd.lrp (注:安装上sshd.lrp)
ae /mnt/syslinux.cfg (注:修改启动文件)
在文本中加入LRP=etc,log,local,modules,sshd,ssh (本色为要加入内容)
+保存后+退出
umount /mnt
umount /root
ae /etc/hosts.allow (注:加入可能登入的机子IP网段)
在end之前加入
All:192.168.10.
+保存后+退出
ae /etc.securetty
也一样在end之前加入
ttyp0 (注:加入ttyp0,ttyp1是可以让多个root用户登入)
ttyp1
+保存后+退出
重启后就可以可以从内网telnet登入到这台路由器上可以远程控制这台机子了。 |