首页 > 系统相关 >iptables防火墙

iptables防火墙

时间:2024-05-25 20:31:59浏览次数:21  
标签:iptables 匹配 -- 防火墙 filter 规则 数据包

目录

什么是iptables防火墙?

组件

四表五链

四表

五链

常用的链

匹配顺序

表的匹配顺序

链的匹配顺序

规则的匹配顺序

iptables的安装

iptables防火墙的配置方法

iptables命令行配置

命令格式

常用的管理选项

常用的匹配条件

常用的控制类型

iptables命令行使用

如何保存规则

规则的匹配


什么是iptables防火墙?

  • linux系统防火墙。Centos7以前的默认防火墙,是基于内核的防火墙。
  • netfilter/iptables后期简称为iptables。其中内置了raw,mangle,nat和filter四个规则表。表中所有规则配置后,立即生效,不需要重启服务。

组件

  • netfilter:属于“内核态”的防火墙功能体系。是一个内核模块,由多个数据包过滤表组成,这                    些表包含内核用来控制数据包过滤处理的规则集。
  • iptables:属于“用户态”的管理工具。如同firewalld,ufw,是一个防火墙应用管理程序,用来                  实现防火墙规则集的增删改查。

四表五链

  • 规则表的作用:容纳各种规则链
  • 规则链的作用:容纳各种防火墙规则
  • 总结:表里有链,链里有规则

四表

  • raw表:确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT,PREROUTING。
  • mangle表:修改数据包内容。用来做流量整形的,给数据包设置标记。包含五个规则链,                           INPUT、 OUTPUT、FORWARD、PREROUTING、POSTROUTING。
  • nat表:负责网络地址转换。用来修改数据包中的源,目标IP地址或端口。包含三个规则链,               OUTPUT、PREROUTING、POSTROUTING。
  • filter表:负责过滤数据包。确定是否放行该数据包(过滤)。包含三个规则链,INPUT、                       OUTPUT,FORWARD

五链

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

常用的链

  • 过滤入站数据包:filter(INPUT)
  • 过滤出站数据包:filter(OUTPUT)
  • 过滤转发数据包:filter(FORWARD)
  • 修改内网转发到外网数据包的源IP地址:nat(POSTROUTING)
  • 修改外网转发到内网数据包的目的IP地址:nat(PREROUTING)

匹配顺序

表的匹配顺序

raw(数据包状态跟踪) ——> mangle(修改数据包内容,设置标记)  ——> nat(数据包地址转换)  ——> filter(过来数据包)

链的匹配顺序

  • 入站数据:PREROUTING (修改目的地址)——>INPUT(处理入站数据) ——>本机应用                    程序
  • 出站数据:本机应用程序 ——>OUTPUT(处理出站数据) ——>POSTROUTING(修改源                       地址)
  • 转发数据:PREROUTING (修改目的地址)——>FORWARD(处理转发数据)——                               >POSTROUTING(修改源地址)

规则的匹配顺序

  • 从上往下依次匹配链中的规则,匹配到即停止(LOG策略例外,表示记录相关日志)
  • 若没有匹配的规则,则按照链的默认规则处理(未修改的状况下,默认策略为允许)

iptables的安装

1.系统初始化(一定要关闭firewalld.service)

systemctl stop firewalld.service      #关闭防火墙

setenforce 0                                       #关闭selinux防火墙
mount /dev/sr0 /mnt                          #临时挂载镜像

2.安装iptables iptables-services服务,并启动iptables-services服务

 yum -y install iptables iptables-services    #安装 iptables iptables-services 服务

 systemctl start iptables.service                   #启动iptables.service 服务

iptables防火墙的配置方法

  • 使用iptables命令行
  • 使用system-config-firewall

iptables命令行配置

命令格式

iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]           #iptables命令行格式

注意事项:

  • 不指定表名时,默认指filter表
  • 不指定链名时,默认指表内的所有链
  • 除非设置链的默认策略,否则必须指定匹配条件
  • 控制类型和链名使用大写字母,其余均为小写

常用的管理选项

  • -A :在指定链的末尾追加(--append)一条新的规则
  • -I :在指定链的开头插入(--insert)一条新的规则,未指定序号时默认作为第一条规则
  • -R :修改、替换(--replace)指定链中的某一条规则,可指定规则序号或具体内容
  • -P :设置指定链的默认策略(--policy)
  • -D :删除(--delete)指定链中的某一条规则,可指定规则序号或具体内容
  • -F :清空(--flush)指定链中的所有规则,若未指定链名,则清空表中的所有链
  • -L :列出(--list)指定链中所有的规则,若未指定链名,则列出表中的所有链
  • -n :使用数字形式(--numeric)显示输出结果,如显示 IP 地址而不是主机名
  • -v :显示详细信息,包括每条规则的匹配包数量和匹配字节数
  • --line-numbers:查看规则时,显示规则的序号

