Linux防火墙(以iptables为例)

目录

  • Linux配置防火墙
    • 1. 引言
    • 2. 什么是防火墙
    • 3. Linux中的防火墙
      • 3.1 iptables
        • iptables命令参数
        • 常用方式:
        • 3.1.1 安装iptables
        • 3.1.2 配置iptables规则
        • 3.1.3 示例一:使用iptables配置防火墙规则
        • 4. iptables执行过程

Linux配置防火墙

在这里插入图片描述

1. 引言

在互联网时代,网络安全问题成为了一个极为重要的议题。为了保护服务器和计算机免受网络攻击的威胁,配置防火墙是必不可少的。本节将介绍如何在Linux系统上配置防火墙。

2. 什么是防火墙

防火墙是一种网络安全设备,用于监视和控制网络数据流量。其主要功能是在不同网络之间建立一条阻隔,对进出的数据流量进行过滤和筛选,从而保护内部网络免受未经授权的访问和恶意攻击。
防火墙通过规则集合控制网络流量的通过与阻止,这些规则可以根据网络策略和需求进行配置。不正确的配置可能导致无法访问特定服务或应用程序。

3. Linux中的防火墙

Linux操作系统提供了内置的防火墙工具,包括iptablesfirewalld。这些工具可以用来管理网络流量的过滤规则。

3.1 iptables

iptables是一个在Linux内核中操作防火墙规则的工具。它提供了一种灵活的方式来定义规则,控制网络流量的通过与阻止。
iptables使用表(table)链(chain)规则(rule)来实现这一功能。
iptables的规则由多个表组成,每个表又包含多个链。每个链包含一系列的规则,规则决定了如何处理数据包。
常用的表包括filternatmangle

  • filter表用于过滤数据包
    • 三个链:INPUT、FORWARD、OUTPUT
  • nat表用于网络地址转换
    • 三个链:PREROUTING、POSTROUTING、OUTPUT
  • mangle表用于修改数据包头信息。
    • 五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

链的解释:

  • INPUT——进来的数据包应用此规则链中的策略
  • OUTPUT——外出的数据包应用此规则链中的策略
  • FORWARD——转发数据包时应用此规则链中的策略
  • PREROUTING——对数据包作路由选择前应用此链中的规则
    (所有的数据包进来的时侯都先由这个链处理)
  • POSTROUTING——对数据包作路由选择后应用此链中的规则
    (所有的数据包出来的时侯都先由这个链处理)

iptables规则可以根据源IP地址目标IP地址端口号协议类型等来筛选和转发数据包。用户可以自定义规则,允许或阻止特定的网络连接。

iptables命令参数
参数含义
-L显示表中的所有规则
-n不要把端口或IP反向解析为名字
-t指定表,不指定默认是filter表
-Aappend追加,加入准许类规则
-Ddelete删除,例如 -D INPUT 1
-Iinsert拒绝类规则放在所有规则的最上面
-p协议protocal tcp/udp/icmp/all
–dport目标端口dest destination指定端口加上协议 -p tcp
–sport源端口,source源
-d–destination 目标IP
-s–source 来源IP或网段
-m指定模块 multiport
-iinput输入的时候,从哪个网卡进来
-ooutput输出的时候,从哪个网卡出去
-j满足条件后的工作:DROP/ACCEPT/REJECT
DROP把数据丢掉,不会返回信息给用户
REJECT拒绝,返回拒绝信息
-Fflush 清除所有规则,不会处理默认的规则
-X删除用户自定义的链
-Z链的计数器清零(数据包计数器和数据包字节计数器)
常用方式:

在这里插入图片描述

3.1.1 安装iptables

几乎所有的Linux发行版都内置了iptables,不需要额外安装。但是,对于某些较新的发行版来说,可能启用了firewalld,所以需要先禁用firewalld才能使用iptables

3.1.2 配置iptables规则

以下是一些常用的iptables命令:

•	iptables -L:列出当前的iptables规则。
•	iptables -A chain:添加一条规则到指定链。
•	iptables -D chain rule_number:删除指定链上的一条规则,规则从1编号
•	iptables -P chain target:设置指定链上到目标机器的默认处理动作。
•	iptables -I chain [rule_number]:在指定链上指定位置插入一条规则。
3.1.3 示例一:使用iptables配置防火墙规则

使用iptables来配置一个简单的防火墙,只允许通过SSH和HTTP访问服务器。

  1. 首先检查iptables的状态,确保它已经启用:
$ sudo systemctl status iptables
  1. 添加一个允许SSH连接(22端口)的规则:
$ sudo iptables -A INPUT  -p tcp  --dport 22  -j ACCEPT
  1. 添加一个允许HTTP连接(80端口)的规则:
$ sudo iptables -A INPUT  -p tcp  --dport 80  -j ACCEPT
  1. 允许已建立的连接和相关的数据包通过:
$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

