收藏 分销(赏)

Linux-应用基础教程--CH22-IPtables防火墙.ppt

上传人:天**** 文档编号:5880598 上传时间:2024-11-22 格式:PPT 页数:76 大小:1.53MB
下载 相关 举报
Linux-应用基础教程--CH22-IPtables防火墙.ppt_第1页
第1页 / 共76页
Linux-应用基础教程--CH22-IPtables防火墙.ppt_第2页
第2页 / 共76页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,22,章,IPtables,防火墙,本章内容要点,防火墙的相关概念,Netfilter/iptables,架构,使用,iptabls,配置包过滤和,NAT,本章学习目标,理解防火墙、堡垒主机、,DMZ,、,NAT,等概念,掌握过滤(状态过滤)防火墙的工作原理,掌握,Netfilter/iptables,的功能及用途,理解,数据包在,Netfilter,多表中的穿越流程,掌握,RHEL/CentOS,下防火墙的组成及工具使用,掌握,iptables,的命令语法,学会阅读和修改,iptables,的规则集文件,学会编写,bash,脚本配置包过滤和,NAT,了解第三方防火墙配置工具及发行版,防火墙概述,防火墙的典型应用,架设在一个较低信任级别的,互联网,和一个较高信任级别的,内部网络,之间,实现对内部网络的保护,防火墙的功能,提供边界防护,控制内外网之间网络系统的访问,提高内部网络的保密性和私有性,对网络服务的限制,保护易受攻击的服务,只有授权的流量才允许放行,审计和监控,记录网络的使用状态,可以实现对异常行为的报警,集中管理内网的安全性,降低管理成本,对网络渗透的自身免疫,保证防火墙自身的安全性,NETFILTER/IPTABLES,架构,Netfilter/iptables,简介,Linux,的防火墙系统,Linux,内核,2.4,版本之后的,防火墙,解决方案,netfilter,是内核空间中实现防火墙的,内部架构,iptables,是用户空间中配置防火墙的,命令工具,Netfilter/iptables,的主要功能,包过滤(,Packet filtering,),连接跟踪(,Connection tracking,),网络地址转换(,Network Address Translation,),重整包头(,Mangling packet header fields,),表(,table,),Netfilter,在内核运行的内存中维护一系列的,表,内核模块通过查表方法决定包的处理方式,表的结构,iptables,将,表抽象为若干链,(,chain,),,链对应,Netfilter,的检查点,链由若干决定特定,数据包处理方式的,规则(,rule,)构成,Netfilter/iptables,使用的表,filter,实现包过滤,是默认的表,Hooks,:,LOCAL_IN,LOCAL_OUT,FORWARD,内置链:,INPUT,、,OUTPUT,、,FORWARD,nat,实现,NAT,Hooks,:,LOCAL_OUT,PRE_ROUTING,POST_ROUTING,内置链:,OUTPUT,、,PREROUTING,、,POSTROUTING,Netfilter/iptables,使用的表,-,续,mangle,用于,改写包头,特定字段的内容,Hooks:LOCAL_IN,LOCAL_OUT,FORWARD,PRE_ROUTING,POST_ROUTING,内置链:,INPUT,、,OUTPUT,、,FORWARD,、,PREROUTING,、,POSTROUTING,raw,用于使数据包绕过连接跟踪,Hooks:LOCAL_OUT,PRE_ROUTING,内置链:,OUTPUT,、,PREROUTING,iptables,命令工具,iptables,只是一个配置防火墙规则的用户管理工具,实际真正执行规则的是内核中的,Netfilter,及其相关模块,iptables,的功能,向链中追加、插入或删除规则,设置预定义(默认,/,内置)链策略,生成自定义链,查看链中的规则,使用,iptables,命令,设置规则,设置规则的,iptables,命令应该包含,5,个要素,表(,table,),:可以是,filter,、,nat,、,mangle,或,raw,。,命令(,command,),:包括添加、删除、更新规则;,创建自定义链和对内置链设置链策略等,。,链(,chains,),:针对不同用途指定要操作的链。,匹配器(,matcher,),:可以指定各种规则匹配,如,IP,地址、端口、包类型等。,目标(,target,),:当规则匹配一个包时执行的动作。例如:接受或拒绝。,目标是可选的,但是每条规则最多只能有一个目标,如没有目标,就默认使用链的策略。,iptables,命令语法,iptables-t table cmd chain matches target,iptables,命令的基本匹配规则,使用,iptables,命令,设置规则例,向过滤表(,filter,)的,INPUT,链尾追加(,-A,)一条规则,拒绝所有源地址是,192.168.0.1,的包,所有的表名使用小写字母,所有的链名使用大写字母,所有的规则匹配使用小写字母,,,所有的,目标动作使用大写字母,传统过滤器的规则设置方法,主机过滤防火墙,一块网卡连接网络,过滤只涉及两个链,192.168.0.1,下面的例子假定防火墙的默认策略为拒绝一切包,举例,1,:,ssh,的入站过滤,协议类型:,TCP,入站包,目的端口为,22,源端口号为,1023,的随机值,入,站,连接建立,的,第一个数据包没有ACK标志设置,随后的数据包均包含,ACK,标志设置,出站包(回应请求),源端口为,22,(运行在防火墙上的,SSH,服务),目的端口是入站包使用的随机端口,所有的出站包均包含,ACK,标志设置,防火墙上的,sshd,对外提供服务,举例,1,:,ssh,的入站过滤规则,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,IN,TCP,192.168.0.10,1023,192.168.0.1,22,*,Accept,OUT,TCP,192.168.0.1,22,192.168.0.10,1023,Yes,Accept,#iptables-I INPUT -i eth0-p tcp,-s 192.168.0.10-sport 1024:65535,-d 192.168.0.1-dport 22,-j ACCEPT,#iptables-I OUTPUT-o eth0-p tcp!-syn,-s 192.168.0.1-sport 22,-d 192.168.0.10-dport 1024:65535,-j ACCEPT,举例,2,:,telnet,的出站过滤,协议类型:,TCP,出站包,目的端口为,23,源端口号为,1023,的随机值,出站,连接建立,的,第一个数据包没有ACK标志设置,随后的数据包均包含,ACK,标志设置,入站包(回应请求),源端口为,23,(运行在其他主机上的,Telnet,服务),目的端口是出站包使用的随机端口,所有的入站包均包含,ACK,标志设置,防火墙访问其他主机的,telnet,服务,举例,2:telnet,的出站过滤规则,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,OUT,TCP,192.168.0.1,1023,*,23,*,Accept,IN,TCP,*,23,192.168.0.1,1023,Yes,Accept,#iptables-I OUTPUT-o eth0-p tcp,-s 192.168.0.1-sport 1024:65535,-dport 23,-j ACCEPT,#iptables-I INPUT -i eth0-p tcp!-syn,-sport 23,-d 192.168.0.1-dport 1024:65535,-j ACCEPT,举例,3:smtp,的入站和出站过滤,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,IN,TCP,*,1023,192.168.0.1,25,*,Accept,OUT,TCP,192.168.0.1,25,*,1023,Yes,Accept,OUT,TCP,192.168.0.1,1023,*,25,*,Accept,IN,TCP,*,25,192.168.0.1,1023,Yes,Accept,防火墙上的,smtp,对外提供服务,也可访问其他主机的,smtp,服务,#iptables-I INPUT-p tcp-sport 1024:65535,-d 192.168.0.1-dport 25 -j ACCEPT,#iptables-I OUTPUT-p tcp!-syn-s 192.168.0.1-sport 25,-dport 1024:65535 -j ACCEPT,#iptables-I OUTPUT-p tcp -s 192.168.0.1-sport 1024:65535,-dport 25 -j ACCEPT,#iptables-I INPUT-p tcp!-syn -sport 25 ,-d 192.168.0.1-dport 1024:65535 -j ACCEPT,举例,4:DNS,的入站和出站过滤,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,IN,UDP,*,1023,192.168.0.1,53,Accept,OUT,UDP,192.168.0.1,53,*,1023,Accept,OUT,UDP,192.168.0.1,1023,*,53,Accept,IN,UDP,*,53,192.168.0.1,1023,Accept,防火墙上的,DNS,对外提供服务,也可访问其他主机的,DNS,服务,#iptables-I INPUT-p udp-sport 1024:65535,-d 192.168.0.1-dport 53 -j ACCEPT,#iptables-I OUTPUT-p udp-s 192.168.0.1-sport 53,-dport 1024:65535 -j ACCEPT,#iptables-I OUTPUT-p udp -s 192.168.0.1-sport 1024:65535,-dport 53 -j ACCEPT,#iptables-I INPUT-p udp -sport 53 ,-d 192.168.0.1-dport 1024:65535 -j ACCEPT,网络过滤防火墙(,1,),至少两块网卡连接不同网络,192.168.0.1,eth0,eth1,下面的例子假定防火墙的默认策略为拒绝一切包,#echo “1”/proc/sys/net/ipv4/ip_forward,网络过滤防火墙(,2,),涉及三个链(下面重点讨论转发包的过滤),举例,5,:内网访问外网,ssh,服务的过滤规则,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,内,外,TCP,192.168.0.0/24,1023,*,22,*,Accept,外,内,TCP,*,22,192.168.0.0/24,1023,Yes,Accept,#iptables-I FORWARD -i eth0-o eth1-p tcp,-s 192.168.0.0/24-sport 1024:65535,-dport 22 -j ACCEPT,#iptables-I FORWARD-i eth1-o eth0-p tcp!-syn,-sport 22,-d 192.168.0.0/24-dport 1024:65535,-j ACCEPT,举例,6,:外网访问内网,telnet,服务的过滤规则,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,外,内,TCP,*,1023,192.168.0.0/24,23,*,Accept,内,外,TCP,192.168.0.0/24,23,*,1023,Yes,Accept,#iptables-I FORWARD-i eth1-o eth0-p tcp,-sport 1024:65535,-d 192.168.0.0/24 -dport 23,-j ACCEPT,#iptables-I FORWARD -i eth0-o eth1-p tcp!-syn,-s 192.168.0.0/24 -sport 23,-dport 1024:65535,-j ACCEPT,举例,7:smtp,的内外转发过滤,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,内,外,TCP,192.168.0.0/24,1023,*,25,*,Accept,外,内,TCP,*,25,192.168.0.0/24,1023,Yes,Accept,外,内,TCP,*,1023,192.168.0.0/24,25,*,Accept,内,外,TCP,192.168.0.0/24,25,*,1023,Yes,Accept,防火墙允许内网访问外网的,smtp,服务,也允许外网访问内网的,smtp,服务,#iptables-I FORWARD-p tcp-s 192.168.0.0/24-sport 1024:65535,-dport 25 -j ACCEPT,#iptables-I FORWARD-p tcp!-syn-sport 25,-d 192.168.0.0/24-dport 1024:65535 -j ACCEPT,#iptables-I FORWARD-p tcp -sport 1024:65535,-d 192.168.0.0/24 -dport 25 -j ACCEPT,#iptables-I FORWARD-p tcp!-syn-s 192.168.0.0/24-sport 25 ,-dport 1024:65535 -j ACCEPT,举例,8:DNS,的内外转发过滤,Dir,Proto,SA,SP,DA,DP,ACK,?,Action,内,外,UDP,192.168.0.0/24,1023,*,53,Accept,外,内,UDP,*,53,192.168.0.0/24,1023,Accept,外,内,UDP,*,1023,192.168.0.0/24,53,Accept,内,外,UDP,192.168.0.0/24,53,*,1023,Accept,#iptables-I FORWARD-p udp-s 192.168.0.0/24-sport 1024:65535,-dport 53 -j ACCEPT,#iptables-I FORWARD-p udp-sport 53,-d 192.168.0.0/24-dport 1024:65535 -j ACCEPT,#iptables-I FORWARD-p udp -sport 1024:65535,-d 192.168.0.0/24-dport 53 -j ACCEPT,#iptables-I FORWARD-p udp-s 192.168.0.0/24-sport 53 ,-dport 1024:65535 -j ACCEPT,防火墙允许内网访问外网的,DNS,服务,也允许外网访问内网的,DNS,服务,传统包过滤的缺陷,规则复杂,过滤规则必须成对出现,必须为入站请求的回应包打开随机端口,(1024-65535),必须为出站请求的回应包打开随机端口,(1024-65535),必须为转发请求的回应包打开随机端口,(1024-65535),对于,UDP,协议包无法检查是请求还是回应,对于,FTP,协议,由于存在主动和被动之分,规则配置更复杂,对传统包过滤的改进,Netfilter,支持状态过滤,为数据包在,IP,层重建连接保存包的连接状态,即使,UDP,没有,ACK,标志,也可以通过已经记住的,UDP,包状态构建相关联的回应连接,可以使用一条规则跟踪回应包,而不必为每个服务的连接单独开放回应,可以检查应用层报文,可以通过检查,FTP,应用层协议的,PASV/PORT,命令数据流找到,FTP,数据流需要的返回端口,连接跟踪和状态防火墙,连接跟踪和状态防火墙概述,Netfilter/iptables,可以配置有状态的防火墙,在,Netfilter,中使用连接跟踪表跟踪包状态,在,iptables,中使用状态实现指定类型的包匹配,Netfilter,的,连接跟踪检查每个,IP,数据包的上下文,由,ip_conntrack.ko,和,ip_conntrack_*.ko,模块实现,内存中维护着连接跟踪状态的表,/proc/net/ip_conntrack,iptables,为用户空间提供了连接跟踪的匹配状态,NEW,:初始连接包,ESTABLISHED,:连接的回应包,RELATED,:由,某个已经建立的连接所建立的新连接,INVALID,:,不能被识别属于哪个连接或没有任何状态,iptables,的,状态匹配扩展,首先,使用一条规则来允许连接应答包,然后,对每个允许的服务的新连接设置一条规则,最后使用一条规则来阻止所有其它进入的连接,-m state-state!,iptables-A INPUT,-m state state ESTABLISHED,RELATED,-j ACCEPT,iptables-A INPUT,-m state state NEW,-p tcp dport 22-j ACCEPT,iptables-A INPUT,-m state state NEW,-p tcp dport 80-j ACCEPT,iptables-A INPUT,-m state state NEW,-j DROP,iptables,的,状态匹配扩展,举例,使用状态匹配设置转发规则,#iptables-A FORWARD,-i -o ,-s 192.168.0.0/24-sport 1024:65535,-m state-state NEW,ESTABLISHED,RELATED,-j ACCEPT,#iptables-A FORWARD,-i -o ,-m state-state ESTABLISHED,RELATED,-j ACCEPT,NEW,状态与,TCP,标志位,为了使备份防火墙在接管工作时不,丢失,数据,传输,状态,NEW,会允许几乎所有的,TCP,连接进入,而不管是否经过了,3,次握手,在不使用备份防火墙的系统中应该同时检查,SYN,或将所有没有设置,SYN,标志位的,NEW,状态的数据包视为攻击包,将其纳入系统日志并丢弃,iptables-A INPUT,-p tcp!-syn,-m state-state NEW,-j LOG-log-prefix New but no SYN:,iptables-A INPUT,-p tcp!-syn,-m state-state NEW-j DROP,iptables-A INPUT,-p tcp-syn,-m state state NEW-p tcp dport 22-j ACCEPT,iptables-A INPUT,-p tcp-syn,-m state state NEW-p tcp dport 80-j ACCEPT,连接跟踪的优缺点,优点,提高效率:连接跟踪加快了已建立连接的后续数据包的放行,简化规则设计:可以使用一条规则跟踪所有连接的回应包,提高安全性:,可以只开放那些有应答数据的端口,,无需,打开,1024,以上的所有端口来放行应答数据,包,缺点,需要使用更多的物理内存,/proc/sys/net/ipv4/ip_conntrack_max,对连接跟踪进行调优,指定连接跟踪最大连接数,/etc/sysctl.conf,filter.nf_conntrack_max=500000,指定连接跟踪模块加载时使用的,cache,大小,/etc/modprobe.conf,options ip_conntrack hashsize=200000,非,连接跟踪,配置举例,对目标端口为,80,的数据包标记,NOTRACK,放行访问本地的所有回应包和关联包,同时放行已经被,raw,表标记为,NOTRACK,的非跟踪状态包,允许连接本地,FTP,服务和,SSH,服务,拒绝其他所有对本地的连接,iptables-raw-A PREROUTING -p tcp -m tcp -dport 80 -j NOTRACK,iptables-A INPUT-m state-state ESTABLISHED,RELATED,UNTRACKED-j ACCEPT,iptables-A INPUT-m state-state NEW-p tcp-dport 21-j ACCEPT,iptables-A INPUT-m state-state NEW-p tcp-dport 22-j ACCEPT,iptables-A INPUT-j DROP,RHEL/CENTOS 5,的,防火墙,RHEL/CentOS,防火墙组成,内核空间,Linux,内核中内建的,Netfilter,架构,可动态加载的模块,/lib/modules/$(uname-r)/kernel/net/ipv4,6/netfilter/*.ko,用户空间,iptables,命令行工具,防火墙配置工具,system-config-securitylevel,-tui,防火墙配置文件,/etc/sysconfig/iptables-config,防火墙,INIT,控制脚本,/etc/rc.d/init.d/iptables,防火墙规则集文件,/etc/sysconfig/iptables,iptables,的,INIT,脚本,的任务,脚本,实现如下任务,加载防火墙配置文件,/etc/sysconfig/iptables-config,在启用,/,停用时加载,/,卸载相关的内核模块,使用,iptables-restore,命令通过规则集文件,/etc/sysconfig/iptables,加载防火墙规则,使用,iptables-save,命令存储当前的防火墙规则到规则集文件,/etc/sysconfig/iptables,清除防火墙规则;设置最严格的防火墙规则等,iptables,无需运行守护进程,因为,Netfilter,是,Linux,内核提供的功能,使用,iptables,的,INIT,脚本,应用规则集文件加载防火墙规则,#service iptables start,清除所有防火墙规则(停用防火墙),#service iptables stop,存储当前的防火墙规则到规则集文件,当防火墙启用后,若用户使用,iptables,对当前的防火墙规则进行了修改,而所做的修改希望在下次启用时生效,就应该执行此操作,#service iptables save,应用最严格的防火墙规则,对所有表的所有链设置,DENY,策略,用于紧急情况,#service iptables panic,防火墙配置文件,/etc/sysconfig/iptables-config,用于控制,Netfilter/iptables,的行为,加载额外的,iptables,内核模块,多个模块以空格间隔,IPTABLES_MODULES=ip_conntrack_netbios_ns ip_conntrack_ftp,在执行,service iptables restart|stop,时是否卸载已加载的内核模块,IPTABLES_MODULES_UNLOAD=yes“,RHEL/CentOS,的,防火墙配置工具,#system-config-securitylevel-tui,或,#lokkit,防火墙规则持续性,iptables-save,将规则集文件保存到指定的文件,#/sbin/iptables-save,-c,/,root,/iptables-20110211,参数,-c,的用于是保存包和字节计数器的值,使重启防火墙后不丢失对包和字节的统计。,若希望,将当前规则存入,iptables INIT,管理脚本调用的默认规则集文件,,执行如下命令即可,#service iptables save,iptables-restore,将指定文件中的规则装载到内存,#/sbin/iptables-restore-c /root/iptables-20110211,默认规则集文件,/etc/sysconfig/iptables,规则集文件,具有特殊的格式,以“,#”,开始的行为注释。,以“*”开始的行指定某表中的链和规则的开始(*,)。,以“,:”,开始的行指定表中的链策略(,:,)。这两个计数器和“,iptables-L-v”,命令输出中用到的计数器是一样的。,以“,-”,开始的行指定表中的规则。,关键字为“,COMMIT”,的行表示一个表的结束,说明此时就要将此表的规则装入内核了。,管理员可以直接修改规则集文件来配置防火墙,规则集文件,举例,*,filter,:,INPUT ACCEPT 0:0,:,FORWARD ACCEPT 0:0,:,OUTPUT ACCEPT 0:0,:,RH-Firewall-1-INPUT-0:0,-A INPUT-j RH-Firewall-1-INPUT,-A FORWARD-j RH-Firewall-1-INPUT,-A RH-Firewall-1-INPUT-i lo-j ACCEPT,-A RH-Firewall-1-INPUT-p icmp-icmp-type any-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state ESTABLISHED,RELATED-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state NEW-m udp-p udp-dport 67-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state NEW-m udp-p udp-dport 69-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 22-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 80-j ACCEPT,-A RH-Firewall-1-INPUT-m state-state NEW-m tcp-p tcp-dport 21-j ACCEPT,-A RH-Firewall-1-INPUT-j REJECT-reject-with icmp-host-prohibited,COMMIT,IPTABLES,命令使用进阶,使用,iptables,命令,构建防火墙,的步骤,清除所有规则,为了避免新建的防火墙与系统中已经运行的防火墙相互干扰,一般应该先清除所有规则。,设置防火墙策略,设置当数据包没有匹配到链中的规则时应该如何对待(是拒绝还是放行)。,设置防火墙规则,设置数据包的匹配规则以及匹配后的处理动作(指定目标)。,清除防火墙规则,-F,或,-flush,清除指定链和表中的所有规则。,若没有指定链,则清空所有链。,-X,或,-delete-chain,删除指定的用户自定义链。,必须保证链中的规则都不在使用时才能删除链。,若没有指定链,则删除所有的用户自定义链。,-Z,或,-zero,对链中所有的包计数器和字节计数器清零。,语法,:,iptables-t table-FXZ chain,清除防火墙规则举例,iptables-F,iptables-F FORWORD,iptables-nat-F PERROUTING,iptables-X,iptables-X mychain,iptables-Z,for tables in filter nat mangle raw;do,iptables-t$tables,-,F,iptables-t$tables,-,X,iptables-t$tables-Z,done,设置防火墙策略,例如:,#iptables-P INPUT DROP,#iptables-P OUTPUT ACCEPT,#iptables-t nat-P PREROUTING ACCEPT,语法,:,iptables-t table-P chain ACCEPT|DROP,注意,:当管理员使用,ssh,远程登录防火墙配置规则时,在使用拒绝策略之前一定要先开放,22,端口,否则会将远程配置防火墙的管理员也“拒之门外”。,#iptables-F,#iptables-A INPUT-m state-state ESTABLISHED,RELATED-j ACCEPT,#iptables-A INPUT-m state-state NEW-p tcp-dport 22-j ACCEPT,#iptables-P INPUT DROP,防火墙策略的设置方法,方法,1,:,首先配置策略禁止所有的包,然后再根据需要的服务设置规则允许特定的包通过,最安全,但不太方便,方法,2,:,首先配置策略允许所有的包,然后再根据需要的服务设置规则允许特定的包通过,最后在链中添加一条可捕捉一切的,拒绝,规则,当,捕捉一切的,拒绝,规则被误删除将导致门户的全面开放,“没有明确允许的都被拒绝”,拒绝目标的使用,-j DROP,简单丢弃数据包(无回应),-j REJECT-reject-with,拒绝数据包并用,ICMP,错误信息予以回应,ICMP,信息,类型,返回的错误信息内容,icmp-net-unreachable,Destination Net Unreachable,icmp-host-unreachable,Destination Host Unreachable,icmp-port-unreachable,Destination Port Unreachable,icmp-proto-unreachable,Destination Protocol Unreachable,icmp-net-prohibited,Dest Unreachable,Bad Code:9,icmp-host-prohibited,Dest Unreachable,Bad Code:10,默认策略与拒绝目标的使用,#iptables-P INPUT ACCEPT,#iptables-A INPUT,-j DROP,(应为,INPUT,链的最后一条规则),#iptables-P OUTPUT ACCEPT,#iptables-A OUTPUT,-j DROP,(应为,OUTPUT,链的最后一条规则),#iptables-P FORWARD ACCEPT,#iptables-A FORWARD,-j DROP,(应为,FORWARD,链的最后一条规则),#iptables-P INPUT ACCEPT,#iptables-A INPUT,-j REJECT-reject-with icmp-host-prohibited,#iptables-P OUTPUT ACCEPT,#iptables-A OUTPUT,-j REJECT-reject-with icmp-host-prohibited,#iptables-P FORWARD ACCEPT,#iptables-A FORWARD,-j REJECT-reject-with icmp-host-prohibited,动态管理防火墙规则,规则的“增,|,删,|,改”,-A,或,-append,在所选链的链尾加入一条规则,-I,或,-insert rulenum,以给出的规则号在所选链中插入一条规则,-R,或,-replace rulenum,以给出的规则号在所选链中替换一条规则,-D,或,-delete rulenum,以给出的规则号从所选链中删除一条规则,语法:,iptables-t table,-j,动态管理防火墙规则,规则的显示,-L,或,-list-line-numbers-v-n,选项,-line-numbers,用于显示规则编号,选项,-v,使输出详细化,输出中包括网络接口的地址、规则的选项、,TOS,、字节和包计数器等(计数器是以,K,、,M,、,G,为单位的,是,10,的幂而不是,2,的幂),选项,-n,在输出中以,IP,地址和端口数值的形式显示,而不是默认的名字,比如主机名、端口名等,#,iptables-vnL,#,iptables-t,nat,-vnL,#,iptables-t nat-vnL PREROUTING,动态管理防火墙规则,举例,#i,ptables,-,F,#iptables-P INPUT ACCEPT,#iptables-nL,#iptables-I INPUT 1-o lo-j ACCEPT,#iptables-A INPUT -s 192.168.0.0/24-j ACCEPT,#iptables-line-numbers -vnL,#iptables-I INPUT 2-s 192.168.1.0/24-j ACCEPT,#iptables-A INPUT-j DROP,#iptables-line-numbers -vnL INPUT,#iptables-R INPUT 1-i lo-j ACCEPT,#iptables-D INPUT 1,注意,:当最后一条规则设置了捕捉一切的拒绝规则时,添加新规则时应使用插入(,-I,)命令而不是追加(,-A,)命令。,日志记录目标,-j LOG,选项,为匹配的包开启内核日志记录,选项,说明,-log-level,指定日志记录级别,-log-prefix,在记录信息前加上指定的前缀:最多,14,个字符,用来和日志中其他信息区别,-log-tcp-sequence,记录,TCP,序列号。如果记录能被用户读取那么这将存在安全隐患。,-log-tcp-options,记录来自,TCP,包头部的选项,-log-ip-options,记录来自,IP,包头部的选项,#iptables-A INPUT-m state-state INVALID,-j LOG-log-prefix INVALID input:,#iptables-A INPUT-m state-state INVALID-j DROP,日志记录的流程和注意事项,数据包的日志记录流程,获取数据包,分析包信息(根据各协议计算各部分数据偏移量),打印内核信息(根据不同协议打印不同信息,),syslog,捕获内核信息,根据,syslog,配置决定如何输出(文件,/,远程),注意事项,LOG,需占用一定负载,选项越多记录的日志信息越多,通常只记录疑似攻击的数据包,随后拒绝这些包,对于重负载系统尽量不要写硬盘,即不记录日志,如需记录日志,尽量少记,否则雪上加霜,使用自定义链,使用自定义链,的优势,加快规则的匹配速度,相当于使用了,分类查询,而,不是,线性查询,使规则的设计更加逻辑清晰,,例如,可以将不同网段的规则分别放入不同的自定义链处理,可以将不同,协议,的规则分别放入不同的自定义链处理,可以将所有日志处理的功能放入特定的自定义链处理,可以将,所有,无效包,处理,的,功能放入特定的自定义链处理,简化规则的设置,例如当,INPUT,链和,FORWARD,链的规则相同时,如,CentOS,系统的防火墙配置工具,lokkit,就使用此种配置,定义,自定义链,和,使用自定义链,目标,-j,-jump,:调用,自定义链检查结束后返回调用它的主链继续其他规则检查,-g,-goto,:跳转,一去不复返,定义,:,iptables-t table,-,N,使用,:,iptables-t table ,-j|-g,使用自定义链,举例,定义和使用自定义链用于处理局域网数据包,定义和使用自定义链用于记录并删除无效数据包,#iptable
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服