常用的匹配条件

  • -p:协议
  • -s:源IP
  • -d:目的IP
  • -i:入站网卡接口
  • -o:出站网卡接口
  • --dport:目的端口
  • --sport:源端口

常用的控制类型

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包,不给出任何回应信息。
  • REJECT:拒绝数据包通过,会给数据发送端一个响应信息。
  • SNAT:修改数据包的源地址。
  • DNAT:修改数据包的目的地址。
  • REDIRECT:重定向改变目的端口,将接受的包转发至本机的不同端口
  • MASQUERADE:伪装成一个非固定公网IP地址。
  • LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。LOG只              是一种辅助动作,并没有真正处理数据包。
     

iptables命令行使用

查看规则

iptables [-t 表名] -n -L [链名] [--line-numbers]    #查看规则列表,不可以合写为 -Ln

添加规则

iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT   

#在filter表中的INPUT链中的第2条规则上添加规则放通tcp协议的22号端口

iptables -I INPUT -p icmp -j ACCEPT 
#在filter表中的INPUT链中在最前面添加规则放通icmp的所有协议

设置默认策略

iptables [-t 表名] -P <链名> <控制类型>

iptables -P INPUT DROP
iptables -P FORWARD DROP 

#一般在生产环境中设置网络型防火墙、主机型防火墙时都要设置默认规则为DROP,并设置白名单

修改规则

iptables -t 表 -R 链 序号 新的规则内容                 #需要按照原先添加规则的格式 

iptables -t 表 -R ACCEPT或DROP或REJECT     #修改指定的默认策略

删除规则

iptables -t filter -F INPUT                             #清除filter中的INPUT链中的规则

iptables -t filter -F INPUT                             #清除filter中的所有链规则

iptables -t filter -D INPUT 1                         #清除filter中的INPUT链中的第一个序号规则

iptables -t filter -D INPUT -p -j ACCEPT     #根据内容删除指定协议规则

注意

  • -F 仅仅是清空链中的规则,并不影响 -P 设置的默认规则,默认规则需要手动进行修改
  • -P 设置了DROP后,使用 -F 一定要小心!
  • #防止把允许远程连接的相关规则清除后导致无法远程连接主机,此情况如果没有保存规则可重启主机解决
  • 如果不写表名和链名,默认清空filter表中所有链里的所有规则

黑名单

iptables -t 表 -A 链 匹配条件 -j ACCEPT                                   #先配置需要放行的规则

iptables -t 表 -A 链  -j DROP 或 iptables -t 表 -P 链  DROP    #最后配置默认禁止

如何保存规则

  • 保存规则:iptables-save > 文件路径
  • 还原规则:iptables-restore < 文件路径
  • 保存为默认规则:iptables-save > /etc/sysconfig/iptables

注:iptables规则修改后会立即生效!

规则的匹配

通用匹配

可直接使用,不依赖于其他条件或扩展,包括网络协议、IP地址、网络接口等条件。

  • 协议匹配:-p 协议名
  • 地址匹配:-s 源地址、-d 目的地址    #可以是IP、网段、域名、空(任何地址)
  • 接口匹配:-i 入站网卡、-o 出站网卡

iptables -t filter -I INPUT -s 192.168.80.20 -j reject     #拒绝192.168.80.20主机的一切操作

隐含匹配

要求以特定的协议匹配作为前提,包括端口、TCP标记、ICMP类型等条件。

  • 端口匹配:--sport 源端口、--dport 目的端口
  • 可以是个别端口、端口范围

--sport 1000                  #匹配源端口是1000的数据包
--sport 1000:3000        #匹配源端口是1000-3000的数据包
--sport :3000                #匹配源端口是3000及以下的数据包
--sport 1000:                #匹配源端口是1000及以上的数据包

iptables -t filter -A INPUT -p tcp --sport 80 -j ACCEPT    #允许数据包通过80的端口

注意:--sport 和 --dport 必须配合 -p <协议类型> 使用

显式匹配

