iptables防火墙

前言:防火墙有两大类型

  • 硬件防火墙:有专门的设备做为网关层 可以实现地址转换,流量清洗......作为第一道防御
  • 软件防火墙:针对木马,病毒防护 ......作为第二道防御 两种一起配合才能保证更加安全

一、iptables概述

  • Linux系统级别的防火墙 ,它实际上有两个组件组成 分别是 netfilter 和 iptables
  • iptables主要工作在网络层 针对ip数据包做过滤
  • netfilter属于内核模块 由一些数据包过滤表组层

组成部分:

iptables 和 netfilter 统一称作 iptables

iptables其中有四个表和五个链组成分别为:(3和4比较重要 用得多)

  • 1、raw: 是对数据包进行动态跟踪 包含两个规则链:OUTPUT、PREROUTING
  • 2、mangle:修改数据内容、用来做流量整形,给数据包做标记的 包含五个规则链:OUTPUT、PREROUTING、INPUT、FORWARD、POSTROUTING
  • 3、nat:负责网络地址转换,用来修改数据包的源、目标ip地址或者端口 包含三个规则链:OUTPUT、FORWARD、POSTROUTING
  • 4、filter:负责过滤数据包,确定是否放行数据包 包含三个规则链:INPUT、FORWARD、OUTPUT

四表五链:

规则表的作用:容纳各种规则链

规则链的作用:容纳各种防火墙规则

一环套一环的 表里面有链 链里面有规则

  • 1、INPUT:处理入站的数据包、匹配目标ip为本机的数据包
  • 2、OUTPUT:处理出战的数据包,一般不在此链上做配置
  • 3、FORWARD:处理转发的数据包,匹配流经本机的数据包
  • 4、PREROUTING:在进行路由器选择前处理数据包、用来修改目的地址,用来做DNAT,相当于把内网服务器的ip和端口映射到路由器的外网ip和端口上
  • 5、POSTROUTING:在进行路由器选择后处理数据包,用来修改源地址,用来做SNAT,相当于内网通过路由器NAT转换功能实现内网主机通过一个公网ip上网

表之间的优先级是:raw > mangel > nat > filter

规则链内的匹配顺序是:自上向下按顺序依次匹配 匹配到规则即停止继续,要是找不到规则 就会按照默认的策略处理

用我自己理解的方式 大白话 简单了说 就是 一个数据 先进入到我这个电脑 然后出去 转发给某某某 在进入我的电脑之前 我首先得处理这个数据(PREROUTING)然后在进入(INPUT) 然后出站了 首先我得出去 (OUTPUT)然后我得处理出站得数据(POSTROUTING) 然后数据在转发得时候 得要先处理进来之前得数据( PREROUTING ) 然后转发( FORWARD)我得处理完这个数据( POSTROUTING )

匹配的数据流程:

二、iptables用法

在centos7之前用的是iptables 在centos7之后用得都是filewalld防火墙 所以我们得先安装一下iptables 安装之前先关闭filewalld

bash 复制代码
systemctl  stop firewalld           #关闭防火墙

systemctl disable  --now firewalld        #开机自动关闭


yum install -y iptables iptable-services    #下载两个一个是应用程序  一个是服务管理工具

systemctl start iptables-services            #开启服务

iptables 有两种配置方式

1、使用iptables 命令行

2、使用system-config-firewalld(图形化界面,一般不适用 机房一般没有电脑不方便)

iptables 命令行配置方法:

命令格式

ipitables [-t 表名] 管理格式 [链名] [匹配得条件] [ -j 控制类型]

注意 不指定表名时候 默认指定filter表

不指定链名时候 默认指定表内得所有链

除非设置链得默认策略 否则必须指定匹配条件

控制类型 和 链名 使用大写字母 其余为小写

常用得控制类型:

|------------|-----------------------------|
| ACCEPT | 允许数据包通过 |
| DROP | 直接丢弃数据包,不会有任何提示 |
| REJECT | 拒绝数据包通过,会给数据发送端一个响应 |
| SNAT | 修改数据包得源地址 |
| DNAT | 修改数据包得目的地址 |
| REDIRECT | 重定向百变目的端口,将接收得包转发至本机得不同端口 |
| MASQUERADE | 伪装成一个非固定得IP地址 |
| LOG | 在/var/log/messages文件中记录日志信息 |

常用得管理选项:

查看 filter表

如果查看其他表 把 filter换成其他表

添加 -

删除 -F

修改 -P

白名单设置:

增删改查

三、隐含匹配

相关推荐
为你写首诗ge6 小时前
【Unity网络编程知识】FTP学习
网络·unity
TDD_06288 小时前
【运维】Centos硬盘满导致开机时处于加载状态无法开机解决办法
linux·运维·经验分享·centos
x66ccff8 小时前
vLLM 启动 GGUF 模型踩坑记:从报错到 100% GPU 占用的原因解析
linux
神经毒素8 小时前
WEB安全--文件上传漏洞--一句话木马的工作方式
网络·安全·web安全·文件上传漏洞
William.csj8 小时前
Linux——开发板显示器显示不出来,vscode远程登录不进去,内存满了的解决办法
linux·vscode
慵懒学者8 小时前
15 网络编程:三要素(IP地址、端口、协议)、UDP通信实现和TCP通信实现 (黑马Java视频笔记)
java·网络·笔记·tcp/ip·udp
KeithTsui9 小时前
GCC RISCV 后端 -- 控制流(Control Flow)的一些理解
linux·c语言·开发语言·c++·算法
森叶9 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole
itachi-uchiha9 小时前
关于UDP端口扫描概述
网络·网络协议·udp
liulilittle9 小时前
Linux 高级路由策略控制配置:两个不同路由子网间通信
linux·网络·智能路由器