在限制性iptables配置中允许TeamViewer存在一些问题。我在查费多拉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访问其他机器,但不能让其他人访问我的机器。此外,当默认(引导)iptable就位时,我可以接收和启动TeamViewer连接。
我遗漏了什么?
我刚刚运行了一个数据包跟踪,我可以看到大量的流量正在进行端口5938,但PC连接只是说连接.并且没有提示输入密码。
我启用了工作的默认规则集并运行了另一个数据包跟踪,现在我看到在连接和端口5938上发生了一些通信后,我看到一个TeamViewer连接(端口80)正在建立到一个TeamViewer服务器,在此之前,我看到了几个TeamViewer主机名的DNS (端口53)请求。所有这些端口在我的限制性设置中都是打开的,但是我没有看到DNS请求和HTTP连接.-/与其他主机和站点的连接工作正常。实际上,我是使用限制性规则集发布这个编辑的。
编辑3,只是为了安心,我删除了最后三个下降规则,就像这样,它起作用。
发布于 2016-02-25 10:20:23
我列出了使用工作TeamViewer的iptable的配置:
#!/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 ACCEPThttps://unix.stackexchange.com/questions/153219
复制相似问题