Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

IP伪装技术浅谈

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]


 gateway_enable=YES 

  以便在重开机时开启 gateway 的功能。与 Linux 最大的部同是, Linux 的 IP-Masq的运作完全是在 kernel 中进行,而 FreeBSD 的 NAT 还需要跑一苹 natd 的程序来运作。请在 /etc/services 加入一行:


 natd          6668/divert  # Network Address Translation socket 

  然后在开机时执行这个程序:


 natd -interface ed0 

  其意义为: 所有来自虚拟 (内部) 网络的封包,经转换后经由 ed0 (ethernet) 接口对外传送。

  第二步我们要设定 IP-Firewall rule 。在 FreeBSD 要用 ipfw 指令。使用 ipfw -a show 会列出目前所有的 rule:


# /sbin/ipfw -a show
01000        318      30934 allow ip from any to any via lo0
01010          0          0 deny ip from 127.0.0.0/8 to 127.0.0.0/8
06000     177084   47865019 divert 6668 ip from any to any
65000     241446   67969713 allow ip from any to any
65535          0          0 deny ip from any to any 

  与 Linux 的 ipfwadm 不一样,在 FreeBSD 中不特别区分 Input, Output, Foreward这三项,也没有 default policy, 但它每一个 rule 都有一个号码,代表 rule 的比对顺序。进来的封包会按此顺序一个个地比对,一旦比对符合就按此 rule 来处理。以上的 rule 其意义是:

01000: 允许封包经由 lo0 (loop back) 互传 01010: 拒绝 127.0.0.0/8 到 127.0.0.0/8 的封包 (作用与上述 Linux 的 rule 类似) 06000: 使用 IP-Divert 建立虚拟与真实 IP 的连线 65000: 允许所有的封包自由流通 (如此 server 本身便能自由对外连线、接受连线) 65535: 拒绝所有的封包

  在 freebsd.phys 系统中,用的是 FreeBSD-2.2.5 操作系统,当启动 IP-Firewall之后,除了 06000 那个 rule 以外,其它的 rule 系统每次重开机时便会帮我们自动建立。而要使用 IP-Divert & natd, 我们必须自行建立 06000 这个 rule:


 /sbin/ipfw add 06000 divert natd all from any to any 

  其中 06000 这个数字就决定了此 rule 在整个 rule table 的安插顺序。请注意顺序非常重要! 它一定要在 65000 之前,否则的话,来自IP伪装 的封包因为满足65000 rule, 系统就以此 rule 处理,而不再往下看有关 IP-Divert 的 rule, 结果是,IP伪装 的封包未经处理就往外丢,连线无法正确建立,网络不通。




 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:RPM命令手册   下一篇:MODEM]调制解调器的安装与配置

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号