Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – DNAT到127.0.0.1,带有用于透明SOCKS代理的iptables /目标访问控制大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有一台在我的本地网络上运行的服务器,它充当我网络中计算机的路由器.我现在想要实现对某些IP地址的传出TCP请求通过SSH连接进行隧道传输,而不会让我的网络中的人员使用该SSH隧道连接到任意主机. 到目前为止我想到的方法是让一个实例redsocks监听localhost并将所有传出请求重定向到我想转移到该redsocks实例的IP地址.我添加了以下iptables规则: iptables -t n
我有一台在我的本地网络上运行的服务器,它充当我网络中计算机的路由器.我现在想要实现对某些IP地址的传出TCP请求通过SSH连接进行隧道传输,而不会让我的网络中的人员使用该SSH隧道连接到任意主机.

到目前为止我想到的方法是让一个实例redsocks监听localhost并将所有传出请求重定向到我想转移到该redsocks实例的IP地址.我添加了以下iptables规则:

iptables -t nat -A PRERoutING -p tcp -d 1.2.3.4 -j DNAT --to-desTination 127.0.0.1:12345

显然,Linux内核将来自非127.0.0.0 / 8地址的数据包视为“Martian数据包”并将其丢弃为127.0.0.0/8地址.然而,有效的方法是让redsocks监听eth0而不是lo,然后让iptables将数据包转换为eth0地址(或使用REDIRECT规则).这个问题是我的网络上的每台计算机都可以使用redsocks实例连接到互联网上的每个主机,但我想将其使用限制在一组特定的IP地址.

有没有办法让iptables DNAT包到127.0.0.1?否则,有没有人知道如何在不向所有人开放隧道的情况下实现我的目标?

更新:我还尝试更改数据包的来源,但没有成功:

iptables -t nat -A POSTRoutING -p tcp -s 192.168.1.0/24 -d 1.2.3.4 -j SNAT --to-source 127.0.0.1
iptables -t nat -A POSTRoutING -p tcp -s 192.168.1.0/24 -d 127.0.0.1 -j SNAT --to-source 127.0.0.1

解决方法

无法使用127/8网络执行此操作,因为它在Linux内核中特别处理.但您可以创建虚拟网络接口,为其分配IP地址,将您的服务绑定到此地址并执行NAT.
root@vm8583:~# ip link add bogus type dummy
root@vm8583:~# sysctl net.ipv4.conf.eth0.arp_ignore=3
root@vm8583:~# ip addr add 10.0.0.1/32 bogus scope host
root@vm8583:~# ip link set bogus up
root@vm8583:~# ip link show bogus
4: bogus: <BroaDCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNowN mode DEFAULT 
    link/ether 5e:8b:38:f3:46:ce brd ff:ff:ff:ff:ff:ff

注意,您可能需要设置net.ipv4.conf.eth0.arp_ignore = 3以便您的server won’t answer to ARP requests for 10.0.0.1 incoming via eth0

arp_ignore - IntegeR
    Define different modes for sending replies in response to
    received ARP requests that resolve local target IP addresses:
. . .
    3 - do not reply for local addresses configured with scope host,only resolutions for global and link addresses are replied
    4-7 - reserved

大佬总结

以上是大佬教程为你收集整理的linux – DNAT到127.0.0.1,带有用于透明SOCKS代理的iptables /目标访问控制全部内容,希望文章能够帮你解决linux – DNAT到127.0.0.1,带有用于透明SOCKS代理的iptables /目标访问控制所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。