防火墙(Firewall)

目录

一、概述

二、iptables

三、iptable的用法


一、概述

防火墙的作用

用于保护内网安全的一种设备

依据规则进行防护

用户定义规则

允许或拒绝外部用户访问

防火墙分类

逻辑上划分,防火墙可以大体分为主机防火墙和网络防火墙主机防火墙:针对于单个主机进行防护

网络防火墙:针对网络进行防护,处于网络边缘,防火墙背后是本地局域网网络防火墙主外(服务集体),主机防火墙主内(服务个人)

物理上划分,防火墙可分为硬件防火墙和软件防火墙

硬件防火墙:在硬件级别实现防火墙功能,另一部分基于软件实现,其性能高,硬件成本高

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,其性能相较于硬件防火墙低,成本较低,对于Linux系统已自带,直接使用即可

防火墙性能

吞吐量

并发连接

新建连接

时延

抖动

硬件防火墙

硬件防火墙定义

硬件防火墙是指把具备配置数据包通过规则的软件嵌入硬件设备中,为网络提供安全防护的硬件设备。多见于网络边缘。

硬件防火墙作用(拓扑图 ups)

软件防火墙

软件防火墙是单独使用具备配置数据包通过规则的软件来实现数据包过滤。多见于单主机系统或个人计算机

硬件防火墙与软件防火墙比较

硬件防火墙有独立的硬件设备,运算效率较高,价格略高,可为计算机网络提供安全防护。

软件防火墙必须部署在主机系统之上,相较于硬件防火墙运算效率低,在一定程度上会影响到主机系统性能,一般用   于单机系统或个人计算机中,不直接用于计算机网络中。

二、iptables

iptables是什么?

iptables不是防火墙,是防火墙用户代理

用于把用户的安全设置添加到“安全框架”中  

“安全框架”是防火墙

“安全框架”的名称为netfilter

netfilter位于内核空间中,是Linux操作系统核心层内部的一个数据包处理模块

iptables是用于在用户空间对内核空间的netfilter进行操作的命令行工具

netfilter/iptables功能

netfilter/iptables可简称为iptables,为Linux平台下的包过滤防火墙,是开源的,内核自带的,可以代替成本较高的   企业级硬件防火墙,能够实现如下功能:

数据包过滤,即防火墙

数据包重定向,即转发

网络地址转换,即可NAT

注:平常我们使用iptables并不是防火墙的“服务”,而服务是由内核提供的。

iptables概念

iptables工作依据 规则(rules)

iptables是按照规则(rules)来办事的,而规则就是运维人员所定义的条件;规则一般定义为“如果数据包头符合这样的   条件,就这样处理这个数据包”。

规则存储在内核空间的数据包过滤表中,这些规则分别指定了源地址、目的地址,传输协议(TCP、UDP、ICMP)和服   务类型(HTTP、FTP)等。

当数据包与规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,比如放行(ACCEPT)、拒绝(REJECT)、   丢弃(DROP)等

iptables中链的概念

在iptables中,链是规则的集合,它定义了数据包在iptables中的处理流程。每个数据包在经过iptables时,都会按照规则从一个链中的一个规则开始,然后依次检查和匹配其他规则,直到遇到一个匹配的规则,或者到达链的末尾。根据匹配结果,可以决定是允许数据包通过,还是拒绝或者进行其他操作。

iptables包含以下几种预定义链:

INPUT链:用于处理进入本机的数据包,包括通过网络接口进入的数据包。

OUTPUT链:用于处理从本机发出的数据包,包括通过网络接口发出的数据包。

FORWARD链:用于处理通过本机的数据包,但不是本机产生和消费的数据包。例如,当本机作为路由器或防火墙时,用于处理转发给其他主机的数据包。

此外,还有一些其他的特殊链,例如:

PREROUTING链:在数据包到达本机内核之前,在路由选择之前执行的链。

POSTROUTING链:在数据包离开本机内核之前,在路由选择之后执行的链。

NAT链:用于网络地址转换(NAT)操作的链,例

### 配置和管理Linux防火墙 #### 使用`firewalld` `Firewalld` 提供了一种动态管理防火墙的方式,允许更新规则而不中断现有连接。对于大多数现代Linux发行版,默认情况下会安装并启用 `firewalld`。 要查看当前状态可以运行如下命令: ```bash sudo systemctl status firewalld ``` 为了启动或停止服务可分别执行下面两条指令之一: ```bash sudo systemctl start firewalld # 启动服务 sudo systemctl stop firewalld # 停止服务 ``` 如果希望开机自动加载,则需设置为开启状态: ```bash sudo systemctl enable firewalld ``` 通过图形界面配置也很简单,只需打开应用程序菜单找到名为 "Firewall Configuration" 或者直接在终端里键入 `firewall-config` 即可进入GUI模式进行操作[^2]。 #### 添加端口和服务到特定区域 默认情况下,公共区(`public`)被选作活跃区;但是可以根据需求更改此设定。向指定区域内添加开放端口的例子如下所示: ```bash sudo firewall-cmd --zone=public --add-port=80/tcp --permanent ``` 上述命令永久性地将TCP协议下的HTTP(80)端口加入到了公网访问列表之中。记得每次修改后都要重新载入配置文件使改动生效: ```bash sudo firewall-cmm --zone=public --remove-port=80/tcp --permanent ``` 当涉及到具体的应用程序而非单一端口号时,比如SSH、HTTPS等常用的服务名同样适用这种方式处理: ```bash sudo firewall-cmd --zone=public --add-service=https --permanent ``` 这行代码的作用就是让HTTPS流量能够顺利穿过防火墙屏障到达目标主机上监听该类型的进程那里去[^1]。 #### 利用`iptables`实现更精细控制 尽管`firewalld`已经足够满足日常维护工作所需的功能特性了,但对于某些特殊场景下可能还是需要用到更为底层也更加灵活多变的工具——即`iptables`本身。它能让我们直接针对IPv4层面的数据流制定详尽而又复杂的过滤策略。 创建一条简单的INPUT链规则阻止来自某个IP地址的所有传入请求样例如下: ```bash sudo iptables -A INPUT -s 192.168.1.100 -j DROP ``` 这里的意思是从源地址为`192.168.1.100`过来的一切尝试都将遭到拒绝响应。当然实际应用当中往往不会这么绝对化,而是配合其他条件一起使用形成复杂逻辑判断结构[^3]。 保存这些自定义好的表项以便重启之后仍然有效非常重要: ```bash sudo sh -c "iptables-save > /etc/iptables/rules.v4" ``` 以上就是在Linux环境中围绕着两个主流防火墙解决方案展开的一些基本介绍与实践指导。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值