• iptables和firewalld基础


    1、四表五链概念:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    filter表  过滤数据包
    Nat表    用于网络地址转换(IP、端口)
    Mangle表  修改数据包的服务类型、TTL、并且可以配置路由实现QOS
    Raw表    决定数据包是否被状态跟踪机制处理
    INPUT链     进来的数据包应用此规则链中的策略
    OUTPUT链     外出的数据包应用此规则链中的策略
    FORWARD链    转发数据包时应用此规则链中的策略
    PREROUTING链  对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
    POSTROUTING链  对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

    2、数据报文流程

    复制代码
    数据报文从进入服务器到出来会经过5道关卡,分别为Preouting(路由前),input(输入),outing(输出),Forward(转发),Postrouting(路由后)

     iptables服务策略

    • ACCEPT(允许流量通过)
    • REJECT(拒绝流量通过)
    • LOG(记录日志信息)
    • DROP(拒绝流量通过)
    复制代码

     3、iptables 与 firewalld 区别

    相同点:都是用来定义防火墙策略的防火墙管理工具
    区别:
      iptables服务会把配置好的防火墙策略,交由内核层面的 netfilter 网络过滤器来处理   firewalld服务则是把配置好的防火墙策略,交由内核层面的 nftables 包过滤框架来处理

    4、DROP 和 REJECT策略的区别:

    防火墙策略:
      设置为REJECT拒绝动作后,流量发送方会看到端口不可达的响应   修改成DROP拒绝动作后,流量发送方会看到响应超时的提醒

    5、iptables命令参数

    复制代码
    -t<表>   指定要操纵的表 
    --line-numbers  显示规则的序号
    -n    以数字格式显示地址和端口号
    -P   设置默认策略 -F   清空规则链 -L   查看规则链 -A    在规则链的末尾加入新规则 -I num 在规则链的头部加入新规则 -D num 删除某一条规则
    -s   匹配来源地址IP/MASK,加叹号“!”表示除这个IP外 -d   区配目标地址
    -i 网卡名称  匹配从这块网卡流入的数据 -o 网卡名称  匹配从这块网卡流出的数据 -p       匹配协议,如TCP、UDP、ICMP

    --sport num    匹配来源端口号
    --dport num   匹配目标端口号
    复制代码

    6、iptables基本的命令使用

    1
    1.查看防火墙规则  iptables -nvL --line-numbers2.清空防火墙规则  iptables -F 清空所有的防火墙规则  iptables -X 删除用户自定义的空链  iptables -Z 清空计数   INPUTINPUTINPUT公网 210.14.67.7 让内网 192.168.188.0/24 上网  iptables -t nat -A POSTROUTING -s 192.168.188.0/24 -j SNAT --to-source 210.14.67.7本机的 2222 端口映射到内网 虚拟机的22 端口17.防止SYN洪水攻击  iptables -A INPUT -p tcp --syn -m limit --limit 5/second -j ACCEPT18. 参考:https://blog.csdn.net/szb521/article/details/126415217

    7.firewalld:基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。

    复制代码
    firewalld中常用的区域名称及策略规则:

        trusted 允许所有的数据包
        home 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、mdns、ipp-client、amba-client与dhcpv6-client服务相关,则允许流量
        internal 等同于home区域
        work 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、ipp-client与dhcpv6-client服务相关,则允许流量
        public 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh、dhcpv6-client服务相关,则允许流量
        external 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
        dmz 拒绝流入的流量,除非与流出的流量相关;而如果流量与ssh服务相关,则允许流量
        block 拒绝流入的流量,除非与流出的流量相关
        drop 拒绝流入的流量,除非与流出的流量相关

    firewall-cmdfirewalld防火墙配置管理工具的CLI
       firewall-cmd命令正常设置防火墙策略时添加--permanent参数,这样配置的防火墙策略就可以永久生效

        参数|作用
        --get-default-zone|查询默认的区域名称
        --set-default-zone=<区域名称>|设置默认的区域,使其永久生效
        --get-zones|显示可用的区域
        --get-services|显示预先定义的服务
        --get-active-zones|显示当前正在使用的区域与网卡名称
        --add-source=|将源自此IP或子网的流量导向指定的区域
        --remove-source=|不再将源自此IP或子网的流量导向某个指定区域
        --add-interface=<网卡名称>|将源自该网卡的所有流量都导向某个指定区域
        --change-interface=<网卡名称>|将某个网卡与区域进行关联
        --list-all|显示当前区域的网卡配置参数、资源、端口以及服务等信息
        --list-all-zones|显示所有区域的网卡配置参数、资源、端口以及服务等信息
        --add-service=<服务名>|设置默认区域允许该服务的流量
        --add-port=<端口号/协议>|设置默认区域允许该端口的流量
        --remove-service=<服务名>|设置默认区域不再允许该服务的流量
        --remove-port=<端口号/协议>|设置默认区域不再允许该端口的流量
        --reload|让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
        --panic-on|开启应急状况模式
        --panic-off|关闭应急状况模式

    复制代码

     8、firewalld命令示例:

    复制代码
    1.查看firewalld服务当前所使用的区域:
      firewall-cmd --get-default-zone

    2.查询eth0网卡在firewalld服务中的区域:
      firewall-cmd --get-zone-of-interface=eth0

    3.让“永久生效”的配置规则立即生效,并覆盖当前的配置规则
      firewall-cmd --reload

    4.把firewalld服务的当前默认区域设置为public
      firewall-cmd --set-default-zone=public

    5.启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时请慎用):
      firewall-cmd --panic-on/off

    6.查询public区域是否允许请求SSHHTTPS协议的流量
      firewall-cmd --zone=public --query-service=ssh
      firewall-cmd --zone=public --query-service=https

    7.把firewalld服务中请求HTTPS协议的流量设置为永久允许,并立即生效:
      firewall-cmd --permanent --zone=public --add-service=https
      firewall-cmd --reload
    firewalld服务中请求HTTP协议的流量设置为永久拒绝,并立即生效:
      firewall-cmd --permanent --zone=public --remove-service=http

    8.端口:把在firewalld服务中访问8080和8081端口的流量策略设置为允许,但仅限当前生效:
      firewall-cmd --zone=public --add-port=8080-8081/tcp
      firewall-cmd --zone=public --list-port //查看当前的端口

    9.把原本访问本机888端口的流量转发到22端口,要且求当前和长期均有效:
      firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10

    10.参考:https://blog.csdn.net/herhan1/article/details/114461334
    复制代码

     

  • 相关阅读:
    【校招VIP】前端网络之路由选择协议
    如何利用AWS CloudFront 自定义设置SSL
    使用Redis完成商品秒杀业务
    LeetCode----72. 编辑距离
    taro3 hooks 使用vant ui 自定义微信小程序tabber
    1024 云上见 · 上云挑战(ChatGPT搭建)
    SpringBoot 配置
    Sqli-labs靶场第19关详解[Sqli-labs-less-19]自动化注入-SQLmap工具注入
    一起用Go做一个小游戏(上)
    Python入门基础篇
  • 原文地址:https://www.cnblogs.com/shadabin/p/16841853.html