我们是否可以封锁任何端口,比如 8080,以便阻止外部世界访问我们特定的 IP 地址?我知道如何使用
listen ...
...
acl bad_ip src XXX.XXX.XXX.XXX #Any Bad IP
use_backend block_ip if bad_ip
...
backend block_ip
mode http
errorfile 403 /etc/haproxy/errors/403.http
但我被困在阻塞端口的问题。
答案1
您是否需要专门提供 http 403?一个简单的 iptables 规则就可以真正阻止不需要的流量。
例如:
iptables -p tcp -m tcp --dport 8080 -s ! $TRUSTED_IP_ADDRESS -j DROP
至于 haproxy acl,您需要dst_port
与客户端连接到的本地端口匹配的选项。
acl secure_port dst_port 8080
acl trusted_ip src 10.0.0.1
use_backend block_ip if secure_port !trusted_ip
尽管 haproxy 可以达到这个效果,但 IP 表仍被认为是‘正确’的工具。