[Linux]iptables防火墙

[Linux]iptables防火墙

一、iptables介绍

iptables是一个针对IPv4/IPv6数据包的管理工具,能够实现包过滤和NAT功能。

它作为一个管理工具,可以去设置、维护和检查表,每个表中包含了许多的内置链以及用户自定义链,然后链中包含许多的规则,用于匹配一组数据包。每条规则制定如何处理匹配的数据包,这个被称为目标(Target),这条规则可能会使得数据包跳转到同一个表中的其他用户自定义链中。

iptables只是Linux防火墙的管理工具而已,其实真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构。

[Linux]iptables防火墙

这里我们需要明确几个iptables中的重要概念概念:

  • 表(Table)
  • 链(Chain)
  • 规则(Rule)

在后面会详细的介绍这几个概念!

二、表(Table)

[Linux]iptables防火墙

iptables中有四个类型的表:

  • filter表:用于过滤数据包,不指定的情况下,iptables命令默认操作的就是filter表
  • nat表:用于网络地址转换(IP、端口)
  • mangle表:修改数据包的服务类型、TTL并且可以配置路由实现QoS的功能
  • raw表:决定数据包是否被状态跟踪机制处理

三、链(Chain)

表中包含了许多的内置链和用户自定义链,它有以下的类型:

  • INPUT:进来的数据包应用此规则链中的策略
  • OUTPUT:外出的数据包应用此规则链中的策略
  • FORWARD:转发数据包时应用此规则链中的策略
  • PREROUTING:对数据包作路由选择前应用此链中的规则(所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING:对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

[Linux]iptables防火墙

iptables的数据包转发流程:

  • 目的地址是本地,则发送到 INPUT,让 INPUT 决定是否接收下来送到用户空间,流程为①—>②;
  • 若满足 PREROUTING 的 nat表 上的转发规则,则发送给 FORWARD ,然后再经过 POSTROUTING 发送出去,流程为: ①—>③—>④—>⑥;
  • 主机发送数据包时,流程则是⑤—>⑥;
  • 其中 PREROUTING 和 POSTROUTING 指的是数据包的流向,如上图所示 POSTROUTING 指的是发往公网的数据包,而PREROUTING 指的是来自公网的数据包。

四、规则(Rule)

[Linux]iptables防火墙

规则(rules)其实就是网络管理员预定义的条件,规则一般的定义为”如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(ACCEPT)、拒绝(REJECT)和丢弃(DROP)等。配置防火墙的主要工作就是添加、修改和删除这些规则。

五、iptables规则的增删改查

[Linux]iptables防火墙
  1. 查看filter表中规则(如果不加-t 指定表类型,默认就是filter表)
[root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便
5    ACCEPT     tcp  --  192.168.1.0/24       0.0.0.0/0           tcp dpt:21
  1. 修改规则
[root@linux ~]# iptables -R INPUT 3 -j DROP    //将规则3改成DROP,这里的R代表replace,也就是替换的意思
  1. 删除iptables规则
[root@linux ~]# iptables -D INPUT 3  //删除input的第3条规则
[root@linux ~]# iptables -t nat -D POSTROUTING 1  //删除nat表中postrouting的第一条规则
[root@linux ~]# iptables -F INPUT   //清空 filter表INPUT所有规则
[root@linux ~]# iptables -F    //清空所有规则
[root@linux ~]# iptables -t nat -F POSTROUTING   //清空nat表POSTROUTING所有规则
  1. 设置默认规则
[root@linux ~]# iptables -P INPUT DROP  //设置filter表INPUT默认规则是 DROP

Original: https://www.cnblogs.com/Skybiubiu/p/16120609.html
Author: SkyBiuBiu
Title: [Linux]iptables防火墙

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606246/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • rsync

    rsync rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。 rsync…

    Linux 2023年6月7日
    0105
  • 抓到 Netty 一个隐藏很深的内存泄露 Bug | 详解 Recycler 对象池的精妙设计与实现

    欢迎关注公众号:bin的技术小屋,如果大家在看文章的时候发现图片加载不了,可以到公众号查看原文 本系列Netty源码解析文章基于 4.1.56.Final版本 最近在 Review…

    Linux 2023年6月6日
    0104
  • 记一次 namespace 卡在terminating

    Error from server (AlreadyExists): object is being deleted: namespaces “monitoring&#…

    Linux 2023年6月14日
    084
  • 删除MySQL数据用户

    mysql删除用户的方法: 1、使用”drop user 用户名;”命令删除; 2、使用”delete from user where user…

    Linux 2023年6月13日
    070
  • SSM中的拦截器

    SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 过滤器与拦截器的区别…

    Linux 2023年6月14日
    085
  • Shell 函数带中横线问题排查

    Shell 中编写的函数,如果函数名中带了中横线,在使用 /bin/sh 执行时会报错。 ➜ subprocess git:(master) ✗ cat kubectl.sh _k…

    Linux 2023年5月28日
    074
  • redis持久化

    本次主要是对redis中著名的持久化策略进行代码层面描述,主要包括RDB持久化和AOF持久化 因为AOF文件的更新频率比RDB高,所以如果服务器开启AOF持久化,redis优先使用…

    Linux 2023年6月13日
    0107
  • 11-K8S部署普罗米修斯

    K8S-Kubernetes 集群部署 Prometheus 和 Grafana 1.实验环境 控制节点/master01 192.168.80.20 工作节点/node01 19…

    Linux 2023年6月13日
    079
  • phpweb成品网站最新版(注入、上传、写shell)

    注入:之所以鸡肋就是该漏洞利用安装文件 重新生成 配置文件 写入可执行代码 鸡肋1: 具有破坏性 动作非常大 重新写了配置文件 数据库连接文件鸡肋2: 有一定安全常识的站长都会删掉…

    Linux 2023年5月28日
    077
  • Linux系统编程之文件IO

    前言 在学习C语言时,我们接触过如fopen、fclose、fseek、fgets、fputs、fread、fwrite等函数,实际上,这些函数是对于底层系统调用的封装。C默认会打…

    Linux 2023年6月8日
    086
  • lambda跨账号调用elasticache redis调查结果

    1.本地lambda与被调用方的redis都要绑定一个VPC,至少设定一个子网和路由表,设定好安全组; 2.本地VPC创建对等连接,被调用方接受连接; 3.将各自的IPv4 CID…

    Linux 2023年5月28日
    070
  • uniapp使用阿里云矢量图标库,h5端显示正常,真机app不显示问题解决

    1、在阿里云矢量图标库网站管理界面如上图,首先下载至本地1的位置,然后在2的位置复制代码 2、在下图中static目录下放入下载的iconfont.css文件,并且修改里面的链接,…

    Linux 2023年6月7日
    092
  • 了解CFS完全公平调度器

    CFS模拟理想多任务调度 公平,即对于n个正在运行的任务,当这些任务同时不断地运行时,CPU会尽可能分配给他们1/n的处理时间。 CFS是一种基于加权公平排队思想的调度算法。 精确…

    Linux 2023年6月7日
    092
  • LeetCode-16. 最接近的三数之和

    题目来源 题目详情 给你一个长度为 n 的整数数组 nums和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。…

    Linux 2023年6月7日
    095
  • python截取字符串(字符串切片)

    python中使用 []来截取字符串,语法: 字符串[起始&#…

    Linux 2023年6月6日
    0119
  • WEB自动化-10-Page Object 模型

    10 Page Object 模型 10.1 概述 在针对一个WEB页面编写自动化测试用例时,需要引用页面中的元素( 数据)才能进行操作( 动作)并显示出页面内容。如果编写的测试用…

    Linux 2023年6月7日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球