具有TCP代理的Firewall-cmd直接规则不起作用

问题描述

所以我正在Redhat Linux发行版上使用tcp代理,它将拦截用户应用程序到远程ldap服务器本身的ldap数据包。 因此ldap流量是从localhost:转到ldapserver:389。

我的tcp代理的客户端端口为localhost:4700,上游端口为ldapserver:389。如果我使用socat将tcp发送到localhost:4700,我会看到流量通过代理并在ldapserver:389上收到,因此我知道代理正在工作。

因此,我希望从本地主机到ldapserver:389的所有数据包都重定向到本地主机:4700。我有以下规则,作为我的ldap服务器的女巫10.20.30.40

firewall-cmd --direct --ad-rule ipv4 nat POSTROUTING 0 -p tcp --destination-port 389 --destination 10.20.30.40 -j SNAT --to-source 127.0.0.1:4700+

firewall-cmd --direct --add-rule ipv4 raw OUTPUT 0 -p tcp -m tcp --dport 4700 --destination 127.0.0.1 -j CT --notrack

然后我使用socat将数据发送到10.20.30.40:389。我在ldap服务器上看到了收到的数据,但是它没有像以前一样通过代理传递(没有跟踪日志记录)。而且它只能运行一次:要使其再次运行,我必须重置firewalld并再次设置规则。

所以我不确定发生了什么,而且我对防火墙cmd规则也不是很满意。有人有什么想法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...