apt-get scarica quasi sempre su HTTP ma può anche usare FTP, quindi la risposta breve è probabilmente quella di consentire connessioni HTTP in uscita ... e anche DNS, ovviamente.
La configurazione che hai ora non consente tutto il traffico di rete in uscita (la ESTABLISHED
regola che hai sulla OUTPUT
catena non è efficace poiché nessuna sessione verrà mai stabilita). Devi consentire SOLO gli aggiornamenti di apt-get pur non consentendo tutto il resto? iptables
è probabilmente lo strumento sbagliato per quel lavoro in quanto non interpreterà davvero gli URL e consentirà i trasferimenti HTTP in modo selettivo. Si desidera utilizzare un server proxy HTTP per questo lavoro.
È possibile utilizzare una configurazione più semplice che consentirà download apt-get, ma tenere presente che ciò consente anche tutte le altre connessioni DNS e HTTP in uscita, che potrebbero non essere quelle desiderate.
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 le tue fonti APT includono origini HTTPS o FTP o fonti HTTP su porte diverse da 80, dovrai aggiungere anche quelle porte.
Successivamente, dovrai consentire il traffico di ritorno. Puoi farlo con questa singola regola che consente qualsiasi connessione stabilita:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(È sicuro consentire tutte le connessioni stabilite in entrata quando si utilizza il monitoraggio delle connessioni, poiché solo le connessioni che altrimenti sono state autorizzate raggiungeranno lo stato STABILITO.)