O apt-get quase sempre é baixado via HTTP, mas também pode usar FTP, então a resposta curta provavelmente é permitir conexões HTTP de saída ... e também DNS, é claro.
A configuração que você tem agora não permite todo o tráfego de rede de saída (a regra ESTABLISHED
que você tem na cadeia OUTPUT
não é efetiva, já que nenhuma sessão será estabelecida). Você precisa permitir que APENAS atualize o apt-get enquanto ainda está desabilitando tudo o mais? iptables
é provavelmente a ferramenta errada para esse trabalho, pois não vai realmente interpretar URLs e permitir transferências HTTP seletivamente. Você deseja usar um servidor proxy HTTP para este trabalho.
Você pode usar uma configuração mais simples que permitirá o download do apt-get, mas esteja ciente de que isso também permite todas as outras conexões DNS e HTTP de saída, que podem não ser o que você deseja.
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
Se suas fontes APT incluem fontes HTTPS ou FTP ou fontes HTTP em portas diferentes de 80, você também precisará adicionar essas portas.
Em seguida, você terá que permitir o tráfego de retorno. Você pode fazer isso com essa regra única que permite qualquer conexão estabelecida:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(É seguro permitir todas as conexões estabelecidas de entrada ao usar o rastreamento de conexão, porque somente as conexões que você permitia de outra forma chegarão ao estado ESTABLISHED.)