以下是我的 iptables 规则,允许 Squid 连接到 Web 服务器:
# Accept internally-requested input
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#http,https traffic only through Squid - nobody user
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 \
-m state -m owner --uid-owner nobody --state NEW,ESTABLISHED -j ACCEPT
Squid 本身正在监听本地主机上的 3128 端口。在 Skype 选项中,我告诉它使用鱿鱼代理并使用端口 58215 进行传入连接。我为 Skype 添加了这些行:
#skype incoming connections
iptables -A INPUT -p udp --dport 58215 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 58215 -m state --state NEW,ESTABLISHED -j ACCEPT
但这没有用。
然后我关闭了防火墙:
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
Skype 开始工作。所以,我查看了它使用哪些端口:
# netstat -a -ptcp | grep skype
tcp 0 0 *:58215 *:* LISTEN 2944/skype
tcp 0 0 pc.home.org:56369 157.55.130.140:40031 ESTABLISHED 2944/skype
tcp 0 0 pc.home.org:54316 db3msgr5011307.ga:https ESTABLISHED 2944/skype
tcp 0 0 pc.home.org:34778 193.120.199.14:12350 ESTABLISHED 2944/skype
# netstat -a -pudp | grep skype
udp 0 0 *:58215 *:* 2944/skype
udp 0 0 localhost:42865 *:* 2944/skype
但是当我设置限制性政策时:
iptables -P OUTPUT DROP
iptables -P INPUT DROP
Skype 停止工作。我应该做什么才能让它发挥作用?
答案1
Skype 似乎使用 SOCKS 或 HTTPS 代理。鱿鱼两者都不是。对于传入连接,您需要使用 Skype 设置中指定的端口对 PC 的传入连接进行 NAT。对于传出连接,您需要打开 PC 使用的临时端口。
Skype 不是受保护环境中的好公民。如果您的防火墙支持upnp
,则 Skype 可以使用它来将损害降至最低。
我已经记录了我的发现防火墙 Google Chat 和 Skype。