分享
 
 
 

基于OpenBSD的宽带上网共享和网络服务

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

前言

随着个人计算机的普及,对于家庭用户来说,拥有一台以上PC的已经不少了,我们希望能够方便地同时上网。一些规模较小的学校、科研单位、商业机构,由于难以负担足够IP地址的费用,对共享IP上网也有迫切的需要。

随着宽带上网的逐渐推广,多台计算机共享一个Internet高带宽的连接显得越来越有意义。比较常见的做法一是购买专门的网络地址翻译(下简称NAT)机,二是在一台网关计算机上安装NAT软件或者应用程序代理服务软件1,其他计算机通过这个网关上网。第一种方法虽然安装、维护比较简便,性能好,但是需要进行一定的设备投资,并且NAT机的功能相对比较单一,难以实现其他Internet服务。第二种方法,网关机的操作系统如果使用Windows 95/98则稳定性不佳,不适合长期开机;使用Windows NT/2000则对作为硬件配置要求相对较高。

于是手头有一台低配置PC机的用户可能会想到Linux,但是本文要介绍的是BSD。与Linux不同,BSD是AT&T UNIX的“后代”,它不象Linux那样发行版本众多,却有更好的性能、可靠性与安全性。

目前有3个源码开放的BSD版本:FreeBSD,NetBSD和OpenBSD。FreeBSD是用户数最多的版本,它的主要特点是性能好,Yahoo、ftp.cdrom.com等知名网站用的就是这个操作系统。NetBSD的特点是对各种硬件平台的广泛支持,它支持从手持设备到大型服务器的多种平台。OpenBSD的特点是安全性,在OpenBSD的网址,我们可以看到这样一句话:“三年来没有发现缺省安装的OpenBSD的一个远程安全漏洞!”,另外它支持的硬件平台也不少,不过目前还不支持SMP(对称多处理器)。

现在我们就以线缆(Cable)宽带接入为例,谈谈如何利用基于OpenBSD操作系统的网关机,使多台计算机共享一个线缆调制解调器(Cable Modem,下称CM)的Internet连接。

安装OpenBSD

我们先准备一下硬件:Pentium133 CPU,16M内存,1G硬盘,2块以太网卡。其实OpenBSD可以在低得多的配置上运行得很好,不过既然我们会开通一些网络服务,配置还是不要太低了。另外如果共享上网的客户机很多,可以适当增加内存。显卡、显示器、软驱、CDROM和键盘,仅仅在安装、配置的过程中需要,一旦系统投入运行,就都不需要了。

两点建议:(1) OpenBSD的分区工具的功能强大,但是易用性不大好(不如Linux),所以建议将整个硬盘全部分配给OpenBSD使用,不要和其他操作系统混用--不是不可以,而是分区比较麻烦。(2)网卡建议用常见的NE2000兼容网卡,比如Realtek RTL8029(AS)芯片的10M PCI卡。OpenBSD支持的网卡并不是很多,用名牌的网卡对于速度等方面并没有太大的帮助,万一兼容性有问题还要添麻烦。

OpenBSD有3种安装方式:CDROM安装,FTP安装和硬盘安装。如果PC的BIOS支持光盘启动的话,那么CDROM安装是最方便的,我们来看一下安装的主要过程。

从CDROM启动后选择(I)nstall,对提示的“Specify terminal type”直接按回车采用默认值,系统会列出当前所有的硬盘并提问“Which disk is the root disk?”。注意对于IDE接口的硬盘,BSD给它的设备名是 wd0,wd1,……;对于SCSI接口的硬盘是 sd0,sd1,……。我们的PC有一个IDE硬盘,输入wd0并回车。系统提问“Do you want to use the *entire* disk for OpenBSD?”,输入yes并回车,系统会启动fdisk并将整个硬盘空间都分给BSD系统。输入write、quit,系统会保存分区设置并启动disklabel。Disklabel的作用是在fdisk建立的给BSD用的BIOS分区中,划分出不同的BSD分区。我们可以在disklabel的命令提示符“”下,随时使用?命令显示帮助信息,使用p命令打印当前的BSD分区划分情况。为了不搞得太复杂,我们仅把它划分为一个“/”和一个swap分区。先用z命令把BSD分区清空,再用“a b”命令添加一个新分区,offset直接回车用缺省值,size输入“128M”(如果任务比较重而有足够的磁盘空间,也可以大一些比如256M甚至512M),FS type用缺省的“swap”。然后用“a a”命令添加一个新分区,offset用缺省值,size输入“*”使用全部剩余空间,FS type用缺省的“4.2BSD”。最后用w、q保存并退出disklabel。接着系统会提示更改mount point信息,看看wd0a和wd0b是不是分别mount到了“/”和“swap”,完成后输入done结束。如果一切正确就一直回车直到看到“Are you really sure that you're ready to proceed?”,输入“y”回车,系统就开始格式化硬盘了。格式化完毕,先不要进行网络配置。接着是设置root用户的口令。下面问要不要运行X Window System,这个图形用户界面对我们没有用,如果硬盘空间够的话,选上也可以。下一步就是正式开始安装了,系统会问从什么地方安装(我们这里是CDROM)、CDROM设备名、文件系统种类以及安装文件位置,全部用缺省值。接着系统列出全部安装包,可以输入一个“*”全部选上,再输入一个“done”开始安装。安装完毕后系统问“Extract more sets?”,直接回车跳过。下一步是设置时区,中国是在Asia下面,选择你所在的城市。最后系统会建立启动信息等等,直到看到“CONGRATULATIONS! You have successfully installed OpenBSD! ”说明安装已经成功,系统返回命令提示符下,输入“reboot”并回车,重新启动系统。

