首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Fedora15打开/转发端口

无法使用Fedora15打开/转发端口
EN

Server Fault用户
提问于 2012-04-20 15:30:00
回答 2查看 454关注 0票数 0

我有一个运行Fedora 15的服务器,我的最终目标是能够在任意端口号(通过iptables规则指定)上转发任何协议。比方说,目前,我想将端口12345转发到网络中的一个Let服务器。我们会说这个We服务器是192.168.0.10:80。

将规则添加到iptable以打开端口后,如下所示:

-A输入-m状态-状态新-m tcp -p tcp -dport 12345 -j接受

我重新启动iptables,并运行:

nmap -p 12000-13000本地主机

nmap没有显示端口是开放的/关闭的。然后用语义定义端口,如下所示:

语义端口-a -t http_port_t -p tcp 12345

nmap仍然看不到端口。

如果我然后完全禁用selinux,nmap将端口显示为"closed“。

我似乎找不到打开港口的办法。我已经在网上浏览了好几天了,我一直没能解决这个问题。我可以提供您想要的任何其他配置数据。有什么建议吗?

编辑:添加了iptables -L -n -v的输出:

代码语言:javascript
复制
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  641 3038K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
   12   720 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
    5   261 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:80 
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:12345 
    1    52 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 663 packets, 3044K bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:12345
EN

回答 2

Server Fault用户

发布于 2012-04-23 10:21:22

如果要转发通信量,则使用FORWARD链,而不是INPUT链。

INPUT链只适用于实际发送到防火墙的数据包(例如,具有防火墙地址之一的目的地地址)。

其次,请记住,FORWARDing流量意味着不会对数据包本身执行任何操作。因此,目标服务器必须打开端口12345。

(如果要操作源/目标地址和/或端口,请使用SNAT/DNAT)

票数 1
EN

Server Fault用户

发布于 2012-04-20 15:43:42

我不确定这一点,但我怀疑问题是,你的-A INPUT ...是在一些全面的预先存在的DROP规则后添加你的许可证。我们需要在添加规则之后看到iptables -L -n -v的输出,以确定;如果您想将它粘贴到上面的问题中,这将是有帮助的。

iptables规则处理是先-分解-匹配获胜;也就是说,它按照顺序通过规则,而第一个匹配您的包并处理它的规则,将对该数据包具有最终的发言权。

因此,在简洁的元代码中,有这样的规则集是没有任何意义的

代码语言:javascript
复制
permit any any port 80
deny any any
permit any any port 12345

第2行将匹配一个用于端口12345的数据包--就像它匹配任何不打算用于端口80的数据包一样--并拒绝它。这个可怜的包裹永远不会到达第3行S允许的地方。

如果你已经知道了这一切,我很抱歉,这不是问题所在。如果能看到iptables的输出,并进行进一步的探索,仍然是有帮助的。

编辑:好的,看起来规则排序不是问题。你凭什么认为它不管用?当您执行telnet localhost 12345时,服务器上会发生什么?

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/381582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档