防火墙

作者: 不知道就 | 来源:发表于2019-08-05 17:31 被阅读0次

    一、防火墙的类型

    *  硬件类
              三层路由
               深信服
    *  软件类
              iptables
              filewalld
    *  云防火墙
              阿里云的安全组
    

    二、 需要熟悉的几个名词

    *  容器(但不是docker这种东西)是一种存放东西的东西
    *  表 (也不是数据库的表)它是存放链的容器
    *  链:存放规则的容器
    *  规则(police):准许或拒绝规则
    
    
    image.png

    三、iptables 执行过程

    1.防火墙规则是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
    2. 如果匹配的上的规则,即明确表示是阻止还是通过,数据包就不会再向下匹配到新的规则。
    3. 如果规则中没有明确表示是阻止还是通过的,也就是没有匹配规则,向下进行匹配,
    直到匹配默认规则的到明确的阻止还是通过
    4. 防火墙的默认规则是所以的规则执行才执行的。
    
    image.png

    四、iptables的表和链

    filter表: 强调和主机之身相关,真正负责主机防火墙功能的(过滤流入出主机的数据包)filter表示iptables默认使用的表,这个表第定义了三个链(chains)
    企业工作场景:主机防火墙
    INPUT: 负责过滤所有目标地址是本机地址的数据包,通俗的来说:就是过滤进入主机的数据包
    FORWARD:负责转发主机的数据包。起转发的作用,和NAT模式。net。IPv4。ip_forward=0
    OUTPUT:   处理所有的源地址是本机地址的数据包,通俗的来讲就是处理从主机发出去的数据包
    
    NAT :负责网络地址装换的,即来源与目的ip地址和port的转换。
    应用:和主机本身无关,一般用于局域网共享上网或者特殊的端口转换服务相关。
    工作场景:1.用于企业路由或网关,共享上网
    2.做内部外部ip地址一对一映射,映射防火墙ip到内部的服务器,ftp服务
    3. web,单个端口的映射,自己映射到80 的端口,这个表定义了3个链,nat功能相当于网络的acl控制,和网络机acl类似。
    
    OUTPUT:和主机放出去的数据包有关,改变主机发出的数据包的目的地址。
    
    PREROUTTING:在数据包到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址。目的端口等、、、、
    就是收信时,根据规则重写收件人的地址。
    例如::把公网ip:?映射到局域网的?的服务器上。如果web服务可以80转换为局域网的服务器9000端口
    
    
    image.png
    image.png
    QQ图片20190819160351.png
    QQ图片20190819162059.png

    五、环境准备几命令

    iptables的启动和关闭
    
    
    yum install -y iptables-services 
    [root@m01 ~]# rpm -ql iptables-services
    /etc/sysconfig/ip6tables
    /etc/sysconfig/iptables #防火墙的配置文件
    /usr/lib/systemd/system/ip6tables.service
    /usr/lib/systemd/system/iptables.service #防火墙服务配置文件(命令)
    
    
    防火墙相关模块 加载到内核中
    modprobe ip_tables
    modprobe iptable_filter
    modprobe iptable_nat
    modprobe ip_conntrack
    modprobe ip_conntrack_ftp
    modprobe ip_nat_ftp
    modprobe ipt_state
    
    
    [root@liqidefuwuqi ~]#  lsmod |egrep 'filter|nat|ipt'
    ipt_REJECT             12541  2 
    nf_reject_ipv4         13373  1 ipt_REJECT
    iptable_filter         12810  1 
    ip_tables              27126  1 iptable_filter
    br_netfilter           22256  0 
    bridge                151336  1 br_netfilter
    
     systemctl  stop firewalld.service 
     systemctl  disable    firewalld.service
     systemctl  start  iptables.service 
     systemctl  enable  firewalld.service
    
    [root@liqidefuwuqi ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination         
    

    六、iptables的命令及参数

    参数               含义
     - L           |   显示表中的所以规则
    -n             |   不要把端口和ip反向解析为名字
    -t             |   指定加载表
    -A             |   append追加ACCEPT 
    -D             |   删除
    -I             |   insert拒绝的规则放在最上面
    -P             |   protocal 协议 tcp/udp/icmp/all
    --dport        |   目标端口
    --sport        |   源端口
    -s             |   --source 源ip
    -d             |   --destination 目标ip
    -j             |   满足条件后的动作 : DROP/ACCEPT/REJECT
    -F             |   清除所有规则,不会处理默认的规则
    -Z             |   链的计数器清零(数据包计数器与数据包字节计数器)
    -X             |   删除用户自定义的链
    -m             |  多端口连接
    
    

    七、配置filter规则

    [root@m01 ~]# iptables -F
    [root@m01 ~]# iptables -X
    [root@m01 ~]# iptables -Z
    [root@m01 ~]# iptables -nL
    
    ## 禁止访问22端口
    iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
    
    ## 禁止网段连入(禁止10.0.0.0网段访问 8080端口)
    iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 8080 -j DROP
    
    ##只允许指定网段连入(允许10.0.0.0网段)
    iptables -I INPUT ! -s 10.0.0.0/24 -j DROP
    
    ##指定多个端口
    iptables -I INPUT -p tcp -m multiport ! --dport 80,443 -j
    iptables -I INPUT -p tcp --dport 1024:65535 -j DROP
    
    

    相关文章

      网友评论

          本文标题:防火墙

          本文链接:https://www.haomeiwen.com/subject/ryrmdctx.html