squid、ufw 和 iptables

squid、ufw 和 iptables

我有一台安装了 Squid 的 Ubuntu 机器,用作透明代理服务器。实现这一神奇功能的配置如下。(eth0 是外部接口,eth1 是内部接口。)

sudo sh -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
sudo iptables -t nat -A POSTROUTING --jump MASQUERADE --source 192.168.0.0/24
sudo iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

此时代理工作正常。

然后我需要过滤掉一些数据包,所以我使用 ufw。即

sudo ufw allow http
sudo ufw allow https
sudo ufw allow ssh
sudo deny 5223/tcp
sudo ufw enable

此时一切都不再起作用。不确定我错过了什么。我应该对端口 3128 做些什么吗?我遇到问题是因为有两个接口吗?我尽了最大的努力去解决这个问题,但没有成功。

答案1

我最终直接使用了 iptables,而不是使用 ufw。似乎 ufw 默认创建了一个 catch-all,而我并不需要它。

sudo iptables -A INPUT -j DROP -p tcp --destination-port 5223 -i eth1

相关内容