我有这里所述的相同的问题,但给定的解决scheme不适合我:
ufw阻止apt和dns
当我添加规则ufw deny out to any ,并添加端口80, 443/tcp, ssh-port作为例外,然后添加iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT我仍然不是能够使用apt-get update或类似的东西。
root @ iof304:〜#ufw状态:激活
To Action From -- ------ ---- 22 DENY Anywhere 80 ALLOW Anywhere (ssh) LIMIT Anywhere 22 DENY Anywhere (v6) 80 ALLOW Anywhere (v6) (ssh) ALLOW Anywhere (v6) (ssh) ALLOW OUT Anywhere Anywhere DENY OUT Anywhere 80 ALLOW OUT Anywhere 443/tcp ALLOW OUT Anywhere (ssh) ALLOW OUT Anywhere (v6) Anywhere (v6) DENY OUT Anywhere (v6) 80 ALLOW OUT Anywhere (v6) 443/tcp ALLOW OUT Anywhere (v6)
现在,我将删除ufw deny out to any (这样,一切工作正常),但我想限制一切尽可能好,所以我可能需要知道的是用于apt-get的端口- 他们必须是OUT端口,因为只deny out to any阻止deny out to any东西,但apt-get似乎没有问题下载的东西禁用该规则(是否是一个标志,其他IN端口不被阻止?)
提前致谢
这些规则帮助我成功地获得了SSH的速率限制,允许input/输出http和https,启用git,并且apt和aptitude工作没问题:
ufw default deny incoming ufw default deny outgoing ufw limit ssh ufw allow svn ufw allow git ufw allow out http ufw allow in http ufw allow out https ufw allow in https ufw allow out 53 ufw logging on ufw enable
注意:为了重新开始,我确实重新启动了这些规则。
从ufw手册页
规则sorting很重要,第一场比赛胜出。 因此,添加规则时,先添加更具体的规则,稍后再添加更一般的规则。
从你发布的输出看起来像你拒绝所有被捕获之前,你是允许的规则
我find了答案:
需要为DNS打开端口53
Port 123似乎也是个好主意
端口参考: http : //en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
因此,为了防止他人帮我解决问题,我最终确定了一个服务器的ufw命令列表,这个服务器是一个连接到安装有熔断器的后端存储解决scheme的web服务器(熔丝实现与存储服务通信HTTP)。
方法
我相当详尽地通过了标准端口列表(不完全详尽地公平地…所以我可能增加比所需要的更多,可能错过了一些)。
我利用/ etc / server以及维基百科列表的端口和各种其他文章带领我那里…
名单
无论如何,这里是命令的顺序:
ufw default deny incoming ufw default deny outgoing ufw limit 22/tcp ufw allow 9418/tcp ufw limit <your custom SSH port here if not 22>/tcp ufw allow 80 ufw allow 443 ufw allow out 80 ufw allow out 443 ufw allow out 53 ufw allow out 37 ufw allow out 101 ufw allow out 161 ufw allow out 135 ufw allow out 427 ufw allow out 43 ufw allow out 115 ufw allow out 525 ufw allow out 123 ufw allow out 873 ufw allow out 989 ufw allow out 990 ufw allow out 530 ufw allow out 546 ufw allow out 547 ufw allow out 593 ufw enable
理由
用一点解释的方式,Apache = port 80,Apache Secure = 443,(并且必须把它放在引号中以便命令通过)。
端口9418是为git(虽然它可以使用各种协议),530和546是IPV6,530和593都rpc有关。
此外,SSH不会通过UDP(因此第二个命令上的/ tcp)。
再次希望能帮助别人。
更新:
上面以前并没有完全允许apt-get的工作(我认为这样做,但当我去做apt-get更新时,我得到了奇怪的结果是进展似乎卡住了)。
无论如何,我也没有注意到手册页上的这一行:
ufw支持入口和出口过滤,用户可以select指定入站或出站stream量的入口或出口方向。 如果没有提供方向,则该规则适用于传入stream量。 …
(强调加上我的原因,以及它需要它)。
原来,与DNS端口(53)一样,你必须启用传出的HTTP / HTTPS端口才能正常使用apt-getfunction(这很有意义…而且wget也一定会赞赏这一点,任何webservices,也许很多获取存储库等)。
其他资源
https://stackoverflow.com/questions/323351/does-http-use-udp https://www.linux.com/learn/introduction-uncomplicated-firewall-ufw https://ubuntuforums.org/showthread.php? T = 1876124