需要使用 -m 指定模块

  • -m multiport --sport/--dport 端口列表
  • -m iprange --src-range/--dst-range  IP范围
  • -m mac --mac-source 源MAC地址

-m state --state RELATED,ESTABLISHED[,NEW,INVALID]          #RELATED,ESTABLISHED 用于放行返回的应答包进站

标签:iptables,匹配,--,防火墙,filter,规则,数据包
From: https://blog.csdn.net/2401_83784772/article/details/139080849

相关文章

  • 1、iptables-基础-包过滤防火墙-四层防火墙(只支持4层协议)
    1、linux中的iptables主机型防火墙工作在2层(识别MAC地址)、3(识别ip)、4层(识别端口)、对TCP/IP数据包进行过滤和限制、属于包过滤型防火墙(除非编译内核才可以使iptables支持7层)缺点:-防火墙可以过滤互联网的数据包、但无法过滤内部网络的数据包-电脑本身的操作系统的漏洞、使......
  • Firewalld防火墙基础
    目录1.Firewalld概述2.Firewalld和iptables的关系及区别3.Firewalld网络区域(1)firewalld防火墙预定义了9个区域(2)firewalld数据包处理原则4.Firewalld防火墙的配置方法(1)运行时配置(2)永久配置1.Firewalld概述firewalld防火墙是Centos7系统默认的防火墙管理工具,取代了之前的iptables......
  • Firewalld防火墙
    1、Firewalld概述linux系统防火墙,工作在网络层,是从centos7开始的默认防火墙,属于包过滤防火墙。firewalld和iptables都是用来管理防火墙的工具(属于用户态)来定义防火墙的各种规则功能,内部结构都指向netfilter网络过滤子系统(属于内核态)来实现包过滤防火墙功能。firewalld提供了......
  • iptables防火墙SNAT策略和DNAT策略
    目录1.SNAT策略及应用(1)SNAT原理与应用:(2)SNAT转换(1)前提条件:(2)实现方法:2.DNAT策略及应用(1)DNAT原理与应用:(2)DNAT转换(1)前提条件:(2)实现方法:1.SNAT策略及应用(1)SNAT原理与应用:SNAT应用环境:局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由)SNAT原理:修改数据包的......
  • iptables
    netfilterLinux防火墙是由Netfilter组件提供的,Netfilter工作在内核空间,集成在linux内核中。Netfilter在内核中选取五个位置放了五个hook(勾子)function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hookfunction向用户开放,用户可以通过一个命令工具(iptables)向......
  • linux中的firewalld防火墙配置
    一直想写一篇关于firewalld的博客,奈何最近事情多也加上一部分家庭的事情,导致没有闲情雅致来进行博客的更新。0.序言写这么一篇文章的用处是用于加强linux主机的安全,在很多linux博客文章,一些人上来就哐叽一下让吧firewalld功能给关闭,这是一种不负责人的做法,也是一种不安全的做......
  • Iptables使用
    netfiler(linux内核)管理防火墙工具:iptablesfirewalldnftufw三种报文流向流入本机:PREROUTING-->INPUT-->用户空间进程流出本机:用户空间进程-->OUTPUT-->POSTROUTING转发:PREROUTING-->FORWARD-->POSTROUTINGiptables五个表(Tables)Filter表功能:处理数据......
  • 老板看过来:防火墙不是万能的,数据安全你得这么管
    在信息技术不断进步的今天,企业的数据安全管理愈加重要。很多企业的老板可能会认为,只要有了防火墙,公司的数据就能安全无忧。然而,防火墙虽然是重要的第一道防线,但它并不是万能的。数据安全管理是一个全面的系统工程,需要从多个角度出发,才能真正保护企业的数据资产。以下是一些关键的......
  • 在Linux中,如何配置防火墙和安全规则?
    在Linux中,配置防火墙和安全规则通常涉及使用iptables或较新的firewalld工具。以下是使用这两种工具的基本步骤和概念:1.使用iptables配置防火墙规则iptables是Linux内核的Netfilter框架的一部分,用于配置防火墙规则。它通过一系列链(chains)和规则(rules)来决定数据包的处理方式(如允......
  • 配置cisco asa 5525k9防火墙的日志保存到服务器
    配置ciscoasa5525k9防火墙的日志信息日志信息可以输出到LogBuffer(日志缓冲区)、ASDM和日志服务器。1.配置Logbuffer: loggingenable #启用日志功能 loggingbufferedinformational  #Cisco日志等级一共分为8级,0级最高,7级最低 showlogging  #查看LogBuff......