iptables 允许 teamviewer

iptables 允许 teamviewer

我在允许 TeamViewer 使用限制性 iptables 配置时遇到一些麻烦。我正在运行 Fedora 20。

经过一番研究,我发现 TeamViewer 使用端口 80、443,我创建了此脚本来设置规则以允许打开这些端口,但它仍然不起作用:

#!/bin/bash
#clear iptables
iptables -F
iptables -X

#accept everything no matter port on localhost
iptables -A INPUT -i lo -j ACCEPT

#allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#allow traffic going to specific outbound ports
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 5938 -j ACCEPT
iptables -A INPUT -p tcp --sport 5938 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p tcp --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

#drop anything that doesn't match the rules above
iptables -A INPUT -j DROP
iptables -A OUTPUT -j DROP
iptables -A FORWARD -j DROP

通过这些规则,我可以使用 TeamViewer 访问其他计算机,但不能让其他人访问我的计算机。此外,当默认(启动)iptables 就位时,我可以接收并启动 TeamViewer 连接。

我缺少什么?

编辑1

我刚刚运行了数据包跟踪,可以看到端口 5938 上正在进行的流量负载,但连接的 PC 仅显示“正在连接...”,并且没有提示输入密码。

编辑2

我启用了有效的默认规则集并运行了另一个数据包跟踪,现在我看到在端口 5938 上进行连接和一些流量之后,我看到正在与 TeamViewer 服务器建立 HTTP 连接(端口 80),在此之前我查看 TeamViewer 主机名的几个 DNS(端口 53)请求。所有这些端口在我的限制性设置中都是开放的,但我看不到 DNS 请求和 HTTP 连接...:-/ 与其他主机和站点的连接工作正常。实际上,我是使用一组限制性规则来发布此编辑的。

编辑3 只是为了安心,我删除了最后三个 DROP 规则,就像这样它可以工作。

答案1

我向您列出了我使用 TeamViewer 进行的 iptables 配置:

    #!/bin/bash

#--------------------------------------
#Clear iptables
iptables -F -t nat
iptables -X -t nat
iptables -F -t filter
iptables -X -t filter

#allow forward
echo '1' > /proc/sys/net/ipv4/ip_forward

#default policy
iptables -P INPUT DROP
iptables -P FORWARD DROP 
iptables -P OUTPUT DROP


#accept related and established connection
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# DNS
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

# interfejs LO
iptables -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -o lo -d 127.0.0.1 -j ACCEPT

#WWW
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

#TEAMVIEWER
iptables -A OUTPUT -o eth0 -p tcp --dport 5938 -m state --state NEW -j ACCEPT

相关内容