首页主机资讯Debian防火墙NAT配置方法

Debian防火墙NAT配置方法

时间2025-11-21 22:44:03发布访客分类主机资讯浏览842
导读:Debian 防火墙 NAT 配置方法 一、准备与网络拓扑 确认接口名称:外网口如 eth0,内网口如 eth1;内网网段示例 192.168.1.0/24,外网地址示例 203.0.113.5。 安装基础工具: sudo apt upd...

Debian 防火墙 NAT 配置方法

一、准备与网络拓扑

  • 确认接口名称:外网口如 eth0,内网口如 eth1;内网网段示例 192.168.1.0/24,外网地址示例 203.0.113.5
  • 安装基础工具:
    sudo apt update & & sudo apt install -y iptables iproute2
  • 启用内核 IP 转发(临时与永久):
    sudo sysctl -w net.ipv4.ip_forward=1
    echo “net.ipv4.ip_forward=1” | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
  • 说明:本文以 iptables/nftables 为核心;如使用 firewalld/ufw,见文末补充。

二、使用 iptables 配置 NAT

  • 场景A 出口 NAT(Masquerade,动态公网IP常用)
    1. 允许转发:
      sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
      sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
    2. 出口伪装:
      sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  • 场景B 端口映射(DNAT,将公网 80/TCP 转到内网 192.168.1.100:80
    1. 目标转发:
      sudo iptables -t nat -A PREROUTING -d 203.0.113.5 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
    2. 放行转发与回程:
      sudo iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT
      sudo iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  • 场景C 固定源地址转换(SNAT,静态公网IP)
    sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 203.0.113.5
  • 说明:DNAT 通常还需在外部网关/云安全组放行对应端口;SNAT 与 MASQUERADE 二选一(固定公网IP优先 SNAT)。

三、规则持久化与验证

  • 持久化保存(两种常用方式,二选一)
    1. 使用 iptables-persistent:
      sudo apt install -y iptables-persistent
      sudo netfilter-persistent save
      sudo netfilter-persistent reload
    2. 使用 iptables-save/restore:
      sudo iptables-save > /etc/iptables/rules.v4
      在需要时:sudo iptables-restore < /etc/iptables/rules.v4
  • 验证与排错
    • 查看 NAT 规则:sudo iptables -t nat -L -v -n
    • 查看转发规则:sudo iptables -L -v -n
    • 抓包定位:在外网口抓 SYN 包(如 sudo tcpdump -i eth0 -nn ‘tcp port 80’),确认是否命中 DNAT。

四、使用 firewalld 或 ufw 时的补充

  • firewalld(区域与富规则管理,NAT 仍依赖内核 iptables/nftables)
    1. 启动服务:sudo systemctl start firewalld & & sudo systemctl enable firewalld
    2. 端口与富规则示例:
      sudo firewall-cmd --add-port=80/tcp --permanent
      sudo firewall-cmd --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100/32” service name=“ssh” accept’
      sudo firewall-cmd --runtime-to-permanent & & sudo firewall-cmd --reload
    3. 说明:NAT 规则需按上文 iptables 方式添加;firewalld 更适合做端口/区域/服务管理。
  • ufw(简化防火墙管理)
    1. 基本用法:sudo apt install -y ufw & & sudo ufw enable
      sudo ufw allow 22/tcp
      sudo ufw allow 80/tcp
    2. 说明:ufw 对复杂 NAT 场景支持有限,通常仍直接编写 iptables/nftables 规则实现 DNAT/SNAT。

五、常见问题与排查要点

  • 接口名与方向:确认 -i/-o 与外网口(如 eth0)、内网口(如 eth1)一致;DNAT 在 PREROUTING,SNAT/MASQUERADE 在 POSTROUTING
  • 转发策略:FORWARD 默认策略建议 DROP,仅放行已建立连接与所需业务端口。
  • 回程流量:务必放行 RELATED,ESTABLISHED,否则连接无法建立。
  • 云环境:除本机防火墙外,需在云厂商控制台/安全组放行对应 DNAT 端口。
  • IPv6:IPv6 使用 ip6tables 与相应内核参数(如 net.ipv6.conf.all.forwarding)。
  • 日志与观察:结合日志/抓包定位规则未命中的问题,逐步验证 PREROUTING/POSTROUTING 与 FORWARD 链。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian防火墙NAT配置方法
本文地址: https://pptw.com/jishu/753794.html
Debian防火墙自动化脚本编写 Ubuntu Notepad性能怎样

游客 回复需填写必要信息