当前位置: 首页 > news >正文

Linux防火墙基础

一、Linux防火墙的状态机制

        1.iptables是可以配置有状态的防火墙,其有状态的特点是能够指定并记住发送或者接收信息包所建立的连接状态,其一共有四种状态,分别为established  invalid  new  related。

        established:该信息包已建立连接,该连接一直用于发送和接收信息包完全有效

        invalid:该信息包和其他都无关联,可能包含错误的信息

        new:该信息包已经或即将启动新的连接,或者还未与用于发送和接收信息包相关联

        related:表示该信息包已经或正在启动新的连接并和已建立的连接相关联

二、Linux防火墙语法

        1.数据包流向:

                prerouting -> forward -> postrouting

                prerouting -> input -> 本机output -> postrouting

        2.iptables根据不同的数据包处理功能使用不同的规则表,其包括三个表:filter  nat  mangle

                filter:默认的表,包含真正的的防火墙过滤规则,其中的规则链包括:input  output  forward

                nat:包含源地址、目标地址及端口转换使用规则,其中的规则链包括:prerouting  output和postrouting

                mangle:包含用于设置特殊的数据包路由标志的规则,这些标志随后被filter表中的规则检查,其中的规则链包括:prerouting  input  forward  postrouting  output

        3.表对应的相关规则链的功能:

                input链:当一个数据包由内核中的路由计算确定为本地的linux系统后,会通过input链检查

                output链:保留给系统自身生成的数据包

                froward链:经过linux系统路由的数据包

                prerouting链:用于修改目的地址(DNAT)

                postrouting链:用于修改源地址(SNAT)

        4.定义默认策略

                默认策略定义格式:iptables  -t(表名)  -P(链名) (动作)

                -t:表示指定默认策略应用于哪个表,可以使用filter nat  mangle,如果没有指定使用哪个,默认使用filter表

                链名:指定默认策略应用于哪个链,可以使用input  ouput等

                动作:处理数据包的动作,可以使用accept(接收数据包)和 drop(丢弃数据包)

        5.查看iptables规则:

                命令格式:

                        iptables  -t(表名)    -L(链名)

                        -L:查看指定表和指定链的规则列表

        6.增加、插入、删除、替换iptables规则

                参数说明:

                        -t 表名:定义默认策略将应用于哪个表

                        -A:新增一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号

                        -I:插入一条规则,原本该位置上的规则会往后顺序移动,如果指定规则编号,则在第一条规则前插入

                        -D:从规则列表中删除一条规则,可以输入完整规则或直接指定规则编号来删除

                        -R:替换某条规则,规则被替换并不会改变顺序,必须指定要替换的规则编号

                规则编号:规则编号在插入、删除和替换规则时使用,编号按照规则列表的顺序排列,第一条规则编号为1

                        -i | o 网卡名称:i用于指定数据包从哪块网卡进入,o用于指定数据包从那快网卡输出

                        -p 协议类型:指定规则应用的协议,包含tcp  udp和icmp等

                        -s 源IP地址 |  源子网:后面接源主机IP地址或子网地址

                        --sport 源端口号:数据包的ip源端口号

                        -d 目标ip地址 | 目标子网:后面接目标主机的ip地址或子网地址

                        --dport 目标端口号:数据包的ip目标的端口号

                        -j 动作:

                                accept:接收数据包

                                drop:丢弃数据包

                                redirect:将数据包重新转向本机本机或另一台主机的某一个端口

                                reject:拦截该数据包并发回包通知对方

                                snat:源地址切换,改变数据包的源地址

                                dnat:目标地址切换,改变数据包的目的地址

                                masquerade:ip伪装。主机的ip地址由isp分配动态

                                log:日志功能,将符合规则的数据包相关信息记录在日志中

        7.清除规则和计数器

                在新建规则时往往需要清除原有的旧规则以免影响新设定的规则

                iptables  -t表名  -F  |  Z

                        -F:删除指定表中的所有规则

                        -Z:将指定规则中的数据包计数器和流量计数器归零

三、iptables基础知识

        1.iptables的状态 state

                new:本机向远程机器发送一个连接请求,这个数据包的状态时new

                established:在连接建立之后,远程主机和本机通信数据的状态

                related:和现有联机相关的新联机封包,类似于ftp这样的服务,用21号端口传送命令,用20号端口传送数据

                invalid:无效的数据包,不能识别属于哪个连接状态或没有任何连接状态,一般会被丢弃

        

http://www.lryc.cn/news/530749.html

相关文章:

  • Qt u盘自动升级软件
  • 【Conda 和 虚拟环境详细指南】
  • Python递归函数深度解析:从原理到实战
  • OpenGL学习笔记(五):Textures 纹理
  • 【TypeScript】基础:数据类型
  • Notepad++消除生成bak文件
  • Android NDK
  • 内部知识库助力组织智力激发与信息共享实现业绩增长
  • 通过F12收集的信息
  • 用Python替代OpenMV IDE显示openmv USB 图像
  • c语言:编译和链接(详解)
  • 数据结构【单链表操作大全详解】【c语言版】(只有输入输出为了方便用的c++)
  • leetcode27.删除有序数组中的重复项
  • [c语言日寄]越界访问:意外的死循环
  • 【c++11】包装器
  • 信息学奥赛一本通 1422:【例题1】活动安排
  • 数据库、数据仓库、数据湖有什么不同
  • llama.cpp LLM_CHAT_TEMPLATE_DEEPSEEK_3
  • 深度学习的应用场景及常用技术
  • 小程序项目-购物-首页与准备
  • 网件r7000刷回原厂固件合集测评
  • 微信登录模块封装
  • [STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器
  • 后台管理系统通用页面抽离=>高阶组件+配置文件+hooks
  • 8.原型模式(Prototype)
  • Python-基于PyQt5,pdf2docx,pathlib的PDF转Word工具(专业版)
  • 13 尺寸结构模块(size.rs)
  • STM32单片机学习记录(2.2)
  • CSS 样式化表格:从基础到高级技巧
  • 【python】tkinter实现音乐播放器(源码+音频文件)【独一无二】