linux下防火墙iptablesWord下载.docx

上传人:b****8 文档编号:22321533 上传时间:2023-02-03 格式:DOCX 页数:43 大小:184.36KB
下载 相关 举报
linux下防火墙iptablesWord下载.docx_第1页
第1页 / 共43页
linux下防火墙iptablesWord下载.docx_第2页
第2页 / 共43页
linux下防火墙iptablesWord下载.docx_第3页
第3页 / 共43页
linux下防火墙iptablesWord下载.docx_第4页
第4页 / 共43页
linux下防火墙iptablesWord下载.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

linux下防火墙iptablesWord下载.docx

《linux下防火墙iptablesWord下载.docx》由会员分享,可在线阅读,更多相关《linux下防火墙iptablesWord下载.docx(43页珍藏版)》请在冰豆网上搜索。

linux下防火墙iptablesWord下载.docx

-N自定义新链

-X删除自定义的链

-P设置默认规则

-E对链重命名

(3)[匹配规则]

基本规则

-p[!

]protocol匹配协议

-s[!

]address[/mask]匹配源IP地址

-d[!

]address[/mask]匹配目的IP地址

-i[!

][name]匹配数据入站接口名

-o[!

][name]匹配数据出站接口名

扩展规则

--source-port[!

][port[:

port]]匹配源端口,--source-port可以用--sport来替代

--destination-port[!

port]]匹配目标端口,--destination-port可以用--dport来替代

--tcp-flags[!

]maskcomp匹配TCP标志位,标志位有:

SYN,ACK,FIN,RST,URG,PSH,

--icmp-type[!

][typename]匹配ICMP协议数据类型

--mac-source[!

]address匹配源MAC地址

--limitrate[speed][--limit-burstnumber]匹配速度

-mlimit--limitrate[speed][--limit-burstnumber]匹配速度

-mmultiport[--sport…][--dport…][--port]匹配端口

-mstate--state[state,state…]匹配连接状态,状态有:

NEW(开始新连接),ESTABLISHED(已建立连接),RELATED(已建立连接的连接),INVALID(无效连接)等

(4)[-j动作]

动作可以是:

ACCEPT允许包通过

DROP丢弃数据包

REJECT丢弃数据包,返回错误消息

SNAT转换数据包源IP地址

DNAT转换数据包目地IP地址

MASQUERADE转换数据包的源IP地址(用于拔号连接,每次拔号获得不同的IP地址时)

REDIRECT转换数据包的目的IP地址为自身IP地址

首先要查看下防火墙的情况:

]#iptables-L–n

看到INPUTACCEPT,FORWARDACCEPT,OUTPUTACCEPT

我们可以这样理解iptables由3个部分组成INPUT,FORWARD和OUTPUT

关闭所有的INPUTFORWARDOUTPUT,下面是命令实现:

]#iptables-PINPUTDROP

]#iptables-PFORWARDDROP

]#iptables-POUTPUTDROP

]#serviceiptablessave进行保存

firewallrules防火墙的规则其实就是保存在/etc/sysconfig/iptables

可以打开文件查看vi/etc/sysconfig/iptables

禁止单个IP访问命令#iptables-AINPUT-ptcp-s192.168.1.2-jDROP

数据包经过防火墙的路径

图1比较完整地展示了一个数据包是如何经过防火墙的,考虑到节省空间,该图实际上包了三种情况:

来自外部,以防火墙(本机)为目的地的包,在图1中自上至下走左边一条路径。

由防火墙(本机)产生的包,在图1中从“本地进程”开始,自上至下走左边一

条路径

来自外部,目的地是其它主机的包,在图1中自上至下走右边一条路径。

图1

如果我们从上图中略去比较少用的mangle表的图示,就有图2所显示的更为清晰的路径图.

图2

禁止端口的实例

∙禁止ssh端口

只允许在192.168.62.1上使用ssh远程登录,从其它计算机上禁止使用ssh

#iptables-AINPUT-s192.168.62.1-ptcp--dport22-jACCEPT

#iptables-AINPUT-ptcp--dport22-jDROP

∙禁止代理端口

#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>

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--des

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1