Linux之iptables防火墙概述及相关规则(一)

本文涉及的产品
云防火墙,500元 1000GB
公网NAT网关,每月750个小时 15CU
简介: Linux之iptables防火墙概述及相关规则(一)

前言


保障数据的安全性是继保障数据的可用性之后最为重要的一项工作。防火墙作为公网与内网之间的保护屏障,在保障数据的安全性方面起着至关重要的作用。

iptables

centos 5/6  系统默认防火墙

firewalld

centos 7/8  系统默认防火墙

iptables用的较多

在7和8上也是有的,现在流行的k8s就是基于iptables


一、iptables防火墙基础


硬件防火墙:性能好,用图形化 管理,一般公司用硬件(华为E9000)

软件防火墙:做辅助,做在服务器上,用命令管理

Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件netfilter和iptables组成


主要工作在网络层,针对IP数据包,体现在对包内的IP地址、端口、协议等信息的处理上


1.1 netfilter和iptables关系

Linux中称为包过滤防火墙,iptables和firewalld都有两个组件netfilter和iptables,这两种称呼都可以表示Linux防火墙。


注意:与netfilter相提并论的iptables是iptables防火墙的组件,可以认为是iptables防火墙的分支,但是名字一样


netfilter

1.位于Linux内核中的包过滤功能体系

2.称为Linux防火墙的“内核态”(又称内核空间)

iptables

1.位于/sbin/iptables,用来管理防火墙规则的工具

2.称为Linux防火墙的“用户态”(又称用户空间)

netfilter/iptables后期简称为iptables, iptables是基于内核的防火墙,其中内置了raw、mangle、nat和filter四个规则表。


表中所有规则配置后,立即生效,不需要重启服务。



1.2 iptables的四表五链

规则表的作用

容纳各种规则链

规则链的作用

容纳各种防火墙规则

总结

表中有链,链中有规则

1.2.1 四表

含义

包含的规则链

raw表

确定是否对该数据包进行状态跟踪

OUTPUT、PREROUTING

mangle表

修改数据包内容,用来做流量整形的,给数据包设置标记

INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUING

nat表

负责网络地址转换,用来修改数据包中的源、目标IP地址或端口

OUTPUT、PREROUTING、POSTROUING

filter表

负责过滤数据包,确定是否放行该数据包(过滤)

INPUT、FORWARD、OUTPUT

在iptables的四个规则表中, mangle表和raw表的应用相对较少


filter表是防火墙的默认表



1.2.2 五链

作用

INPUT链

处理入站数据包,匹配目标IP为本机的数据包

OUTPUT链

处理出站数据包,一般不在此链上做配置

FORWARD链

处理转发数据包,匹配流经本机的数据包

PREROUTING链

在进行路由选择前处理数据包,用来修改目的地址,用来做DNAT。相当于把内网服务器的IP和端口映射到路由器的外网IP和端口上

POSTROUING链

在进行路由选择后处理数据包,用来修改源地址,用来做SNAT。相当于内网通过路由器NAT转换功能实现内网主机通过一个公网IP地址上网

规则链之间的匹配顺序:


主机型防火墙:


入站数据(来自外界的数据包,且目标地址是防火墙本机):PREROUTING --> INPUT -->本机的应用程序


出站数据(从防火墙本机向外部地址发送的数据包) :本机的应用程序--> OUTPUT --> POSTROUTING


网络型防火墙:


转发数据(需要经过防火墙转发的数据包) : PREROUTING --> FORWARD --> POSTROUTING


规则链内的匹配顺序:


自上向下按顺序依次进行检查,找到相匹配的规则即停止(LOG策略例外,表示记录相关日志)


若在该链内找不到相匹配的规则,则按该链的默认策略处理(未修改的状况下,默认策略为允许)


1.3 数据包控制的匹配流程


标红的代表该链的规则通常在这个表上配置


1.3.1 入站

入站数据包从A网络发到B网络,首先发到防火墙,先后顺序经过有PREROUTING链的三个表(raw、mangle、nat),如果都是放通状态的会经过路由选择,然后根据目的地址一层一层往上送,经过有INPUT的两个表(mangle、filter),一直送到应用程序


1.3.2 转发

目的地不是本机,数据包先从A网络过滤,经过PREROUTING链,看是否是自己的目的地址,如果是外网到内网需要用nat转换成内网IP,找到内网用户,经过FORWARD链进行过滤,允许放通的到达POSTROUING链,再把内网地址转换成公网,这样数据包才能回去;如果是内网往外网发顺序就是反过来


1.3.3 出站    

从本机的应用程序发出来, 经过路由选择,让路由知道从哪里发,先后顺序经过有OUTPUT链的四个表(raw、mangle、nat、filter),都放通后到达POSTROUING链的两个表(mangle、nat),如果没有什么转换地址,就出站

目录
相关文章
|
3月前
|
安全 Linux 应用服务中间件
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
在Linux中,包过滤防火墙与代理应用防火墙有什么区别?有哪些相应的产品?
|
2月前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
230 73
|
10天前
|
存储 运维 Linux
Linux防火墙firewall的使用
CentOS 7 中的 firewalld 是基于 Netfilter 的防火墙服务,支持动态配置,无需重启服务即可生效。它通过区域管理网络流量,每个区域可以设置不同的防火墙规则。默认区域为 public,可以通过命令行工具 firewall-cmd 进行管理和配置。firewalld 提供了丰富的预定义服务和区域,方便用户根据需求进行灵活配置。
29 0
|
2月前
|
Unix Linux API
Linux内核许可规则 【ChatGPT】
Linux内核许可规则 【ChatGPT】
|
3月前
|
Linux 网络安全
linux关闭方防火墙的命令
linux关闭方防火墙的命令
84 2
|
2月前
|
Linux 测试技术 API
Linux PWM接口概述 【ChatGPT】
Linux PWM接口概述 【ChatGPT】
|
网络协议 安全 Linux
百度搜索:蓝易云【Linux系统下如何在防火墙开放指定端口】
在Linux系统中,防火墙是用于保护计算机安全的重要组成部分。默认情况下,大多数Linux发行版都会自带一个防火墙,如iptables、firewalld等。当我们需要运行特定的应用程序或服务时,需要在防火墙中开放相应的端口。下面就是Linux系统下如何在防火墙开放指定端口的详细步骤。
112 0
|
6月前
|
存储 安全 网络协议
使用 firewall-cmd 管理 Linux 防火墙端口
本文将介绍如何使用 firewall-cmd 工具在 Linux 系统中进行简单端口管理,包括开放、查询、关闭等操作。通过实例展示相关命令的用法,希望能对大家有所帮助。
730 0
|
6月前
|
网络协议 安全 Linux
linux配置防火墙 Centos7下 添加 端口白名单
linux配置防火墙 Centos7下 添加 端口白名单
1008 0
|
Linux 网络安全
Linux系统如何查看和设置防火墙规则(端口开放和禁用)
Linux系统如何查看和设置防火墙规则(端口开放和禁用)
3453 0
下一篇
无影云桌面