Debian iptables 防火墙:默认拒绝、SNAT 与 DNAT 验证

Debian iptables 防火墙:默认拒绝、SNAT 与 DNAT 验证

1. 服务介绍

iptables 控制本机输入、输出及跨接口转发;SNAT 让内网访问外网,DNAT 将外网入口转发至内网服务。本文验证 DNS、邮件、Web 和 FTP 的转发规则。

2. 准备运行环境

• 操作系统:Debian 系 Linux 环境,按原实验版本执行。

• 操作账号:root 或具备 sudo 权限的管理员账号。

• 网络要求:主机 IP、DNS、网关和客户端连通性已按实验拓扑准备。

• 软件要求:可使用 apt 安装所需软件包。

• 操作建议:修改服务配置前先备份原配置文件。

3. 配置步骤

1. 准备运行环境

确认系统版本、管理员权限、网络连通性和软件源可用后,再开始安装和修改配置。

2. 相关知识与注意点

• 配置前先确认系统版本、权限、网络连通性和软件包来源。

• 修改服务配置前建议备份原文件,便于出现问题时回退。

• 服务类配置应同时检查配置语法、服务状态、监听端口和日志。

• 命令类文档应通过帮助信息、示例输出和实际执行结果验证。

3. 实验步骤

 添加必要的网络地址转换规则,使外部客户端能够访问到内部服务器上的dns、mail、web和ftp服务。

 INPUT、OUTPUT和FORWARD链默认拒绝(DROP)所有流量通行。

 配置源地址转换允许内部客户端能够访问互联网区域。

先备份 iptables-save,保留控制台;启用 net.ipv4.ip_forward。先放行管理来源,再设置 DROP。DNAT 后 FORWARD 匹配内网地址;OUTPUT DROP 还需要按业务放行 DNS/NTP。FTP 被动端口应与服务端保持一致。203.0.113.10 为文档地址,替换后仅在隔离实验执行。

1. 默认规则修改为 DROP

bash 复制代码
iptables -P INPUT DROP
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 2021 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dports 67,123,1194 -j ACCEPT
iptables -P FORWARD DROP
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -d 192.168.100.100 -p tcp -m multiport --dports 53,80,443,465,993 -j ACCEPT
iptables -A FORWARD -d 192.168.100.100 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dports 20,21,4500:5000 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -s 172.16.0.0/24 -j ACCEPT
iptables -P OUTPUT DROP
iptables -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 3260 -j ACCEPT
iptables -A OUTPUT -p udp --dport 67 -j ACCEPT
iptables -nL | grep Chain

2. 源地址转换

bash 复制代码
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens192 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens192 -j MASQUERADE
iptables -t nat -nvL POSTROUTING

3. DNAT转换

bash 复制代码
iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp -m multiport --dports 53,80,443,465,993 -j DNAT --to 192.168.100.100
iptables -t nat -A PREROUTING -d 203.0.113.10 -p tcp -m multiport --dports 20,21,4500:5000 -j DNAT --to 192.168.100.200
iptables -t nat -A PREROUTING -d 203.0.113.10 -p udp -m multiport --dports 53 -j DNAT --to 192.168.100.100
iptables -t nat -nvL PREROUTING

4. 验证结果

按服务类型使用对应命令检查配置是否生效:

bash 复制代码
sysctl net.ipv4.ip_forward
iptables -nvL --line-numbers
iptables -t nat -nvL
ip route
tcpdump -ni any port 53

如果服务状态正常、端口监听正确,客户端访问或查询结果符合预期,说明配置生效。

验证客户端:curl -I http://203.0.113.10;dig @203.0.113.10 example.com。规则计数增长、内网收到请求且客户端收到回包,才说明转换成功。

相关推荐
拂拉氏6 小时前
【知识讲解】 Linux之动静态库的了解
linux·运维·服务器·动静态库
Fcy6487 小时前
Linux下 五种IO模型的认识与⾮阻塞IO的实现
linux·服务器·io
Mikko77 小时前
Linux 重启后日志没了?进程被 OOM 杀了去哪看?logrotate 之后日志还往旧文件写?三台真机实测日志与性能排查
linux·运维·centos
书生执笔画浮沉7 小时前
分享一个开源小工具CAdapt
linux·c·gnu·glibc·kernel·升级·灵感
Hum8le8 小时前
漏洞知识点《php伪协议》
开发语言·安全·web安全·php
mounter6258 小时前
Linux 内核热升级(Live Update)技术详解:PCI、VFIO 与 IOMMU 子系统的演进与实战解析引言
linux·linux kernel·kernel·iommu·vfio
砚凝霜8 小时前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
天国梦9 小时前
国密门禁品牌怎么选?2026年最新3个避坑要点
运维·服务器·数据库·python
creator_Li9 小时前
Linux 的 Page Cache
linux·page cache
夜之眷属10 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法