当前位置: 首页 > news >正文

Linux系统防火墙之iptables

防火墙在一个系统中就好像是一个国家的军队,所谓国无军不安,在系统中也是这样,防火墙可以保护系统被别人攻击,过滤垃圾流量等,那么今天我们就来了解一下Linux系统中的一种防火墙iptables。

目录

iptables概述

规则

iptables操作使用

iptables常用选项

具体操作

内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关。

内部网络服务器s1通过DNAT发布服务到互联网。

互联网主机pc2能够访问s1服务器,但是不能够进行ping和ssh连接。


iptables概述

iptables由表、链以及若干规则组成

规则

就是告诉iptables防火墙该做什么,等于是一个工作标准。

某些规则的集合就是链,每个链都有一定的相同点,分别为INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING,从字面上的意思也能大概理解。

  • INPUT:入站的数据包应用此链中的规则
  • OUTPUT:出站的数据包应用此链中的规则
  • FORWARD:转发的数据包应用此链中的规则
  • PREROUTING:想要修改目的地址数据包应用此链中的规则
  • POSTROUTING:想要修改源地址数据包应用此链中的规则

是若干规则和链的集合,分别为raw、mangle、nat、filter,这里我们重点了解常用的filter和nat

  • filter:负责过滤数据包
  • nat:负责地址转换
  • raw:确定是否进行转台跟踪
  • mangle:做流量整形,修改数据包内容

iptables操作使用

iptables常用选项

  • -t  指定表名
  • -j  指定控制类型
  • -A  在指定链的末尾追加一条新的规则
  • -I   在指定链的开头插入一条新的规则
  • -R  修改、替换指定链中的某一条规则
  • -P  设置指定链的默认策略
  • -D 删除指定链中的某一条规则
  • -F 清空指定链中的所有规则
  • -L  列出指定链中所有的规则
  • -n 使用数字形式显示输出结果
  • -v 显示详细信息
  • --line-numbers 显示规则的序号
  • -p 指定要匹配的数据包的协议类型
  • -s 指定要匹配的数据包的源IP地址
  • -d 指定要匹配的数据包的目的IP地址
  • -i 指定数据包进入本机的网络接口
  • -o 指定数据包离开本机做使用的网络接口
  • --sport 指定源端口号
  • --dport 指定目的端口号

命令的选项有点多,为了方便记忆,这里结合例子进行讲解,会更加的简单易懂。

具体操作

创建一个实验环境,三个局域网互联,一个为内部网络,一个为外部网络,一个为服务器网络

内部网络IP192.168.50.1 服务器网络IP192.168.60.1 外部网络IP192.168.70.1

与防火墙相连,防火墙开启IP地址转换

内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关。

分析一下,PC1采用SNAT访问外部互联网,就是在PC1访问外部互联网时,将IP地址转换为公网IP,具体命令如下

 首先是PC1访问外部互联网,意思就是改变源地址,所以选择nat表,POSTROUTING链,

从192.168.50.0/24这个网段出发,通过ens256(连接防火墙的网卡),通过SNAT将地址转换成192.168.70.254即可实现前半个要求

无法ping到内部网关,命令如下

即来自192.168.50.1的icmp类型的请求数据会被丢弃,就无法ping通了

内部网络服务器s1通过DNAT发布服务到互联网。

逻辑与SNAT相反,将想要进来的IP地址转换成内部网段,命令如下

即从外部网络的从192.168.70.254地址,ens256,这里我的网络服务是nginx服务因此端口为80号端口,目的网络IP为192.168.60.1即服务器的IP地址。

互联网主机pc2能够访问s1服务器,但是不能够进行ping和ssh连接。

具体命令如下,

第一条即,从ens256到ens224的目的为192.168.60.1的tcp,接口为80的数据会被接收

第二条即,从ens256 目的是192.168.60.1的icmp的ping请求包会被丢掉

第三条即,从ens256目的是192.168.60.1的tcp,接口为22的(ssh)的包会被丢弃

这只是一个思路,通过不同的规则也可以达到同样的效果,所以大家可以发散思路,多练多看就可以掌握iptables的设置方法了。

http://www.dtcms.com/a/239126.html

相关文章:

  • LeetCode --- 452周赛
  • 基于FPGA的超声波显示水位距离,通过蓝牙传输水位数据到手机,同时支持RAM存储水位数据,读取数据。
  • Java八股文——并发编程「场景篇」
  • 基于n8n指定网页自动抓取解析入库工作流实战
  • Python学习(7) ----- Python起源
  • 【DAY43】复习日
  • JESD204B IP核接口实例,ADI的ADRV9009板卡,ZYNQ7045驱动实现2发2收。
  • Halo站点全站定时备份并通过邮箱存储备份
  • Polarctf2025夏季赛 web java ez_check
  • 基于51单片机的红外防盗及万年历仿真
  • 机器学习方法实现数独矩阵识别器
  • Redis——主从哨兵配置
  • 基于自适应虚拟谐波阬的光储VSG并网电流谐波抑制模型
  • LLMs 系列科普文(6)
  • 前后端分离开发 和 前端工程化
  • LeetCode--25.k个一组翻转链表
  • DAY 48 随机函数与广播机制
  • JavaScript 的意义
  • 知名的WordPress模板团队
  • c++ std::pair
  • vmware 设置 dns
  • Elasticsearch 常用操作命令整合 (cURL 版本)
  • 鸿蒙API自翻译
  • 从碳基羊驼到硅基LLaMA:开源大模型家族的生物隐喻与技术进化全景
  • Ollama部署下载Qwen3-Embedding(含0.6B、4B、8B等)向量模型和Qwen3-Reranker(含0.6B、4B、8B等)重排模型的方法
  • 【RAG召回】BM25算法示例
  • 智慧城市项目总体建设方案(Word700页+)
  • 楠溪江诗意传承:李文照笔下的山水印记
  • leetcode_56 合并区间
  • 十一.C++ 类 -- 面向对象思想