问题:
在这种情况下,IPSEC服务器和目标服务器(例如http服务器)恰好是同一台机器,我只需要允许通过IPSEC服务器的流量访问我的应用程序正在运行的端口,并阻止该端口上的其他所有人。
更多详情:
现在,我在iptables中添加了接受XXXX端口上所有通信量的规则:
-A输入-p tcp --dport XXXX -s 0.0.0.0/0 -j ACCEPT
虽然这会让事情发生变化,但XXXX港口对世界开放,这是危险的。
是否知道如何通过ipsec配置或iptables规则来实现只有来自ipsec端点的流量才能访问XXXX的目标?
我脑子里没有几个想法:
我尝试过@使用iptables,匹配通过IPSEC隧道到达的数据包.的解决方案,但它没有起作用,因为我想上述策略适用于到达IPSEC的数据包,而不是适用于离开IPSEC的数据包?
如果遗漏了您需要的任何细节或其他信息,请告诉我,任何帮助/建议都将不胜感激。
发布于 2014-09-30 11:44:59
谢谢你的建议。事实证明,这与IPSEC如何在苹果( iOS )设备上工作有关。
在iOS设备上,在打开ipsec VPN时,在路由表中自动添加规则,将IPSEC服务器/对等通信直接发送到网关以避免循环(数据包再次加密),其余的流量首先发送到ipsec隧道进行加密,然后再发送到ipsec服务器。
在我的例子中,IPSEC服务器和目标服务器(其中的流量是目标服务器)碰巧是同一台机器(解析为同一个IP地址),所以当流量被发送到目标服务器(端口XXXX)时,它不是在IPSEC隧道中被加密,而是由于特殊规则而直接发送到服务器,而不是封装在ipsec数据包中。因此,当这些数据包到达服务器时,它没有被识别为ipsec数据包,这就是问题所在。
由于我无法避免iOS客户端将流量发送到端口XXXX (尽管没有ipsec封装),所以我不得不找到一种方法,只让该设备访问端口XXXX,而不是访问整个世界。因此,我最后所做的是在ipsec服务器上拥有自己的ipsec updown脚本,该脚本动态地添加一个输入链规则,以允许从已建立的客户端IP地址到vpn连接上的端口XXXX的通信量,并删除vpn断开的规则。这样,只有VPN连接的客户端才能访问端口XXXX。
发布于 2014-09-18 09:39:55
IPSec强制保护来自另一端子网的任何通信量。例如,如果您使用openswan,则右子网(有时是左子网)将指示来自另一端的任何通信,因此只能允许来自这些子网的通信。
如果您有从各种ip连接的RW客户端,则有ppp插件,例如IPs和IPs脚本,您可以使用这些插件来允许或不允许某些ip的某些端口。
发布于 2019-10-29 17:17:22
您需要将IPsec策略附加到套接字(困难)或全局。
IPsec在这里重复了防火墙逻辑的一部分,因为它允许您根据IP地址和端口匹配数据包,并查找所需的IPsec策略。
对于正常的VPN设置,策略通常适用于“从该子网到该子网的所有通信量”,但它们可以更细粒度。
require all traffic to my IP address port 80 from that other IP address to be encrypted
deny all other traffic to my IP address port 80
没有安全关联的策略是可能的,在这种情况下,内核将咨询IKE守护进程来获得它。
如果客户端更改IP地址,则可以从IKE守护进程生成"require“策略,并且只能静态地配置”拒绝“策略,优先级低于生成的规则。
https://serverfault.com/questions/629392
复制相似问题