我正在尝试在 Ubuntu 上配置 iptables。我使用 Squid 将服务器设置为透明代理,运行良好。目前,只有端口 80 通过 nat iptables 重定向到 SQUID。我基本上想允许 80、443、VOIP(SIP)和电子邮件协议并阻止其他所有内容。目前我有以下内容。
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport https
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport pop3
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport imaps
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport imap2
sudo iptables -A FORWARD -j ACCEPT -p tcp --dport smtp
sudo iptables -A FORWARD -j ACCEPT -p udp --dport sip
sudo iptables -A FORWARD -j ACCEPT -p udp --dport 10000:20000
sudo iptables -FORWARD -j REJECT -p tcp
sudo iptables -FORWARD -j REJECT -p udp
此配置存在一些问题:
- 由于某些奇怪的原因,Gmail 无法通过 https 工作。它是否在后台使用其他端口,还是我忽略了什么?
- 我似乎找不到我们正在使用的 VOIP 系统的端口范围。系统来自 Tachyon,基于 SIP。使用当前配置,电话会响铃,但接听后没有任何声音,这让我相信我输入的端口范围不正确。udp 10000:20000 是 RTP 协议,但不是此场景中使用的协议。通常与 SIP 相关的其他协议是什么,或者每个实现是否不同。
谢谢!
答案1
如果你的默认策略是 FORWARD 链上的 DROP,那么你应该把它放在 REJECT 规则之前
sudo iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT