linux防火墙iptables详细教程_第1页
linux防火墙iptables详细教程_第2页
linux防火墙iptables详细教程_第3页
linux防火墙iptables详细教程_第4页
linux防火墙iptables详细教程_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、linux防火墙iptables详细教程2.1 框架图->PREROUTING->ROUTE->FORWARD->POSTROUTING->mangle | mangle manglenat | filter | nat| | |v |INPUT OUTPUT| mangle mangle| filter | natv ->local->| filter2.2 链和表表filter:顾名思义,用于过滤的时候nat:顾名思义,用于做NAT 的时候NAT:Network Address Translator链INPUT:位于filter 表,匹配目的IP

2、是本机的数据包FORWARD:位于filter 表,匹配穿过本机的数据包,PREROUTING:位于nat 表,用于修改目的地址(DNATPOSTROUTING:位于nat 表,用于修改源地址(SNAT3.1 iptables 语法概述iptables -t 要操作的表<操作命令>要操作的链规则号码匹配条件-j 匹配到以后的动作3.2 命令概述操作命令(-A、-I、-D、-R、-P、-F查看命令(-vnxL-A <链名>APPEND,追加一条规则(放到最后例如:iptables -t filter -A INPUT -j DROP在filter 表的INPUT 链里追加

3、一条规则(作为最后一条规则匹配所有访问本机IP 的数据包,匹配到的丢弃-I <链名> 规则号码INSERT,插入一条规则例如:iptables -I INPUT -j DROP在filter 表的INPUT 链里插入一条规则(插入成第1 条iptables -I INPUT 3 -j DROP在filter 表的INPUT 链里插入一条规则(插入成第3 条注意:1、-t filter 可不写,不写则自动默认是filter 表2、-I 链名规则号码,如果不写规则号码,则默认是13、确保规则号码 (已有规则数+ 1,否则报错-D <链名> <规则号码| 具体规则内容&

4、gt;DELETE,删除一条规则例如:iptables -D INPUT 3(按号码匹配删除filter 表INPUT 链中的第三条规则(不管它的内容是什么(不管其位置在哪里注意:1、若规则列表中有多条相同的规则时,按内容匹配只删除序号最小的一条2、按号码匹配删除时,确保规则号码 已有规则数,否则报错3、按内容匹配删除时,确保规则存在,否则报错-R <链名> <规则号码> <具体规则内容>REPLACE,替换一条规则例如:iptables -R INPUT 3 -j ACCEPT将原来编号为3 的规则内容替换为“-j ACCEPT”注意:确保规则号码 已有规

5、则数,否则报错-P <链名> <动作>POLICY,设置某个链的默认规则例如:iptables -P INPUT DROP设置filter 表INPUT 链的默认规则是DROP注意:当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理-F 链名FLUSH,清空规则例如:iptables -F INPUT清空filter 表INPUT 链中的所有规则iptables -t nat -F PREROUTING清空nat 表PREROUTING 链中的所有规则注意:1、-F 仅仅是清空链中规则,并不影响-P 设置的默认规则2、-P 设置了DROP 后,使用-F 一定要

6、小心!3、如果不写链名,默认清空某表里所有链里的所有规则-L 链名LIST,列出规则v:显示详细信息,包括每条规则的匹配包数量和匹配字节数x:在v 的基础上,禁止自动单位换算(K、Mn:只显示IP 地址和端口号码,不显示域名和服务名称例如:iptables -L粗略列出filter 表所有链及所有规则iptables -t nat -vnL用详细方式列出nat 表所有链的所有规则,只显示IP 地址和端口号 iptables -t nat -vxnL PREROUTING用详细方式列出nat 表PREROUTING 链的所有规则以及详细数字,不反解3.3 匹配条件流入、流出接口(-i、-o来源、

7、目的地址(-s、-d协议类型(-p来源、目的端口(-sport、-dport-i <匹配数据进入的网络接口>例如:-i eth0匹配是否从网络接口eth0 进来-i ppp0匹配是否从网络接口ppp0 进来-o 匹配数据流出的网络接口例如:-o eth0-o ppp0-s <匹配来源地址>可以是IP、NET、DOMAIN,也可空(任何地址例如:-d <匹配目的地址>可以是IP、NET、DOMAIN,也可以空例如:-p <匹配协议类型>可以是TCP、UDP、ICMP 等,也可为空例如:-p tcp-p udp-p icmp -icmp-type 类

8、型ping: type 8 pong: type 0-sport <匹配源端口>可以是个别端口,可以是端口范围例如:-sport 1000 匹配源端口是1000 的数据包-sport 1000:3000 匹配源端口是1000-3000 的数据包(含1000、3000 -sport :3000 匹配源端口是3000 以下的数据包(含3000-sport 1000: 匹配源端口是1000 以上的数据包(含1000-dport <匹配目的端口>可以是个别端口,可以是端口范围例如:-dport 80 匹配源端口是80 的数据包-dport 6000:8000 匹配源端口是600

9、0-8000 的数据包(含6000、8000 -dport :3000 匹配源端口是3000 以下的数据包(含3000-dport 1000: 匹配源端口是1000 以上的数据包(含1000注意:-sport 和-dport 必须配合-p 参数使用1、端口匹配-p udp -dport 53匹配网络中目的地址是53 的UDP 协议数据包2、地址匹配3、端口和地址联合匹配注意:1、-sport、-dport 必须联合-p 使用,必须指明协议类型是什么2、条件写的越多,匹配越细致,匹配范围越小3.4 动作(处理方式ACCEPTDROPSNATDNATMASQUERADE-j ACCEPT通过,允许

10、数据包通过本链而不拦截它类似Cisco 中ACL 里面的permit例如:iptables -A INPUT -j ACCEPT允许所有访问本机IP 的数据包通过-j DROP丢弃,阻止数据包通过本链而丢弃它类似Cisco 中ACL 里的deny例如:-j SNAT -to IP-IP:端口-端口(nat 表的POSTROUTING 链源地址转换,SNAT 支持转换为单IP,也支持转换到IP 地址池(一组连续的IP 地址例如:同上,只不过修改成一个地址池里的IP-j DNAT -to IP-IP:端口-端口(nat 表的PREROUTING 链目的地址转换,DNAT 支持转换为单IP,也支持转

11、换到IP 地址池(一组连续的IP 地址例如:iptables -t nat -A PREROUTING -i ppp0 -p tcp -dport 80 iptables -t nat -A PREROUTING -i ppp0 -p tcp -dport 81 iptables -t nat -A PREROUTING -i ppp0 -p tcp -dport 80 -j MASQUERADE动态源地址转换(动态IP 的情况下使用例如:3.5 附加模块按包状态匹配(state按来源MAC 匹配(mac按包速率匹配(limit多端口匹配(multiport-m state -state 状态

12、状态:NEW、RELATED、ESTABLISHED、INVALIDNEW:有别于tcp 的synESTABLISHED:连接态RELATED:衍生态,与conntrack 关联(FTPINVALID:不能被识别属于哪个连接或没有任何状态例如:iptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT-m mac -mac-source MAC匹配某个MAC 地址例如:iptables -A FORWARD -m -mac-source xx:xx:xx:xx:xx:xx -j DROP阻断来自某MAC 地址的数据包,通过本机

13、注意:MAC 地址不过路由,不要试图去匹配路由后面的某个MAC 地址-m limit -limit 匹配速率-burst 缓冲数量用一定速率去匹配数据包例如:-j ACCEPT注意:limit 仅仅是用一定的速率去匹配数据包,并非“限制”-m multiport <-sports|-dports|-ports> 端口1,端口2,.,端口n一次性匹配多个端口,可以区分源端口,目的端口或不指定端口例如:iptables -A INPUT -p tcp -m multiports -ports 21,22,25,80,110 -j ACCEPT注意:必须与-p 参数一起使用4. 实例分析

14、单服务器的防护如何做网关如何限制内网用户内网如何做对外服务器连接追踪模块4.1 单服务器的防护弄清对外服务对象书写规则网络接口lo 的处理状态监测的处理协议+ 端口的处理实例:一个普通的web 服务器iptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p tcp -m multiport 22,80 -j ACCEPTiptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP注意:确保规则循序正确,弄清逻辑关系,学会时刻使用-vn

15、L 4.2 如何做网关弄清网络拓扑本机上网设置nat启用路由转发地址伪装SNAT/MASQUERADE实例:ADSL 拨号上网的拓扑echo "1" > /proc/sys/net/ipv4/ip_forward-j MASQUERADE4.3 如何限制内网用户过滤位置filer 表FORWARD 链匹配条件-s -d -p -s/dport处理动作ACCEPT DROP实例:iptables -A FORWARD -m mac -mac-source 11:22:33:44:55:66 -j DROP4.4 内网如何做对外服务器服务协议(TCP/UDP对外服务端口内

16、部服务器私网IP内部真正服务端口实例:iptables -t nat -A PREROUTING -i ppp0 -p tcp -dport 80 iptables -t nat -A PREROUTING -i ppp0 -p tcp -dport 81 4.5 连接追踪模块为什么要使用连接追踪模块FTP 协议的传输原理传统防火墙的做法如何使用使用端口command portdata port传输模式主动模式(ACTIVE被动模式(PASSIVE主动模式client serverxxxx |-|-|->| 21yyyy |<-|-|-| 20FW1 FW2被动模式client s

17、erverxxxx |-|-|->| 21yyyy |-|-|->| zzzzFW1 FW2只使用主动模式,打开TCP/20防火墙打开高范围端口配置FTP 服务,减小被动模式端口范围modprobe ipt_conntrack_ftpmodprobe ipt_nat_ftpiptables -A INPUT -p tcp -dport 21 -j ACCEPTiptables -A INPUT -m state -state RELATED,ESTABLISHED -j ACCEPTiptables -P INPUT DROP5. 网管策略怕什么能做什么让什么vs 不让什么三大“纪

18、律”五项“注意”其他注意事项5.1 必加项echo "1" > /proc/sys/net/ipv4/ip_forwardecho "1" > /proc/sys/net/ipv4/tcp_syncookiesecho "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses modprobe ip_conntrack_ftpmodprobe ip_nat_ftp5.2 可选方案堵:iptables -A FORWARD -p tcp -dport xxx -j DROPiptables -A FORWARD -p tcp -dport yyy:zzz -j DROP通:iptab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论