conntrack是一种状态跟踪和记录的机制,本身并不能过滤数据包,只是提供包过滤的依据。有状态是一种过滤依据,无状态实际也是一种过滤依据。其他还有INVALID(无效连接)、CLOSE(关闭连接)、TIME_WAIT(等待超时)、NEW(新建连接)等状态。

  1. 将默认的处理动作设置为拒绝:
$ sudo iptables -P INPUT DROP
  1. 使用iptables禁用23端口
iptables -A INPUT -p tcp --dport 23 -j DROP
  1. 使用iptables禁止别人ping通,直接丢弃 icmp 的请求包
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
  1. 为防止SSH服务被暴力枚举,设置iptables防火墙策略仅允许172.16.10.0/24网段内的主机通过SSH连接本机
iptables –A INPUT –p tcp –dport 22 –s 172.16.10.0/24 –j ACCEPT
iptables –A INPUT –p tcp –dport 22 -j DROP
  1. 设置防火墙允许本机转发除ICMP协议以外的所有数据包
iptables -A FORWARD -p ! icmp -j ACCEPT
  1. 在工作时间,即周一到周五的8:30-18:00,开放本机的ftp给192.168.1.0/24网络中的主机访问
iptables -A INPUT -p tcp --dport 21 -s 192.168.1.0/24 -m time --weekdays 1,2,3,4,5 --timestart 08:30 --timestop 18:00 -j ACCEPT
  1. 配置iptables防火墙过滤规则,以封堵目标网段(172.16.1.0/24),并在两小时后解除封锁
iptables -I INPUT -s 172.16.1.0/24 -j DROP
iptables -I FORWARD -s 172.16.1.0/24 -j DROP
at now +2 hours
at> iptables -D INPUT 1
at> iptables -D FORWARD 1

例:屏蔽某个ip

# iptables -I INPUT  -s 10.0.0.7   -j DROP
# iptables -I INPUT  -s 172.16.1.7   -j DROP   
  1. 在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给 192.168.1.0网络中的主机访问要求从ftp服务的数据下载请求次数每分钟不得超过 5 个
iptables -A INPUT -s 172.16.0.0/16 -d 192.168.1.111 -p tcp --dport 21 -m time --timestart 8:30 --timestop 18:00 --weekdays 1,2,3,4,5 -m connlimit --connlimit-upto 5 -j ACCEPT

引用:iptables常用命令_iptables命令-CSDN博客

4. iptables执行过程

防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
  如果匹配成功规则,即明确表示是拒绝(DROP)还是接收(ACCEPT),数据包就不再向下匹配新的规则。
  如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
  防火墙的默认规则是所有规则都匹配完才会匹配的。

在这里插入图片描述

DROP 是直接将流量丢弃而且不响应;
REJECT 则会在拒绝流量后再回复一条“信息已经收到,但是被扔掉了”信息,从而让流量发送方清晰地看到数据被拒绝的响应信息。

防火墙策略规则是按照从上到下的顺序匹配的,因此一定要把允许动作放到拒绝动作前面,否则所有的流量就将被拒绝掉,从而导致任何主机都无法访问我们的服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/17939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【从零开始学习RabbitMQ | 第三篇】什么是延迟消息

目录 前言: 延迟消息: 延迟消息实现方式: 死信交换机: 延迟消息插件: 1.基于注解的方式 2.基于Bean的方式 总结: 前言: 在现代软件开发中,异步消息处理已成为构建可扩展、高可…

闲鱼详情API接口探析

随着互联网的快速发展,我国闲置交易市场逐渐繁荣,闲鱼作为阿里巴巴旗下闲置交易平台,已经成为众多用户的选择。为了方便开发者构建第三方应用,闲鱼提供了详细的API接口,联讯数据将对闲鱼详情API接口进行深入分析&#…

你真的懂firewalld吗?不妨看看我的这篇文章

一、firewalld简介 firewalld防火墙是Linux系统上的一种动态防火墙管理工具,它是Red Hat公司开发的,并在许多Linux发行版中被采用。相对于传统的静态防火墙规则,firewalld使用动态的方式来管理防火墙规则,可以更加灵活地适应不同…

ctfhub中的SSRF相关例题(中)

目录 上传文件 gopher协议的工作原理: gopher协议的使用方法: 相关例题: FastCGI协议 FastCGI协议知识点 相关例题: Redis协议 知识点: 相关例题 第一种方法 第二种方法 上传文件 gopher协议的工作原理: …

开箱元宇宙| 探索家乐福如何在The Sandbox 中重新定义零售和可持续发展

有没有想过 The Sandbox 如何与世界上最具代表性的品牌和名人的战略保持一致?在本期的 "开箱元宇宙 "系列中,我们与家乐福团队进行了对话,这家法国巨头率先采用web3技术重新定义零售和可持续发展。 家乐福的用户平均游玩时间为 57 …

maven部署到私服

方法一:网页上传 1、账号登录 用户名/密码 2、地址 http://自己的ip:自己的端口/nexus 3、查看Repositories列表,选择Public Repositories,确定待上传jar包不在私服中 4、选择3rd party仓库,点击Artifact Upload页签 5、GAV Definition选…

