linux下防火墙iptablesWord下载.docx
- 文档编号:22321533
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:43
- 大小:184.36KB
linux下防火墙iptablesWord下载.docx
《linux下防火墙iptablesWord下载.docx》由会员分享,可在线阅读,更多相关《linux下防火墙iptablesWord下载.docx(43页珍藏版)》请在冰豆网上搜索。
-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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 防火墙 iptables