这里有没有人使用iptables
with skype
?到目前为止,我能够让它工作的唯一方法是允许所有高端口 - 类似于
iptables -A OUTPUT -p UDP --dport 1024:65535 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 1024:65535 -j ACCEPT
iptables -A INPUT -p UDP --dport 1024:65535 -j ACCEPT
iptables -A INPUT -p tcp --dport 1024:65535 -j ACCEPT
这显然不太理想。据我所知,问题是端口的skype
使用有些随机。我希望可以通过使用setuid
或来允许应用程序级防火墙setguid
,例如
sudo addgroup skypeGrp
sudo usermod theUser -G skypeGrp
sudo chgrp skypeGrp /usr/bin/skype
chmod g+s /usr/bin/skype
iptables -A OUTPUT -m owner --gid-owner skypeGrp -j ACCEPT
但这似乎不起作用。
也许其他人有更好的解决方案?
答案1
将其设置为允许所有出站。然后允许相关/已建立作为第一条规则之一。
就像是:
# Accept loopback & established/related connections
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Drop invalid on tcp
iptables -A INPUT -p tcp -m conntrack --ctstate INVALID -j DROP
# Set default DROP policy
iptables -P INPUT DROP
iptables -P FORWARD DROP
# But allow everything out
iptables -P OUTPUT ACCEPT
# Now set what you want to allow in.
# e.g. SSH in
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
答案2
根据我的经验,如果您允许所有传出流量,您可以拨打电话,但您不能接听其他人的电话,除非您打开用于传入连接的端口。
在 Skype 4.2.0.11 中转到
Skype > 选项 > 高级 > 连接
您可以决定 skype 使用哪个端口。默认情况下为 7004。
我认为您需要同时允许 tcp 和 udp。
iptables -A INPUT -p tcp --dport 7004 -j ACCEPT
iptables -A INPUT -p udp --dport 7004 -j ACCEPT