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

今天我们开始学习iptables防火墙

由表(table)链(chain)规则(rule)三部分组成。

表链关系写规则,或者表的功能和链的功能写规则


raw表:对数据包进行状态追踪。规则链:OUTPUT、PREROUTING。

mangle表: 修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、OUTPUT, FORWARD, PREROUTING, POSTROUTING。

nat表:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。(由内向外进行网络通信)包含三个规则链,OUTPUT, PREROUTING, POSTROUTING.

filter表:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、FORWARD, OUTPUT.

顺序:raw mangle nat filter(数据包进入防火墙顺序)

INPUT链:当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。

OUTPUT链:当防火墙本机向外发送数据包(出站)时,应用此链中的规则。FORWARD链:当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。

PREROUTING链:在对数据包作路由选择之前,应用此链中的规则,用来修改目的地址,如DNAT.

POSTROUTING链:在对数据包作路由选择之后,应用此链中的规则,用来修改源地址,如SNAT.

操作:

1,rocky9开启三个虚拟机 :pc1 防火墙 pc2

拓展:(将三个虚拟机继续改名)

#修改主机名 
hostnamectl  set-hostname 主机名

2,充当防火墙的虚拟机(既可以充当防火墙,也有路由的功能)

#打开防火墙,开机自启
[root@firewall ~]# systemctl enable -- now firewalld

[root@firewall ~]# getenforce
Permissive

