本文共 2573 字,大约阅读时间需要 8 分钟。
一、iptables简介:
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。如下图所示。
二、iptables的表与链关系 1、iptables由4表5链组成具体如下四表:filter: mangle: nat: raw:关闭在nat表中启用的连接追踪机制五链: PREROUTING: INTPUT: FORWRAD:OUTPUT:POSTROUTING
2、表与链的关系 filter:Filter表示iptables的默认表,如果没有自定义表,默认使用filter表,它具有以下三种内建链:功能:主要实现过滤功能INPUT:处理来自外部与本机进程的报文OUTPUT :处理本机产生的报文FOWARD:将数据通过本机转发至本机其他网卡或其他网络的数据 mangele:具有所有内置链,功能:拆解报文,按需修改PREROUTING: INTPUTFORWRADOUTPUTPOSTROUTING nat:实现网络地址转换功能PEROUTING,处理刚到达本机并在路由转发前的数据包,它会转换数据包中的目标IP地址通常用于DNAT(destination NAT)。OUTPUT.处理本机产生的报文POSROUTING:处理马上离开本机之前的报文,会转换数据包中的源Ip地址通常用户SNATraw:关闭在nat表中启用的连接追踪机制
PREOUTING,OUTPUT三、iptables规则 1、组成和标准:根据规则的匹配条件尝试匹配报文,对匹配成功的报文根据规则定义的处理动作Rules包括一个条件和一个目标(target)如果满足条件,就执行目标(target)中的规则或者特定值。如果不满足条件,就判断下一条Rules。2、基本处理动作:ACCEPT :允许防火墙接收数据包DROP :防火墙丢弃包QUEUE : 防火墙将数据包移交到用户空间RETURN :防火墙停止执行当前链中的后续Rules,并返回到调用链(the calling chain)中。3、主要参数:4、匹配条件匹配条件主要有基本匹配和扩展匹配1、基本匹配[!] -s, :源地址匹配[!] -d, :目标地址匹配[!] -p {tcp|udp|icmp}:限制协议:禁止所有主机ping本机// 禁止所有主机ping测本机,源和目标不指定即为所有IP
查看所有规则的具体信息 扩展匹配可以分两大类:隐式扩展:可以不用使用-m选项,前面是使用-p匹配任何协议显示扩展:必须有-m选项专门加载相应的模块隐式扩展匹配条件[!]--sport:源端口[!]--dport:目标端口[!]--tcp-fiags mask comp:检查报文中mask指明的tcp标志,而这些标志位comp必须唯1mask:sys,fin,ack,rst 禁止指定主机访问本机的SSH服务显示扩展匹配条件:multiport:多端口匹配iprange:指明一段连续的ip地址范围做为源地址或目标地址匹配 [!]--src-range from[-to]:源地址范围 [!]--dst-range from[-to]:目标地址范围
指定特有的主机可以访问本机的80和22端口:
time:根据收到报文的时间/日期与指定的时间/日期范围进行匹配--datestart YYY:MM-DD THH:mm ss 起始日期时间--datestop YYY:MM-DD THH:mm ss 结束日期时间 --timestart hh:mm[:ss]:起始时间--timestart hh:mm[:ss]:结束时间--monthdays day [,day..]:匹配一个月中的哪些天--weekdays day [,day..]:匹配一个周中的哪些天connlimit:根据客户端主机并作出并发连接限制,即每客户端同时发起连接数限制
--connlimlt-upto n :连接数量小于等于n则匹配--connlimlt-above n : 连接数量大于n则匹配;拒绝周一到周五所有主机禁止访问本机的web服务拒绝连接超过2次的主机再次访问
state:用于对报文的状态做连接追踪(可以优化防火墙规则,但超过记录的最大值所有连接就会超时,不适合访问量大的服务器开启,比如负载均衡服务器等)--state stateINVALID:无法识别的连接ESTABLISHED:连接追踪模板当中存在记录的连接NEW:连接追踪模板当中不存的连接请求 (新的请求)RELATED:连接追踪模板当中存在相关联的连接UNTRACKED:未追踪的连接允许其他主机访问80端口 5、NAT地址转换NAT只要有两个动作,且NAT表一般只应用在PERROUTING,POSTROUTING链上面SNAT:源地址转换DNAT:目标地址转换将192168.153网段的IP地址进行转换以及进行80端口进行映射 6、如何存储防火墙策略iptables 规则是写入内核中,一单重启就会失效因此需要对规则进行保持保存规则: iptables-save>/PATH/TO/SOME_RULE_FILE加载规则: iptables-restore < /PATH/FROM/SOME_RULE_FILE也可以开机自动加载进入 /etc/rc.d/rc.local 中写入加载命令即可转载于:https://blog.51cto.com/8950428/2159977