目前我有一个在 8080 上运行的应用程序,由 mod_proxy 前端运行。
<Location /hudson>
Order allow,deny
Allow from all
ProxyPass http://localhost:8080/hudson
ProxyPassReverse http://localhost:8080/hudson
</Location>
我需要阻止 TCP 8080,但不需要阻止本地主机,如何使用 IPtables 来完成此操作?
答案1
您可以尝试以下操作:
// accept all tcp on port 8080 from localhost
iptables -I INPUT 1 -i lo -p tcp --dport 8080 -j ACCEPT
[...] all your other rules
// drop all other packets
iptables -A INPUT -j DROP
如果您还想允许 1 个(或更多)外部/其他 IP,您可以使用以下命令:
// accept tcp on port 8080 from allowed_ip
iptables -I INPUT 3 -i eth0 -p tcp --dport 8080 -s allowed_ip -j ACCEPT
让我知道事情的后续 :)
答案2
这会起作用:
iptables -A INPUT ! -s 127.0.0.1 -p tcp -m tcp --dport 8080 -j DROP
答案3
另一种方法:在服务器监听 8080 时,仅绑定到本地主机:对于 apache,它如下所示:
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
...
</VirtualHost>