蓝桥杯嵌入式国赛笔记(3):其他拓展板程序设计(温、湿度传感器、光敏电阻等)

目录 1、DS18B20读取 2、DHT11 2.1 宏定义 2.2 延时 2.3 设置引脚输出 2.4 设置引脚输入 2.5 复位 2.6 检测函数 2.7 读取DHT11一个位 2.7.1 数据位为0的电平信号显示 2.7.2 数据位为1的电平信号显示 2.8 读取DHT11一个字节 2.9 DHT11初始化 2.10 读取D…

exe4j --实现把jar包打成exe可执行文件

工具准备 1.Java编辑器,如:idea、eclipse等,下载地址: IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains https://www.jetbrains.com/idea/ 2.exe4j,下载地址: ej-technologies - Java A…

SQL试题使得每个学生 按照姓名的字⺟顺序依次排列 在对应的⼤洲下⾯

学⽣地理信息报告 学校有来⾃亚洲、欧洲和美洲的学⽣。 表countries 数据如下: namecontinentJaneAmericaPascalEuropeXiAsiaJackAmerica 1、编写解决⽅案实现对⼤洲(continent)列的 透视表 操作,使得每个学生 按照姓名的字⺟顺…

常用批处理命令及批处理文件编写技巧

一常用批处理命令 1.查看命令用法:命令 /? //如:cd /? 2.切换盘符目录:cd /d D:\test 或直接输入 d: //进入上次d盘所在的目录 3.切换目录:cd test 4.清屏:cls 5.“arp -a” //它会列出当前设备缓存中的所有…

特定车型专属AI模型解决方案,高清图像,稳定输出

美摄科技凭借其对人工智能领域的深刻理解和技术积累,为企业带来了一项革命性的解决方案——特定车型专属AI模型。这一方案以专属车型照片为基础,通过先进的AI生成模型训练,为企业提供个性化、高清、稳定的车辆图像和视频生成服务,…

天正T20专业建筑v7.0~v10.0版本下载,天正T20专业建筑软件获取

利用AutoCAD这一全球知名的图形平台,我们成功研发出了最新一代的T20天正建筑软件V8.0。这款软件以其卓越的性能和专业化的功能,在建筑施工图设计领域展现出了强大的实力,赢得了广大建筑设计师的青睐。 T20天正建筑软件V8.0在继承了AutoCAD的稳…

盐城市大数据集团携手百望云 以MaaS推进数字经济跃迁

随着ChatGPT的爆火,大模型、人工智能、大数据等技术,被快速推向市场最前沿。如何通过创新技术提升企业的数字化能力,助力数据要素资产沉淀,推动企业及所在行业、区域实现数智化转型,是大家关注的核心问题。 “携手共建…

基于LLM的优化器评测-非凸函数

基于LLM的优化器评测-非凸函数 目标函数测试结果测试代码测试日志 背景: ​ 很多时候我们需要为系统寻找最优的超参.比如模型训练,推理的量化等.本文尝试将LLM当成优化器,帮忙我们寻找最优的超参. 验证方法: 1.设计一个已知最优解的多项式,该多项式有3个变量(因为3个变量可以…

高集成IP摄像SOC处理方案简介以及芯片介绍SSC336D

时至今日,随着科技越来越快的发展,视频监控领域目前已经向新型 IP 网络进行技术过渡。而 IP 网络摄像系统的初始定义为:网络与视频处理技术相统一的摄像单元。 网络摄像系统拥有自己的 IP 地址和计算功能,能处理网络通信任务。其…

FPGA DMA技术分享(赋能高速数据处理的新动力介绍篇)

一、引言 在现代数字信号处理系统中,数据的高速、高效传输与处理是关键。FPGA(现场可编程门阵列)以其高度的灵活性和并行处理能力,成为实现这一目标的理想平台。而DMA(直接内存访问)技术,作为FP…

【Linux】自己实现一个bash进程

bash就是命令行解释器,就是Linux操作系统让我们看到的,与用户进行交互的一种外壳(shell),当然了bash也是一个进程,它有时候就是通过创建子进程来执行我们输入的命令的。这无疑就离不开我们上篇博客所说的进…

floodfill 算法(上)

目录 图像渲染 题意: 题解: 非递归: 递归: 岛屿数量 题解: 非递归: 递归: 岛屿的最大面积 题解: 非递归: 递归: 被围绕的区域 题解&#xff1a…

【架构-16】安全架构设计理论

信息安全面临的威胁 主动攻击:可能改变信息或危害系统的攻击就是主动攻击 被动攻击:攻击者的目的只是获取信息,不会改变信息或危害系统。(网络监听、信息截取、流量分析) 信息安全体系架构设计 信息安全体系架构。具…

Llama模型家族训练奖励模型Reward Model技术及代码实战(二)从用户反馈构建比较数据集

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (一) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (二) 基于 LlaMA 3 LangGraph 在windows本地部署大模型 (三) 基于 LlaMA…