You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Iptables无法阻止特定IP入站连接的问题求助

Iptables无法阻止特定IP入站连接的问题求助

大家好,我有一台用作网关的线上服务器,最近碰到个棘手的问题——明明配置了iptables规则来阻止特定IP访问80/443端口,但目标IP还是能正常连接到后端的Apache服务,实在摸不着头绪,想请各位帮忙排查下问题!

先给大家看下我当前的iptables规则:

# INPUT链规则
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j BLOCK_CHAIN
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j BLOCK_CHAIN

# FORWARD链规则
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i eth0 -o tun+ -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -i eth0 -o tun+ -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m conntrack --ctstate NEW -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

# BLOCK_CHAIN自定义链规则
-A BLOCK_CHAIN -s 173.230.154.149/32 -j REJECT --reject-with icmp-host-prohibited
-A BLOCK_CHAIN -m state --state NEW -j ACCEPT

# PREROUTING链DNAT规则
-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.100
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.100

我的网络拓扑是这样的:

  • 服务器公网IP:XX.XX.X.XX
  • VPN网段:10.0.0.0/24(通过OpenVPN连接到内部的一台主服务器)

所有外网的Web请求都会通过DNAT转发到VPN里的10.0.0.100服务器上,其他功能都正常运行,唯独没法拦截173.230.154.149这个IP——它明显在攻击服务器,但按照上面的规则,它应该被BLOCK_CHAIN拒绝才对,可实际它还是能正常访问80和443端口的服务。

我本来的思路是:通过INPUT链把eth0上的80/443请求导向BLOCK_CHAIN,再在BLOCK_CHAIN里匹配173.230.154.149并拒绝,可这条规则完全没生效,有没有大佬能帮我看看哪里错了?

备注:内容来源于stack exchange,提问作者denn0n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:33:07