linux系统防火墙之iptables

版权声明:原创作品,请勿转载!

简介:iptables防火墙属于软件防火墙,一般用来做简单的NAT映射以及流入流出的流量限制,生产环境数据量大的情况下建议选择硬件防火墙配置规则以及做NAT映射。

一、四表五链

1.四表

filter表、nat表、mangle表(不常用)、raw表

1.1 filter表

主要用于数据包的过滤,配置的访问规则在这里面,包括INPUT、OUTPUT、FORWARD链

INPUT:主要用于处理流入本机的数据包

OUTPUT:主要用于处理流出本机的数据包

FORWARD:主要用于处理本机转发到其他地址的数据包

1.2 nat表

主要用于网络地址转换,包括OUTPUT、PREROUTING、POSTROUTING链

OUTPUT:主要用于源地址转换,即SNAT

PREROUTING:主要用于目标地址转换,即DNAT

POSTROUTING:主要用于源地址转换,即SNAT

SNAT:局域网-->NAT-->公网

DNAT:外网----->DNAT-->局域网

剩下的两个表不做详细介绍

2.五链

INPUT链、OUTPUT链、PREROUNTING链、FORWARD链、POSTROUTING链

二、实战案例

1.基础命令

1.1 查看防火墙规则

iptables -nL

1.2 清空防火墙默认的规则

iptables -F

iptables -X

iptables -Z

2.生产案例

2.1 禁止10.0.0.31访问10.0.0.7

root@web01 \~\]# iptables -I INPUT -s 10.0.0.31 -j DROP \[root@web01 \~\]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 10.0.0.31 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination \[root@web01 \~\]#

测试验证

2.2 删除iptables规则

使用-D 选择对应的表,最后加上规则的序号

root@web01 \~\]# iptables -nL --line #查看规则的序号 Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP all -- 10.0.0.31 0.0.0.0/0 Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination \[root@web01 \~\]# iptables -D INPUT 1 #删除规则 \[root@web01 \~\]# iptables -nL --line Chain INPUT (policy ACCEPT) num target prot opt source destination Chain FORWARD (policy ACCEPT) num target prot opt source destination Chain OUTPUT (policy ACCEPT) num target prot opt source destination

测试验证

2.3 限制网段访问

root@web01 \~\]# iptables -I INPUT -s 172.16.1.0/24 -j DROP \[root@web01 \~\]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 172.16.1.0/24 0.0.0.0/0 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

测试验证

2.4 限制10.0.0.31不能访问10.0.0.7的80端口

root@web01 \~\]# iptables -I INPUT -s 10.0.0.31 -p tcp --dport 80 -j DROP \[root@web01 \~\]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination DROP tcp -- 10.0.0.31 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

测试验证

2.5 多端口配置

root@web01 \~\]# iptables -I INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT \[root@web01 \~\]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 multiport dports 80,443 DROP tcp -- 10.0.0.31 0.0.0.0/0 tcp dpt:80 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination

2.6 使用iptables实现共享上网

将来源是172.16.1.0/24网段的IP都转换为10.0.0.31去访问

root@web01 \~\]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.31

2.7 ip地址映射

发往 10.0.0.31 这个 IP 的 9000 端口(TCP 协议) 的所有网络请求,转发(映射) 到内网的 172.16.1.7 主机的 22 端口

root@web01 \~\]# iptables -t nat -A PREROUTING -d 10.0.0.31 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.7:22

相关推荐
YuMiao12 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒1 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器