首页主机资讯Ubuntu防火墙NAT如何配置

Ubuntu防火墙NAT如何配置

时间2025-12-05 17:30:04发布访客分类主机资讯浏览419
导读:Ubuntu 防火墙 NAT 配置指南 一、准备与网络规划 准备一台至少双网卡的 Ubuntu 主机:外网接口(如 eth0/WAN)连接公网或上级路由,内网接口(如 eth1/LAN)连接交换机/终端,内网网段示例 192.168.1....

Ubuntu 防火墙 NAT 配置指南

一、准备与网络规划

  • 准备一台至少双网卡的 Ubuntu 主机:外网接口(如 eth0/WAN)连接公网或上级路由,内网接口(如 eth1/LAN)连接交换机/终端,内网网段示例 192.168.1.0/24。使用 ip a 确认接口名称。
  • 安装工具(便于规则持久化):sudo apt update & & sudo apt install -y iptables iptables-persistent netfilter-persistent
  • 规划示例:外网口 eth0,内网口 eth1,内网 192.168.1.0/24,网关 192.168.1.1

二、方案一 使用 iptables 直接配置 NAT(通用、直观)

  • 启用内核转发
    • 编辑:sudo nano /etc/sysctl.conf,设置:net.ipv4.ip_forward=1;生效:sudo sysctl -p;验证:cat /proc/sys/net/ipv4/ip_forward(应返回 1)。
  • 配置 NAT 与转发规则(按需替换接口名与网段)
    • 允许已建立连接回包:sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 出口伪装(MASQUERADE):sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    • 允许内网访问外网:sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
    • 允许外网回包:sudo iptables -A FORWARD -i eth0 -o eth1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  • 端口转发示例(外网 8080 → 内网 192.168.1.100:80)
    • DNAT:sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
    • 放行转发:sudo iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -d 192.168.1.100 -j ACCEPT
  • 规则持久化
    • 保存:sudo netfilter-persistent save;启用开机恢复:sudo systemctl enable netfilter-persistent

三、方案二 使用 UFW 管理 NAT(适合已使用 UFW 的场景)

  • 启用转发策略与内核转发
    • 编辑:sudo nano /etc/default/ufw,设置:DEFAULT_FORWARD_POLICY=“ACCEPT
    • 编辑:sudo nano /etc/ufw/sysctl.conf,设置:net/ipv4/ip_forward=1
  • 添加 NAT 规则到 UFW 前置规则
    • 编辑:sudo nano /etc/ufw/before.rules,在文件靠前位置(在 *filter 段之前)加入:
      *nat
      :PREROUTING ACCEPT [0:0]
      :POSTROUTING ACCEPT [0:0]
      -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
      COMMIT
      
  • 端口转发示例(外网 8080 → 内网 192.168.1.100:80)
    • 在 *nat 段追加:
      -A PREROUTING -p tcp -i eth0 --dport 8080 -j DNAT --to-destination 192.168.1.100:80
      
    • 放行转发与入站访问:
      • UFW 路由放行:sudo ufw route allow in on eth0 to 192.168.1.100 port 80 proto tcp
      • 如访问本机端口:sudo ufw allow 8080/tcp
  • 使配置生效
    • 重载:sudo ufw reload(远程操作前务必先放行 SSH,避免断连)。
  • 查看与清理 NAT
    • 查看:sudo iptables -t nat -L -v -n
    • 清理 NAT 表:sudo iptables -t nat -F

四、验证与故障排查

  • 转发与连通性
    • 检查转发:cat /proc/sys/net/ipv4/ip_forward(应为 1
    • 内网测试:ping 8.8.8.8(从内网主机),nslookup example.com(测试 DNS)
    • 端口转发:curl http://网关公网IP:端口
  • 规则与日志
    • 查看 NAT:sudo iptables -t nat -L -v -n
    • 查看转发:sudo iptables -L FORWARD -n -v
    • 丢包定位:sudo iptables -A FORWARD -j LOG --log-prefix "FORWARD_DROP: ";tail -f /var/log/syslog | grep “FORWARD_DROP”
  • 常见问题
    • 接口名写错、未启用 ip_forward、FORWARD 规则顺序不当、云环境未放通对应安全组/端口。

五、安全与优化建议

  • 防火墙基线(示例,按需收紧)
    • 默认拒绝:sudo iptables -P INPUT DROP;sudo iptables -P FORWARD DROP
    • 放行回环与已建立:sudo iptables -A INPUT -i lo -j ACCEPT;sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 按需开放管理端口(如 22/TCP),并启用 fail2ban
  • 连接跟踪与性能
    • 增大跟踪表:在 /etc/sysctl.conf 增加 net.netfilter.nf_conntrack_max=65536;net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1800;执行 sysctl -p。

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


若转载请注明出处: Ubuntu防火墙NAT如何配置
本文地址: https://pptw.com/jishu/764911.html
Ubuntu下cxImage使用教程 Debian Exploit攻击有哪些案例

游客 回复需填写必要信息