ant*_*y01 13 security firewall iptables
当我输入类似的东西时sudo apt-get install firefox,一切正常,直到它问我:
After this operation, 77 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Run Code Online (Sandbox Code Playgroud)
然后显示错误消息: Failed to fetch: <URL>
我的iptables规则如下:
-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
我应该添加什么以允许 apt-get 下载更新?谢谢
Cel*_*ada 23
apt-get 几乎总是通过 HTTP 下载,但也可能使用 FTP,所以简短的回答可能是允许出站 HTTP 连接......当然还有 DNS。
您现在的配置不允许所有传出网络流量(ESTABLISHED您在OUTPUT链上的规则无效,因为不会建立任何会话)。你需要让ONLY apt-get的更新,同时还禁止一切?iptables可能是该工作的错误工具,因为它不会真正解释 URL 并有选择地允许 HTTP 传输。您可能希望为此作业使用 HTTP 代理服务器。
您可以使用更简单的设置来允许 apt-get 下载,但请注意,这也允许所有其他传出 DNS 和 HTTP 连接,这可能不是您想要的。
iptables -F OUTPUT # remove your existing OUTPUT rule which becomes redundant
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
如果您的 APT 源包括 HTTPS 或 FTP 源或 80 以外端口上的 HTTP 源,则您也必须添加这些端口。
接下来,您必须允许返回流量。您可以使用允许任何已建立连接的单个规则来做到这一点:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
(使用连接跟踪时允许所有入站建立的连接是安全的,因为只有您以其他方式允许的连接才会进入 ESTABLISHED 状态。)
| 归档时间: |
|
| 查看次数: |
27051 次 |
| 最近记录: |