配置网络

重新启动后,用root用户和刚才设置的口令进入系统,键入“ifconfig -a”查看所有网络接口,我们会看到有诸如“ne3: …… media: Ethernet ……”这样的显示,针对不同的网卡OpenBSD会有不同的接口名,这里假设用的的是NE2000兼容网卡,命名为“ne”,后面的数字表示它插在第几号PCI槽(从AGP槽的那面开始数)。现在假设我们的两块网卡分别插在3号、4号PCI槽里,则它们的接口名分别是ne3、ne4。现在我们打算把ne4接到CM上,把ne3接到内部LAN的HUB上。

由于CM是通过DHCP来获得IP地址的,我们先把ne4设置成通过DHCP获得IP地址:

# echo dhcp /etc/hostname.ne4

OpenBSD启动的时候发现hostname.ne4中的内容是“dhcp”,就会启动dhcp client去请求IP地址、子网掩码、网关地址、DNS地址等设置。可以手工调整dhcp client的配置,但是这里没有必要了。

然后我们设置连接内部LAN的ne3的网络设置(假设内部网络使用的是保留的IP地址192.168.0.x,子网掩码是255.255.255.0):

# echo "inet 192.168.0.1 255.255.255.0 NONE" /etc/hostname.ne3

将ne3的IP地址设置为192.168.0.1,最后的那个NONE表示不指定网卡的media option。

为了在NAT机上可以正确进行DNS解析,我们还需要配置一下/etc/resolv.conf文件,举例来说:

# cat /etc/resolv.conf

nameserver 210.52.149.2

nameserver 202.96.209.133

lookup file bind

第一、二行列出了两个不同的DNS服务器的IP,第三行表示先从/etc/hosts文件中查找,如果失败再到DNS服务器查找。

第二、

NAT大概的运作方式是这样的:假设内部网络上的计算机A需要访问Internet,则A把数据包发送到网关机N,N收到A的数据包后,把请求者的IP地址换成自己,然后发送到目的地去。收到目的地发来的回答后,N再把它转发到A机。NAT是在低层次起作用的,与在高层次起作用的代理比如应用层代理(常见的有HTTP proxy等)相比,对于A机来说,它不用将自己的应用程序设置成使用代理(有的应用程序并不支持代理),除了无法从外部直接连接到A机之外,所有的使用都和直接连接Internet一样。

下面我们来配置NAT:

修改 /etc/rc.conf

ipfilter=YES

ipnat=YES

修改 /etc/sysctl.conf

net.inet.ip.forwarding=1

再修改配置防火墙规则,现在我们先不设置任何复杂规则,仅仅允许所有的信息通过:

# cat /etc/ipf.rules

pass in from any to any

pass out from any to any

然后是NAT规则:

# cat /etc/ipnat.rules

map ne4 192.168.0.0/24 - ne4/32 portmap tcp/udp 10000:60000

map ne4 192.168.0.0/24 - ne4/32

这些规则表示将内部网的IP地址192.168.0.x 、子网掩码为255.255.255.0,映射到ne4网络接口上去。第一行是映射TCP和UDP的,第二行是映射其他协议的。

现在所有的配置都完成了,把CM和ne4连接好,并把内部LAN的HUB连接到ne3上,键入reboot重启动。将内部LAN上的计算机的网卡接口的IP设置成 192.168.0.2,192.168.0.3……,子网掩码为255.255.255.0,网关为192.168.0.1,DNS服务器为ISP提供的DNS服务器的IP(比如210.52.149.2,202.96.209.133),根据需要可能需要重启动。试试看是不是已经可以上Internet了?

进一步的配置

下面介绍一下在我们刚才构筑的基于OpenBSD的NAT网关机的基础上,进一步设置一些网络服务的方法。值得注意的是:从安全性考虑,不是必要的服务就不要开!

1. 远程登录

OpenBSD缺省安装后,启动的服务很少。telnet服务是缺省关闭的,因为telnet是明文的协议,有被窃听的危险。OpenBSD打开了ssh服务,这是一个加密的远程登录服务。为了使用这个服务,必须在客户机上安装支持ssh协议的终端软件。在Windows操作系统下,可以用SecureCRT。安装完终端软件后,建立到服务器192.168.0.1的连接,注意使用standard SSH。

2. 串口终端

对于这个NAT服务器来说,我们可以不要显卡、显示器和键盘。但是如果配置网络出了问题,远程登录无法连接到服务器就比较麻烦了--因为我们已经把服务器的显示系统和键盘都去掉了。所以有必要建立一个比较保险的连接途径。我们可以通过串口终端的方式,连接到服务器。

a) echo -P /boot.config 这个目的是告诉boot模块,如果发现键盘不存在,就进入serial console模式;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有