iptablesWord文档下载推荐.docx
- 文档编号:18884036
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:31
- 大小:166.72KB
iptablesWord文档下载推荐.docx
《iptablesWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《iptablesWord文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
∙禁止代理端口
#iptables-AINPUT-ptcp--dport3128-jREJECT
∙禁止icmp端口
除192.168.62.1外,禁止其它人ping我的主机
#iptables-AINPUT-ieth0-s192.168.62.1/32-picmp-micmp--icmp-typeecho-request-jACCEPT
#iptables-AINPUT-ieth0-picmp--icmp-typeecho-request–j?
DROP
或
#iptables-AINPUT-ieth0-s192.168.62.1/32-picmp-micmp--icmp-type8-jACCEPT
#iptables-AINPUT-ieth0-picmp-micmp--icmp-type8-jDROP
注:
可以用iptables--protocolicmp--help查看ICMP类型
还有没有其它办法实现?
∙禁止QQ端口
#iptables-DFORWARD-pudp--dport8000-jREJECT
强制访问指定的站点
图3
要使192.168.52.0/24网络内的计算机(这此计算机的网关应设为192.168.52.10)强制访问指定的站点,在做为防火墙的计算机(192.168.52.10)上应添加以下规则:
1.打开ip包转发功能
echo1>
/proc/sys/net/ipv4/ip_forward
2.在NAT/防火墙计算机上的NAT表中添加目的地址转换规则:
iptables-tnat-IPREROUTING-ieth0-ptcp--dport80-jDNAT--to-destination202.96.134.130:
80
iptables-tnat-IPREROUTING-ieth0-pudp--dport80-jDNAT--to-destination202.96.134.130:
3.在NAT/防火墙计算机上的NAT表中添加源地址转换规则:
iptables-tnat-IPOSTROUTING-oeth1-ptcp--dport80-s192.168.52.0/24-jSNAT--to-source202.96.134.10:
20000-30000
iptables-tnat-IPOSTROUTING-oeth1-pudp--dport80-s192.168.52.0/24-jSNAT--to-source202.96.134.10:
4.测试:
在内部网的任一台计算机上打开浏览器,输入任一非本网络的IP,都将指向IP为202.96.134.130的网站.
发布内部网络服务器
图4
要使因特网上的计算机访问到内部网的FTP服务器、WEB服务器,在做为防火墙的计算机上应添加以下规则:
1.echo1>
2.发布内部网web服务器
iptables-tnat-IPREROUTING-ptcp-ieth1-s202.96.134.0/24--dport80-jDNAT--to-destination192.168.52.15:
iptables-tnat-IPOSTROUTING-ptcp-ieth0-s192.168.52.15--sport80-jSNAT--to-source202.96.134.10:
20000-30000
3.发布内部网ftp服务器
iptables-tnat-IPREROUTING-ptcp-ieth1-s202.96.134.0/24--dport21-jDNAT--to-destination192.168.52.14:
21
iptables-tnat-IPOSTROUTING-ptcp-ieth0-s192.168.52.14--sport21-jSNAT--to-source202.96.134.10:
40000-50000
4.注意:
内部网的计算机网关要设置为防火墙的ip(192.168.52.1)
5.测试:
用一台IP地址为202.96.134.0段的计算机虚拟因特网访问,当在其浏览器中访问http:
//202.96.134.10时,实际应看到的是192.168.52.15的的web服务;
当访问ftp:
//202.96.134.10时,实际应看到的是192.168.52.14上的的ftp服务
智能DNS
图5
/proc/sys/net/ipv4/ip_forward
2.在NAT服务器上添加以下规则:
在PREROUTING链中添加目的地址转换规则:
iptables-tnat-IPREROUTING-ieth0-ptcp--dpor53-jDNAT--to-destination202.96.134.130
iptables-tnat-IPREROUTING-ieth0-pudp--dpor53-jDNAT--to-destination202.96.134.130
在POSTROUTING链中添加源地址转换规则:
iptables-tnat-IPOSTROUTING-oeth1-s192.168.52.0/24-ptcp--dpor53-jSNAT--to-source202.96.134.10:
40000-50000
iptables-tnat-IPOSTROUTING-oeth1-s192.168.52.0/24-pudp--dpor53-jSNAT--to-source202.96.134.10:
3.测试
在内部网任一台计算机上,将DNS设置为任意的外网IP,就可以使用DNS测试工具如nslookup来解析DNS服务器202.96.134.130上的名称.
端口映射
见上节透明代理设置
#iptables-tnat-APREROUTING-ieth0-ptcp-s192.168.62.0/24--dport80-jREDIRECT--to-ports3128
通过NAT上网
∙典型NAT上网
一般做为NAT的计算机同时也是局域网的网关,假定该机有两块网卡eth0、eth1,eth0连接外网,IP为202.96.134.134;
eth1连接局域网,IP为192.168.62.10
1.先在内核里打开ip转发功能
#echo1>
2.?
使局域网用户能访问internet所要做的nat
#iptables-tnat-APOSTROUTING-ptcp-oeth0-jSNAT--to?
202.96.134.134
如果上网的IP是动态IP,则使用以下规则:
#iptables-tnat-APOSTROUTING-oeth0-s192.168.62.0/24-jMASQUERADE
如果是通过ADSL上网,且公网IP是动态IP,则使用以下规则:
#iptables-tnat-APOSTROUTING-oppp0-s192.168.62.0/24-jMASQUERADE
3.使internet用户可以访问局域网内web主机所要做的nat
#iptables-tnat-APREROUTING-ptcp-d202.96.134.134--dport80-jDNAT--to-destination192.168.62.10
局域网内的客户端需将默认网关、DNS设为防火墙的IP
∙在我们的网络机房实现NAT共享上网
工作环境:
上层代理192.168.60.6(4480),只授予教师机(192.168.62.111)使用该代理的权限
目标:
不使用squid代理上网,而是使用NAT的方式上网
方法:
1)确保停止教师机(192.168.62.111)的squid或其它代理服务
2)客户端网关、DNS均指向192.168.62.111,浏览器代理设置为192.168.60.6(4480)。
测试在当前情况下能否上网
3)在教师机(192.168.62.111)上添加如下iptables规则:
#iptables-tnat-APOSTROUTING-ptcp-d192.168.60.6/32--dport4480-jSNAT--to-source192.168.62.111:
10000-30000
解释:
对于目的地为192.168.60.6、目的端口为4480的TCP包,在经过防火墙路由后,将其源地址转换为192.168.62.111,端口转换为10000-30000间的某个端口。
4)客户端测试能否上网
IP规则的保存与恢复
iptables-save把规则保存到文件中,再由目录rc.d下的脚本(/etc/rc.d/init.d/iptables)自动装载
使用命令iptables-save来保存规则。
一般用
iptables-save>
/etc/sysconfig/iptables
生成保存规则的文件/etc/sysconfig/iptables,
也可以用
serviceiptablessave
它能把规则自动保存在/etc/sysconfig/iptables中。
当计算机启动时,rc.d下的脚本将用命令iptables-restore调用这个文件,从而就自动恢复了规则。
iptables指令语法
iptables[-ttable]command[match][-jtarget/jump]
[-ttable]指定规则表
-t参数用来,内建的规则表有三个,分别是:
nat、mangle和filter,当未指定规则表时,则一律视为是filter。
个规则表的功能如下:
nat:
此规则表拥有PREROUTING和POSTROUTING两个规则链,主要功能为进行一对一、一对多、多对多等网址转换工作(SNAT、DNAT),这个规则表除了作网址转换外,请不要做其它用途。
mangle:
此规则表拥有PREROUTING、FORWARD和POSTROUTING三个规则链。
除了进行网址转换工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定MARK(将封包作记号,以进行后续的过滤),这时就必须将这些工作定义在mangle规则表中,由于使用率不高,我们不打算在这里讨论mangle的用法。
filter:
这个规则表是默认规则表,拥有INPUT、FORWARD和OUTPUT三个规则链,这个规则表顾名思义是用来进行封包过滤的处理动作(例如:
DROP、LOG、ACCEPT或REJECT),我们会将基本规则都建立在此规则表中。
command常用命令列表:
命令-A,--append
范例iptables-AINPUT...
说明新增规则到某个规则链中,该规则将会成为规则链中的最后一条规则。
命令-D,--delete
范例iptables-DINPUT--dport80-jDROP
iptables-DINPUT1
说明从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令-R,--replace
范例iptables-RINPUT1-s192.168.0.1-jDROP
说明取代现行规则,规则被取代后并不会改变顺序。
命令-I,--insert
范例iptables-IINPUT1--dport80-jACCEPT
说明插入一条规则,原本该位置上的规则将会往后移动一个顺位。
命令-L,--list
范例1iptables-LINPUT
说明列出某规则链中的所有规则。
范例2iptables-tnat-L
说明列出nat表所有链中的所有规则。
命令-F,--flush
范例iptables-FINPUT
说明删除filter表中INPUT链的所有规则。
命令-Z,--zero
范例iptables-ZINPUT
说明将封包计数器归零。
封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
命令-N,--new-chain
范例iptables-Nallowed
说明定义新的规则链。
命令-X,--delete-chain
范例iptables-Xallowed
说明删除某个规则链。
命令-P,--policy
范例iptables-PINPUTDROP
说明定义过滤政策。
也就是未符合过滤条件之封包,默认的处理方式。
命令-E,--rename-chain
范例iptables-Ealloweddisallowed
说明修改某自定义规则链的名称。
[match]常用封包匹配参数
参数-p,--protocol
范例iptables-AINPUT-ptcp
说明匹配通讯协议类型是否相符,可以使用!
运算符进行反向匹配,例如:
-p!
tcp
意思是指除tcp以外的其它类型,如udp、icmp...等。
如果要匹配所有类型,则可以使用all关键词,例如:
-pall
参数-s,--src,--source
范例iptables-AINPUT-s192.168.1.1
说明用来匹配封包的来源IP,可以匹配单机或网络,匹配网络时请用数字来表示子网掩码,例如:
-s192.168.0.0/24
匹配IP时可以使用!
-s!
192.168.0.0/24。
参数-d,--dst,--destination
范例iptables-AINPUT-d192.168.1.1
说明用来匹配封包的目的地IP,设定方式同上。
参数-i,--in-interface
范例iptables-AINPUT-ieth0
说明用来匹配封包是从哪块网卡进入,可以使用通配字符+来做大范围匹配,例如:
-ieth+
表示所有的ethernet网卡
也可以使用!
-i!
eth0
参数-o,--out-interface
范例iptables-AFORWARD-oeth0
说明用来匹配封包要从哪块网卡送出,设定方式同上。
参数--sport,--source-port
范例iptables-AINPUT-ptcp--sport22
说明用来匹配封包的源端口,可以匹配单一端口,或是一个范围,例如:
--sport22:
表示从22到80端口之间都算是符合条件,如果要匹配不连续的多个端口,则必须使用--multiport参数,详见后文。
匹配端口号时,可以使用!
运算符进行反向匹配。
参数--dport,--destination-port
范例iptables-AINPUT-ptcp--dport22
说明用来匹配封包的目的地端口号,设定方式同上
参数--tcp-flags
范例iptables-ptcp--tcp-flagsSYN,FIN,ACKSYN
说明匹配TCP封包的状态标志,参数分为两个部分,第一个部分列举出想匹配的标志,第二部分则列举前述标志中哪些有被设置,未被列举的标志必须是空的。
TCP状态标志包括:
SYN(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(强迫推送)等均可使用于参数中,除此之外还可以使用关键词ALL和NONE进行匹配。
匹配标志时,可以使用!
运算符行反向匹配。
参数--syn
范例iptables-ptcp--syn
说明用来表示TCP通信协议中,SYN位被打开,而ACK与FIN位关闭的分组,即TCP的初始连接,与iptables-ptcp--tcp-flagsSYN,FIN,ACKSYN的作用完全相同,如果使用!
运算符,可用来匹配非要求连接封包。
参数-mmultiport--source-port
范例iptables-AINPUT-ptcp-mmultiport--source-port22,53,80,110
说明用来匹配不连续的多个源端口,一次最多可以匹配15个端口,可以使用!
参数-mmultiport--destination-port
范例iptables-AINPUT-ptcp-mmultiport--destination-port22,53,80,110
说明用来匹配不连续的多个目的地端口号,设定方式同上
参数-mmultiport--port
范例iptables-AINPUT-ptcp-mmultiport--port22,53,80,110
说明这个参数比较特殊,用来匹配源端口和目的端口号相同的封包,设定方式同上。
注意:
在本范例中,如果来源端口号为80目的地端口号为110,这种封包并不算符合条件。
参数--icmp-type
范例iptables-AINPUT-picmp--icmp-type8
说明用来匹配ICMP的类型编号,可以使用代码或数字编号来进行匹配。
请打iptables-picmp--help来查看有哪些代码可用。
参数-mlimit--limit
范例iptables-AINPUT-mlimit--limit3/hour
说明用来匹配某段时间内封包的平均流量,上面的例子是用来匹配:
每小时平均流量是否超过一次3个封包。
除了每小时平均次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后:
/second、/minute、/day。
除了进行封包数量的匹配外,设定这个参数也会在条件达成时,暂停封包的匹配动作,以避免因骇客使用洪水攻击法,导致服务被阻断。
参数--limit-burst
范例iptables-AINPUT-mlimit--limit-burst5
说明用来匹配瞬间大量封包的数量,上面的例子是用来匹配一次同时涌入的封包是否超过5个(这是默认值),超过此上限的封包将被直接丢弃。
使用效果同上。
参数-mmac--mac-source
范例iptables-AINPUT-mmac--mac-source00:
00:
01
说明用来匹配封包来源网络接口的硬件地址,这个参数不能用在OUTPUT和POSTROUTING规则链上,这是因为封包要送到网卡后,才能由网卡驱动程序透过ARP通讯协议查出目的地的MAC地址,所以iptables在进行封包匹配时,并不知道封包会送到哪个网络接口去。
参数--mark
范例iptables-tmangle-AINPUT-mmark--mark1
说明用来匹配封包是否被表示某个号码,当封包被匹配成功时,我们可以透过MARK处理动作,将该封包标示一个号码,号码最大不可以超过4294967296。
参数-mowner--uid-owner
范例
iptables-AOUTPUT-mowner--uid-owner500
说明用来匹配来自本机的封包,是否为某特定使用者所产生的,这样可以避免服务器使用root或其它身分将敏感数据传送出,可以降低系统被骇的损失。
可惜这个功能无法匹配出来自其它主机的封包。
参数-mowner--gid-owner
范例iptables-AOUTPUT-mowner--gid-owner0
说明用来匹配来自本机的封包,是否为某特定使用者群组所产生的,使用时机同上。
参数-mowner--pid-owner
iptables-AOUTPUT-mowner--pid-owner78
说明用来匹配来自本机的封包,是否为某特定进程所产生的,使用时机同上。
参数-mowner--sid-owner
iptables-AOUTPUT-mowner--sid-owner100
说明用来匹配来自本机的封包,是否为某特定连接(SessionID)的响应封包,使用时机同上。
参数-mstate--state
iptables-AINPUT-mstate--stateRELATED,ESTABLISHED
说明用来匹配连接状态,连接状态共有四种:
INVALID、ESTABLISHED、NEW和RELATED。
INVALID表示该封包的连接编号(SessionID)无法辨识或编号不正确。
ESTABLISHED表示该封包属于某个已经建立的连接。
NEW表示该封包想要起始一个连接(重设连接或将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- iptables