#开启路由功能
[root@firewall ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1                        #在最下面输入该内容
[root@firewall ~]# sysctl -p
net.ipv4.ip_forward = 1  

添加一个网卡,让第一个网卡为vmnet1与pc1,第二个网卡为vmnet2与pc2。

将pc1的网卡为vmnet1,pc2的网卡为vmnet2.

cd /etc/NetworkManger/
vim system-connections/ens33.nmconnection
ipv4
method=manual
address=192.168.100.254/24 
nmcli c s
nmcli c add type ethernet  con-name ens34 ifname  ens34   #把新建的网卡配置上
vim  system-connections/ens34.nmconnection
ipv4
method=manual
address=192.168.200.254/24 
nmcli c reload   (进行重载connection信息)
ip a              (看端口地址是否设置好,如果没设置好就用图形化解决)
route -n (看地址信息?)

3.PC1

cd /etc/NetworkManger/
vim system-connections/ens33.nmconnection
ipv4
method=manual
address=192.168.100.1/24,192.168.100.254
route -n (看地址信息?)

4.PC2

cd /etc/NetworkManger/
vim system-connections/ens33.nmconnection
ipv4
method=manual
address=192.168.200.1/24,192.168.200.254
route -n (看地址信息?)
ping 192.168.100.1 (验证确实和pc1通信上。)

5.充当防火墙的虚拟机(既可以充当防火墙,也有路由的功能)

添加个网卡

yum install -y nginx 
netstart -anptu |grep nginx

6,PC1

systemctl disable -- now firewalld    
iptables -nL  (默认查看filter表)
iptables  -nL -t  filter(查看filter表)
iptables  -nL -t  nat(查看nat表)
curl 192.168.100.254  (访问192.168.100.254)

7,充当防火墙的虚拟机(既可以充当防火墙,也有路由的功能)

iptables  -t filter -A INPUT --dport 80 -s 192.168.100.1 -j DROP (指定filter表,在input中写入规则,规则为当192.168.100.1访问80号端口时为拒绝并不回应。此时用pc1访问就会卡住没有回应)
若为iptables  -t filter -A INPUT --dport 80 -s 192.168.100.1 -j REJECT (指定filter表,在input中写入规则,规则为当192.168.100.1访问80号端口时为拒绝但是回应。此时用pc1访问就会接收到回应)
iptables  -t filter -D INPUT 1 (删除input中的1号规则)
iptables  -t filter -nL --line-number(查看规则的编号)
iptables  -t filter -I INPUT 1 -P tcp --dport 80 -s 192.168.100.1  -d 192.168.100.254 -j REJECT  ()
iptables  -t filter -A INPUT -P ip -j DROP(拒绝所有)
iptables -nL(查看修改后的表所添加的内容)
iptables -F  (默认清除filter表)
iptables  -F -t  filter(清除filter表)
iptables  -F -t  nat(清除nat表)

通用匹配

协议匹配 -p 协议名

地址匹配 -s 源地址 -d 目的地址(可以是IP、网段、域名、空(代表任何地址))

接口匹配 -i 入站网卡 -o 出站网卡

协议端口匹配

--sport 和 --dsport 必须配合 -p 指定协议使用!!!

icpm匹配


1.充当防火墙的虚拟机

iptables  -t filter -A INPUT -P imcp --imcp-type 8 -j DROP  (让pc1发送的请求发不出去)

iptables  -t filter -A INPUT -P imcp --imcp-type 0 -j DROP (ping pc1机时也发不过去,实现双方都传输不了)

iptables  -t filter -A INPUT -P imcp --imcp-type 3 -j DROP (让pc1发送的请求发不出去,并给回应?)

多端口匹配


1.充当防火墙的虚拟机

iptables  -t filter -A INPUT 1 -P tcp -m multiport --dport 80,21,22,23 -j DROP  (多端口匹配)

IP范围匹配


1.充当防火墙的虚拟机

iptables  -t filter -A INPUT 1 -P tcp -m iprange --src-range 192.168.100.1-192.168.100.3  -j DROP

MAC匹配(了解)

状态匹配(了解)

NAT表


1.对三台虚拟机清一下规则

iptables  -F

2,将两台pc的网关去掉

cd /etc/NetworkManger/
vim system-connections/ens33.nmconnection
ipv4
method=manual
address=192.168.200.1/24
cd /etc/NetworkManger/
vim system-connections/ens33.nmconnection
ipv4
method=manual
address=192.168.100.1/24

pc2

route -n
route del -net 0/0 gw 192.168.200.254 
route -n

防火墙虚拟机(snat地址转换由内向外,有两种方法,第一个是转为固定公网ip,第二个是转为非固定(动态)公网ip。 )

#由内向外转时,在postrouting之后再转。
iptables  -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens34 -j SNAT --to 192.168.200.254  (和pc1连的地方   )
iptables  -t nat -nL(查看表的信息)
tcpdump -i  any (抓包,此时将pc1对防火墙虚拟机进行ping)
​

防火墙虚拟机(dnat服务,是指将其内部信息发布到外部,让外部进行联通,由外向内)

iptables  -t nat -A PEROTING -i ens34 -d 192.168.200.254 -p  tcp -dport 2222  -j DNAT --to-destination  192.168.100.1:2222

pc2

ssh -p 192.168.200.254(远程连接pc1)

防火墙虚拟机(snat地址转换由内向外,有两种方法,第一个是转为固定公网ip,第二个是转为非固定(动态)公网ip。 )

#由内向外转时,在postrouting之后再转。(这个操作为批量创建)
iptables  -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens34 -j SNAT --to-source 192.168.200.253-192.168.200.254  (和pc1连的地方)(对pc1,和pc2ping,抓包看看)
iptables  -t nat -nL(查看表的信息)
(ifconfig ens34 192.168.200.253)
tcpdump -i  any (抓包,此时将pc1对防火墙虚拟机进行ping)
报错说明(内部还是一对一的关系)
iptables  -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens34 -j MASQUERADE  (动态公网ip)
tcpdump -n -i  -vv  any (带有端口号的信息)
​

pc1

ssh 192.168.200.1 (连pc2) 

备份和恢复(如果不备份重启失效)


存放路径

查看路径信息


文章转载自:

http://1Gsztiza.btpLL.cn
http://QRurZTv2.btpLL.cn
http://7VRgMBiu.btpLL.cn
http://y3x3nCsh.btpLL.cn
http://vXrxy58O.btpLL.cn
http://CJ3WIpU5.btpLL.cn
http://9S9AgRR3.btpLL.cn
http://VijIOxpF.btpLL.cn
http://h5Q4Bceu.btpLL.cn
http://Y1A3XTlL.btpLL.cn
http://wZGWMaS2.btpLL.cn
http://J9r1k3XN.btpLL.cn
http://zIxFlQ98.btpLL.cn
http://TnlHeSs3.btpLL.cn
http://LjZMSfu2.btpLL.cn
http://Osx1JfLh.btpLL.cn
http://tfXe6nPy.btpLL.cn
http://sE3aXgKp.btpLL.cn
http://35siapBk.btpLL.cn
http://E0AK8Y9M.btpLL.cn
http://F92DhQvC.btpLL.cn
http://UnTlBcKe.btpLL.cn
http://nGUYgdlx.btpLL.cn
http://aItMhv0m.btpLL.cn
http://iUvba3a0.btpLL.cn
http://1mSaMhE1.btpLL.cn
http://eBGGzMJg.btpLL.cn
http://VwJbvC3A.btpLL.cn
http://veiTY6fo.btpLL.cn
http://ZPxjaSPb.btpLL.cn
http://www.dtcms.com/a/378919.html

相关文章:

  • Android逆向学习(十一) IDA动态调试Android so文件
  • 第二篇:排序算法的简单认识【数据结构入门】
  • 嵌入式铁头山羊stm32:一文总结
  • HDFS(Hadoop 分布式文件系统)知识点梳理
  • AI幻觉的罪魁祸首
  • JVM 基础
  • 计算智能的概念和其算法的主要算法类型
  • leetcode25(有效的字母异位词)
  • [Windows] FileOptimizer v17.1.0_一款文件批量压缩工具
  • 淘宝/天猫按图搜索(拍立淘)item_search_img API接口实战指南
  • Java优选算法——二分查找
  • leetcode380:RandomizedSet - O(1)时间插入删除和获取随机元素(数组+哈希表的巧妙结合)
  • 经典蓝牙的 BR(Basic Rate(基础速率))
  • 牛客周赛 Round 108题解
  • Rocky9.0去堆叠双发arp(支持“ARP 广播双发”)
  • 「京墨」1.15.0 诗词、成语、对联、句子、诗歌…
  • AWS TechFest 2025: 风险模型的转变、流程设计的转型、生成式 AI 从实验走向实施的三大关键要素、评估生成式 AI 用例的适配度
  • 【Blender】二次元人物制作【二】:五官的制作
  • MinIO集群部署详细步骤(高性能的分布式对象存储系统)
  • 带地图的 RAG:多模态 + 地理空间 在 Elasticsearch 中
  • 使用 Spring AI Alibaba Graph 实现工作流
  • 【Debug日志 | DDP 下 BatchNorm 统计失真】
  • linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)
  • 综合文化信息管理系统|基于java和小程序的综合文化信息管理系统设计与实现(源码+数据库+文档)
  • 20250911_10.1.11.46车辆定位aidata-01_Apache Doris分布式数据库全量备份(本地+异地)Python脚本
  • DenseNet网络
  • 2025胶水分装机服务商技术解析:聚焦高精度、智能化应用
  • Drawnix白板本地部署指南:cpolar实现远程创意协作
  • leetcode189.轮转数组
  • SPI设备驱动