如何设置 iptables 规则以允许 Skype

如何设置 iptables 规则以允许 Skype

以下是我的 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

相关内容