Linux系统Web应用防火墙配置

一、防火墙简介

防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。 

     防火墙的布防方式:

        1.串联部署:最佳 的存放部署,防护性强,但如果防火墙出问题后,整个企业服务就会受影响。

        2.旁路部署:综合最好的存放部署方式 ,不会因防火墙出问题而导致整个企业服务受影响,但防护相对串联部署较薄弱。

二、iptables包过滤流程

iptables是采用【数据包】过滤机制工作的,所以它会对请求的数据包的【包头数据】进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。

       【数据包的包头】是传输数据流经OSI七层模型中,经过各个层时,各个层根据遵循的协议给数据进行层层打包,如下图所示:

iptables工作流程

防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。

防火墙如果根据设置的规则匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。

如果数据包在所有规则中没有匹配到明确的规则是阻止还是通过,从而会向下进行匹配直到匹配默认规则后,得到明确的默认规则,从而得出确认是阻止还是通过。

防火墙的默认规则是对应链里的所有规则执行完以后才会执行的(最后执行的规则)。

三、iptables的4表5链作用关系及工作原理

根据 IPtables的内部结构可以细化分为以功能为做区分的称呼为表,以IPtables动作为区分的称呼为链;其中包含关系为:IPtables(用户空间)-->netfilter (内和空间)-->tables(4表) -->chains(5链)--> 规则policy。

      注:可以通过man IPtables 命令查看系统中具体的表和链的说明

  1.tables四表的作用

        filter(主机防火墙):对主机的数据包进出进行控制,主要是IPtables默认的表;   表中包含的对应的链:INPUT(进入),OUTPUT(出去),FORWARD(流经,转发)

        nat  :用于端口或者IP映射或共享上网;     表中包含的链:POSTROUTING(流出主机后路由),PREROUTING(进入主机前路由),OUTPUT(流出主机)

        mangle:用于配置路由标记  ttl \ tos \ mark(拆解报文,做出修改,并重新封装起来); 表中包含的链: INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING

        raw:关闭nat表上启用的连接追踪机制;表中包含的链: OUTPUT,PREROUTING

  2.chains链的作用

        INPUT:进入主机的数据包。主机防火墙最关键的链(filter表的INPUT链)

        OUTPUT:流出主机的数据包

        FORWARD:流经主机的数据包

        PREROUTING:进入服务器最先经过的链,NAT端口或IP映射(导向)。(nat表的PREROUTING链)

        POSTROUTIN:在流出服务器最后经过的链,NAT共享上网。局域网共享上网(nat表的POSTROUTING链) 

四、iptables的基础命令

1、常用的管理选项
-A :在指定链的末尾追加(--append)一条新的规则

-I :在指定链的开头插入(--insert)一条新的规则,未指定序号时默认作为第一条规则

-R :修改、替换(--replace)指定链中的某一条规则,可指定规则序号或具体内容

-P :设置指定链的默认策略(--policy)

-D :删除(--delete)指定链中的某一条规则,可指定规则序号或具体内容

-F :清空(--flush)指定链中的所有规则,若未指定链名,则清空表中的所有链

-L :列出(--list)指定链中所有的规则,若未指定链名,则列出表中的所有链

-n :使用数字形式(--numeric)显示输出结果,如显示 IP 地址而不是主机名

-v :显示详细信息,包括每条规则的匹配包数量和匹配字节数

--line-numbers:查看规则时,显示规则的序号
2、常用的参数
-p 协议

-s 源地址

-d 目的地址

-i 入站网卡

-o 出站网卡

--sport 源端口

--dport 目的端口
3、常用的控制类型
ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给出任何回应信息。

REJECT:拒绝数据包通过,会给数据发送端一个响应信息。

SNAT:修改数据包的源地址。

DNAT:修改数据包的目的地址。

MASQUERADE:伪装成一个非固定公网IP地址。

LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。LOG只是一种辅助动作,并没有真正处理数据包。

五、命令使用

1、查看规则列表

iptables [-t 表名] -n -L [链名] [--line-numbers]
或
iptables -[vn]L  #合并写法-n必须放在L前  不可以合写为 -Ln



iptables -L 
#查看所有iptables

iptables -nL  #合并写法-n必须放在L前 iptables -n -L
#-n将协议名转换为端口号显示

iptables -nL -v
#-v查看过滤了多少包/字节



iptables -nL --line-numbers
#--line-numbers 显示规则的序号

iptables -t filter -nL --line-numbers
#-t指定filter表



iptables -t filter -nL       #不写链名显示所有链

iptables -t filter -nL INPUT #标注链名显示指定链

2、设置默认策略

iptables -P INPUT DROP
iptables -P FORWARD DROP 
#一般在生产环境中设置网络型防火墙、主机型防火墙时都要设置默认规则为DROP,并设置白名单
iptables -P OUTPUT ACCEPT

3、规则操作

1,新增规则
iptables [-t 表名] -A [链名][匹配条件] [-j 控制类型]

2,删除规则
iptables [-t 表名] -D[链名] [指定规则或编号]
# -D删除指定链名内的指定规则

3,清空规则
iptables [-t 表名] -F [链名] 
# -F 删除指定链名,清空链名内的所有规则,如果不指定链名则清空整个表内的规则

4,更改规则
iptables [-t 表名] -R <链名> <规则编号> <修改内容>
# -R 修改

六、实战部署

    1.删除策略

iptables -F
iptables -X
iptables -Z
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat

    2.允许自己 的网段及22端口通过(根据自己的端口设置)

iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -s 172.17.51.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ##工作中根据自己情况,一般不用

    3.设置默认规则策略

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

    4.设置其他允许

iptables -A INPUT -i lo -j ACCEPT    #允许回环地址
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT    #设置80端口转发
iptables -A INPUT -s 172.17.51.0/24 -j ACCEPT  
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT#连接状态设置 

    5.生产场景维护----封掉一个IP,封掉端口

            1.常改/etc/sysconfig/iptables配置,添加到对应的位置永久生效

        -A INPUT -p tcp -m tcp --dport 3306 -j DROP

         #封掉规则,要放在里面其他允许规则的上面才能生效。

        #允许规则,要放在里面其他允许规则上面才能生效。  重新加载生效:systemctl reload iptables 

           2.临时封Ip(-I):针对特殊ip重启后规则消失  常用的规则放在前面生效

     iptables -I INPUT -s 203.71.78.10 -j DROP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值