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

IP伪装技术浅谈

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

  如在之后加上 -l 的参数,则会列出目前已设定的 rule 。例如在 linux.phys 中,已设定的 rule 为:


 $ /sbin/ipfwadm -I -l
IP firewall input rules, default policy: accept
type  prot source               destination          ports
deny  all  127.0.0.0/8          anywhere             n/a
deny  all  127.0.0.0/8          anywhere             n/a
$ /sbin/ipfwadm -O -l
IP firewall output rules, default policy: accept
$ /sbin/ipfwadm -F -l
IP firewall forward rules, default policy: deny
type  prot source               destination          ports
acc/m all  192.168.1.0/24       anywhere             n/a 

  "default policy" 意思是,如果封包没有受限与其它的 rule, 则 kernel 就以此预设值处理它。以 "Input rules" 为例,凡是来自 127.x.x.x 网域的封包完全被档在server 之外 (deny), 而其它的封包则可以被 server 接受。原因是 127.x.x.x 是属于 loop back 设定用的,按规定任何公开的电脑都不能将 IP 设成这个,而在此设这个 rule 主要是预防某些粗心大意的系统管理者误设了这样的 IP, 而该电脑又试图与我们的 server 连线。

  由于 linux.phys 使用的是 Debian-2.0 系统,在 kernel 起动 IP-Firrewall 功能时,系统在每次重开机后都会自动设好以上的 "Input, Output rules", 使其 defaultpolicy 为 accept, 如此该 server 才能自由自在地对外连线、或接受外来的连线。同时 "Forward rules" 的 default policy 亦为 accept, 即外头的网络可以自由地经由本 server 连线到内部网络、反之亦然。现在要使用 IP-Masq 以连接内部的IP伪装 与外部的真实 IP, 我们必须改变此设定:


 ipfwadm -F -p deny 

  将其 default policy 设成 deny, 从此以后内外网络无法自由连线


 ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0 

  将来自 192.168.1.x (内部、虚拟) 网域的封包,经由 IP-Masq (m)传送到外部网络的任何地方 (0.0.0.0/0), 当然,在此之前我们必须先设好第一步,让 PPP 接口接管 192.168.1.x 这个网域)

  如此一来,IP伪装 与外头的世界就正确地建立连线了。这两行可以直接写入开机启动档中以自动执行。

  FreeBSD 的做法

  同样的,我们先来看看第二步。重新 compile kernel 时,请将以下选项写入设定档中 (节录自 man natd):


options IPFIREWALL
options IPDIVERT 

  并在 /etc/rc.conf 中写入这一行


 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伪装 的封包未经处理就往外丢,连线无法正确建立,网络不通。并在 /etc/rc.conf 中写入这一行

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

上一页 1 2 34 下一页


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

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·Motorola微处理器bootloader分析与应用
·Fedora Core5 NFS服务器搭建过程介绍
·Linux系统:让内存不再泄漏的实用技巧
·新手看招 手把手教你安装VMware虚拟机
·“侵权事件” 红帽称微软企图干扰用户
·删除Linux后 如何找回Windows启动菜单
·菜鸟乐园 Linux中常见文件系统格式介绍
·Linux操作系统下IPTables配置方法详解
·实用技巧 Linux系统的经典使用技巧八则
·Linux系统文件优化及磁盘检查方法介绍
推荐文章
·Google搜索技术揭秘 抛去固有技术思
·linux应用软件谈之多媒体篇(下)
·理解Linux系统的日志
·Linux 指令篇:文件系统--e2fsck
·[人物]KDE英雄(9):Rik Hemsley
·Linux C编程---进程
·Redhat Linux 7.1汉化大全(中)
·Apache与Tomcat安装配置手册
精彩文章
·使用EnGarde Secure Linux架设站点
·Java入门(3) 准备JAVA编程环境
·编写优质无错的代码(幻灯片完全版)
·oracle8.1.7 在redhat7.2下的安装
·Linux中流媒体Helix Server的安装和
·信号(signal)介绍
·[进程]进程管理
·Linux系统下X终端的详细使用方法
·RedHat Linux操作系统配置技巧
·和luster一起学习java编程(3)
·Domino Server支持Linux
·什么时候应该使用Web Service
·用ipchains构建防火墙
·在Linux中通过三方软件添加和删除程
·Linux管理员手册(1)--系统概述
·LINUX下声卡ALSA驱动安装方法
·读核日记(八) --linux的内存管理机
·UML建模风格之状态图
·Linux开机过程的分析(关于bootsect.
·巧用tmpfs加速你的linux服务器
·LINUX KERNEL 配置编译中文指南4
·linux磁盘管理命令--du
·Linux 网管 123 --- 第3章. 概观 Li
·Bzip2 Howto
·通过COM口管理Linux服务器
·网络服务器集群
Power by linux-cn.com 粤ICP备05006655号