首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程
用Linux+IPChains代替Windows+WinGate-网管专栏,防火墙和路由
作者:网友供稿 点击:0
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 

    任务:办公室有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

"=y"表示内核直接支持(代码已链入内核中),"=m"表示模块支持(代码在另外的内核中,可由内核载入)。于是这就表明,蓝点linux 2.0的原有内核已包含这些选项了,我就不用重新编译内核啦。
但仍然得做点事情,首先必须命令内核,启动ip转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
往/proc/sys/net/ipv4/ip_forward里写入"1"就行了。
有些功能如ftp, irc等的伪装,需要相应的模块支持,这些模块放在/lib/modules/2.2.16/ipv4目录中,装入它们:
depmod -a
modprobe ip_masq_ftp
modprobe ip_masq_irc
modprobe ip_masq_raudio

2、 ipchains的配置
蓝点linux 2.0包含的ipchains软件已经足够满足我的要求了,我就不必安装新的,只需配置一下即可。ipchains是一个包过滤器,功能强大,设置也复杂,但我只想使用其ip伪装转发功能而已,设置得以简化。我这台linux机器在一个局域网上,局域网的域名为thalia.com,地址为210.96.100.0,这台机器的主机名为gate,地址为210.96.100.10。
对ipchains过滤器进行设置,就是设置各种链及规则。先看看目前情况如何:
ipchains -l
得到类似下面的信息:

chain input (policy accept):
chain forward (policy accept):
chain output (policy accept):

没什么规则,3条链的策略都是接受。
由于只是使用伪装转发功能,所以只对forward链进行操作。
ipchains -p forward deny
把forward链的策略设为deny,拒绝通过。此后增加可通过的规则,逐渐允许更多的数据包通过,这是一种先紧后松的做法。
ipchains -a forward -s 210.96.100.0/255.255.255.0 -j masq
增加1条规则,这条规则说明:对来自210.96.100.0局域网内(网络掩码为255.255.255.0)的数据包(-s 210.96.100.0/255.255.255.0),进行伪装处理(-j masq)。
这时候再看一下情况如何:
ipchains -l
得到类似下面的信息:

chain input (policy accept):
chain forward (policy deny):
target prot opt source destination ports
masq all ------ 210.96.100.0/24 anywhere n/a
chain output (policy accept):

forward链中多了1条masq规则。
要简单地实现共享isdn上网,这已经足够了。

3、 其它机器的配置
配置局域网上的其它win98, win2000机器,要点是把缺省网关设为那台linux gate机器,dns域名服务器也设为那台linux gate机器。应用软件如ie,outlookexpress等不用做任何设置,想象成isdn装在本机上就行。
我现在就去设置1台win98机器试试看。
(1)在“控制面板 | 网络 | 配置”下,选中“tcp/ip->3com pci ethernet adapter”(这台机器配的是3com网卡),点击“属性”按钮,弹出tcp/ip属性对话框。
(2)到“ip地址”页中,指定ip地址,ip地址为210.96.100.14,子网掩码为255.255.255.0;到“网关”页中,添加新网关210.96.100.10。
(3)机器重启。
(4)打开ie,浏览http://168.160.224.103(即新浪网sina.com.cn),看到了新浪的首页;但是浏览http://www.sina.com.cn,却不行。这是域名解析的问题。
(5)重复(1)步骤,弹出tcp/ip属性对话框,到“dns配置”页中,启用dns,主机名写zzh,添加dns服务器搜索顺序210.96.100.10。机器重启。打开ie,再次浏览http://www.sina.com.cn,这次好啦。

4、 形成shell文件
上面对内核和ipchains的配置是逐条命令进行的,已经全部成功通过,现在把它们写成shell文件。
/etc/ppp/ip-masq-start文件内容如下:

# ip masq
echo 1 > /proc/sys/net/ipv4/ip_forward
depmod -a
modprobe ip_masq_ftp
modprobe ip_masq_irc
modprobe ip_masq_raudio

ipchains -p forward deny
ipchains -a forward -s 210.96.100.0/255.255.255.0 -j masq

让它成为可执行文件:
chmod a+x /etc/ppp/ip-masq-start
以后事情就简单了。要开启ip伪装转发功能,下命令/etc/ppp/ip-masq-start。

参考资料:
黄志伟,ip masquerade howto中文版,http://www.linux.org.tw/cldp/gb/ip-masquerade-howto.html

张中华(mike_z@21cn.com),2000.12.02,http://zzh-cn.com


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·使用windows脚本入侵WINDOWS服务器-网管专栏,网络技术
·清除网页历史记录-ASP教程,ASP应用
·在java中利用动态编译实现eval-JSP教程,Java技巧及代码
·如何制作Asp.Net界面模板-.NET教程,Asp.Net开发
·C#实现的18位身份证格式验证算法-.NET教程,数据库应用
·如何用PHP发电子邮件(1)-PHP教程,邮件处理
·Java 中的 XML:Java 文档模型的用法-JSP教程,Java与XML
·如何更新父窗体-.NET教程,Asp.Net开发
·用Windows 2003实现软RAID-网管专栏,操作系统
·使用Magic Winmail Server轻松架设邮件服务器(五)-网管专栏,邮件服务
最新文章
·photoshop让花卉照片更加清晰嫩绿_photoshop教程
·论c#变得越来越臃肿是不可避免的_c#应用
·杜少军:行走在网络世界的奇才_站长访谈
·教你用photoshop外插滤镜做卷页效果_photoshop教程
·通过dreamweaver设计网页时组织css的建议_dreamweaver教程
·草根网站比门户网站更有前途_站长心得
·如何针对google进行网站优化_google推广
·google推“我的搜索历史”测试版 提高个性化搜索竞争力_google推广
·八大要领 做网站就这么简单2_站长心得
·关闭widnows vista偷偷共享的文件_windows vista
相关主题
  • 用linux作邮件服务器_qmail
  • 用Linux防火墙构建软路由-网管专栏,防火墙和路由
  • 用Linux防火墙伪装抵住黑客攻击-网管专栏,安全与管理
  • 用linux建立自己的mp3广播站-网管专栏,解决方案
  • 用Linux将局域网带入Internet-网管专栏,解决方案
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