O apt-get quase sempre baixa por 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 saída da rede (a ESTABLISHED
regra que você possui na OUTPUT
cadeia não é eficaz, pois nenhuma sessão será estabelecida). Você precisa permitir APENAS atualizações do apt-get enquanto ainda não permite todo o resto? 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á downloads apt-get, mas lembre-se 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 incluírem fontes HTTPS ou FTP ou fontes HTTP em portas diferentes de 80, você precisará adicionar essas portas também.
Em seguida, você terá que permitir o tráfego de retorno. Você pode fazer isso com esta 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ões, porque somente as conexões que você permitiu de outra maneira chegarão ao estado ESTABELECIDO.)