AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 774886
Accepted
Kevin Buchs
Kevin Buchs
Asked: 2016-05-20 12:42:54 +0800 CST2016-05-20 12:42:54 +0800 CST 2016-05-20 12:42:54 +0800 CST

IP 表作为基本代理未按预期运行

  • 772

我正在尝试使用 iptables 在 Ubuntu 14.04 服务器(IP=192.168.36.217)上完成简单的数据包转发。我想在特定端口上接收发往服务器的传入数据包,并将它们重写到新的目标,指定端口(HTTPS)和源 IP 设置为此服务器,源端口设置为 NAT,因此可以反转在返回数据包上。

表 mangle、raw 和 security 是空的。所有表的所有规则都有一个默认值 ACCEPT。我在 PREROUTING 中有 1 个 DNAT 规则,在 POSTROUTING 中有 1 个 SNAT 规则。然后我添加了一些 LOG 规则来检查发生了什么。以下是 nat 和 filter 表的样子:

过滤表

Chain INPUT (policy ACCEPT 249 packets, 15888 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      143  8348 LOG        tcp  --  *      *       10.15.4.115          0.0.0.0/0            LOG flags 0 level 4 prefix "l++: INP of interest: "

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 169 packets, 12148 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 LOG        tcp  --  *      *       0.0.0.0/0            45.45.45.45          LOG flags 0 level 4 prefix "l++: filter\OUTPUT : "

nat 表

Chain PREROUTING (policy ACCEPT 2762 packets, 279K bytes)
num   pkts bytes target     prot opt in     out     source               destination
1       33  1672 LOG        tcp  --  *      *       10.15.4.115          0.0.0.0/0            tcp dpt:65001 LOG flags 0 level 4 prefix "l++: nat PRE "
2       15   760 DNAT       tcp  --  *      *       10.15.4.115          0.0.0.0/0            tcp dpt:65001 to:45.45.45.45:45001
3        0     0 LOG        tcp  --  *      *       10.15.4.115          0.0.0.0/0            LOG flags 0 level 4 prefix "l++: nat PRE BOT"

Chain INPUT (policy ACCEPT 263 packets, 46239 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 LOG        all  --  *      *       10.15.4.115          0.0.0.0/0            LOG flags 0 level 4 prefix "l++: nat INP: "

Chain OUTPUT (policy ACCEPT 60 packets, 4285 bytes)
num   pkts bytes target     prot opt in     out     source               destination

Chain POSTROUTING (policy ACCEPT 60 packets, 4285 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 LOG        tcp  --  *      *       10.15.4.115          0.0.0.0/0            LOG flags 0 level 4 prefix "l++: nat POST end: "
2        0     0 SNAT       tcp  --  *      em1     10.15.4.115          0.0.0.0/0            to:192.168.36.217
3        0     0 LOG        tcp  --  *      em1     192.168.36.217       0.0.0.0/0            LOG flags 0 level 4 prefix "l++: nat POST after SNAT: "
4        0     0 LOG        tcp  --  *      em1     10.15.4.115          0.0.0.0/0            LOG flags 0 level 4 prefix "l++: nat POST after SNAT what"

当我测试时(从 10.15.4.115:telnet 192.168.36.217 65001),这就是我在系统消息日志中看到的全部内容:

May 19 15:20:40 LDAP-Proxy kernel: [1891508.926283] l++: nat PRE IN=em1 OUT=  
MAC=<omitted> SRC=10.15.4.115 DST=192.168.36.217 LEN=52 TOS=0x00 PREC=0x00 
TTL=127 ID=21164 DF PROTO=TCP SPT=59394 DPT=65001 WINDOW=64512 RES=0x00 SYN 
URGP=0

我相信我已经将 PREROUTING 规则与 LOG 规则绑定在一起。数据包进入,进入 DNAT 规则并立即消失。

我很乐意收到任何关于这种不当行为的建议、想法和猜测。谢谢!

iptables
  • 1 1 个回答
  • 818 Views

1 个回答

  • Voted
  1. Best Answer
    Doug Smythies
    2016-05-21T11:06:43+08:002016-05-21T11:06:43+08:00

    除了正确的 iptables 规则集外,还需要在内核中启用转发。检查当前设置(默认为禁用):

    cat /proc/sys/net/ipv4/ip_forward
    

    如果它被禁用(0),那么它可以通过以下方式启用(非持久性):

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    

    或(仍然非持久性)通过:

    sudo sysctl -w net.ipv4.ip_forward=1
    

    对于持久设置(在下次重新启动后),以 sudo 方式编辑文件/etc/sysctl.conf并更改此行:

    # Uncomment the next line to enable packet forwarding for IPv4
    #net.ipv4.ip_forward=1
    

    对此:

    # Uncomment the next line to enable packet forwarding for IPv4
    net.ipv4.ip_forward=1
    
    • 1

相关问题

  • iptables 规则强制所有浏览器使用代理

  • iptables 重定向的奇怪问题

  • iptables 允许动态域名和自动更新规则

  • ubuntu 上的 iptables 和 nmap

  • iptables 的图形用户界面?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve