手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>操作系统>Linux>列表

IP Masquerade mini HOWTO

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

Alpha/AXP with Linux/Redhat 
SCO Openserver (v3.2.4.2 and 5) 
IBM RS/6000 running AIX 
(谁还测试过其它平台?) 


4.4 IP Firewall Administration (ipfwadm) 
这一节提供关於 ipfwadm 更深入的使用指引. 

这是一个给在固定 PPP 位址之 PPP 连线後面的防火墙/伪装系统使用的设定.信赖(trusted) 界面为 192.168.255.1, PPP 界面已经修改过以避免犯错 :) .我分别列出每一个进入(incoming)以及送出(outgoing)界面来抓出变更递送路径(stuffed routing) 以及/或是伪装(masquerading)等等这些个 IP spoofing 技巧.同时任何没有明确允许的东西都是禁止的! 



#!/bin/sh
#
# /etc/rc.d/rc.firewall,  定义防火墙配置,从 rc.local 执行.
#

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# 测试用,等待一段时间然後清除所有的防火墙规则.
# 如果你希望防火墙十分钟之後自动关闭就取消下列几行的注解.
# (sleep 600; \
# ipfwadm -I -f; \
# ipfwadm -I -p accept; \
# ipfwadm -O -f; \
# ipfwadm -O -p accept; \
# ipfwadm -F -f; \
# ipfwadm -F -p accept; \
# ) &

# 进入伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -I -f
ipfwadm -I -p deny
# 伪装闸道的本地(local) 界面,区域网路里的机器,允许连往任何
# 地方
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
# 伪装闸道的远端(remote)界面,声称是区域网路里的机器,IP spoofing
# 拒绝
ipfwadm -I -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 伪装闸道的远端界面,任何来源,允许送往固定 (permanent) PPP
# 位址
ipfwadm -I -a accept -V your.static.PPP.address -S 0.0.0.0/0 -D your.static.PPP.address/32
# 回授(loopback)界面是允许的
ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的进入方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -I -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o

# 送出伪装闸道的设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -O -f
ipfwadm -O -p deny
# 本地界面,允许任何来源送出至区域网路
ipfwadm -O -a accept -V 192.168.255.1 -S 0.0.0.0/0 -D 192.168.0.0/16
# 远端界面送出至区域网路,stuffed routing ,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 192.168.0.0/16 -D 0.0.0.0/0 -o
# 区域网路的机器从远端界面送出,stuffed masquerading,拒绝
ipfwadm -O -a deny -V your.static.PPP.address -S 0.0.0.0/0 -D 192.168.0.0/16 -o
# 任何其它远端界面送出的东西都是允许的
ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0
# 回授(loopback)界面是允许的
ipfwadm -O -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的送出方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -O -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o

# 伪装闸道的转送设定,更新以及设定拒绝的策略(policy).事实上
# 预设的策略没什麽关系,因为原先就希望拒绝以及记录所有规则
ipfwadm -F -f
ipfwadm -F -p deny
# 伪装区域网路的机器从本地界面送出至任何地方的资料
ipfwadm -F -a masquerade -W ppp0 -S 192.168.0.0/16 -D 0.0.0.0/0
# 捕捉所有规则,任何其它的转送方式都会被拒绝并记录.可惜没有
# 记录用的选项但这可以代替
ipfwadm -F -a deny -S 0.0.0.0/0 -D 0.0.0.0/0 -o

你可以使用 -I, -O 或是 -F 来控制到某特定节点的流量.记得这些规则集是由上往下扫描的而 -a 代表"附加(append)"到目前现有的规则集中所以任何限制必须在全域(global)规则之前出现.例如(没测试过) :- 

使用 -I 规则.可能是速度最快的但是它只能阻止区域网路里的机器,防火墙本身仍然可以存取"禁止"的节点.当然你可能想允许这样的组合. 



... start of -I rules ...
# 拒绝并记录本地界面,区域网路里的机器通往 204.50.10.13
ipfwadm -I -a reject -V 192.168.255.1 -S 192.168.0.0/16 -D 204.50.10.13/32 -o
# 本地界面,区域网路里的机器,允许通往任何地方
ipfwadm -I -a accept -V 192.168.255.1 -S 192.168.0.0/16 -D 0.0.0.0/0
... end of -I rules ...

使用 -O 规则.最慢,因为封包首先经过伪装但这个规则阻止防火墙存取禁止的节点. 


... start of -O rules ...
# 拒绝并记录送出至 204.50.10.13 的资料
ipfwadm -O -a reject -V your.static.PPP.address -S your.static.PPP.address/32 -D 204.50.10.13/32 -o
# 允许任何其它远端界面送出的东西
ipfwadm -O -a accept -V your.static.PPP.address -S your.static.PPP.address/32 -D 0.0.0.0/0
... end of -O rules ...

使用 -F 规则.可能比 -I 慢而这仍然只能阻止伪装的机器(例如内部的机器),防火墙仍然可以取得禁止的节点. 


... start of -F rules ...
# 拒绝并记录 PPP  界面送出从区域网路到 204.50.10.13 的资料.

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!