apt-get télécharge presque toujours sur HTTP mais peut également utiliser FTP, donc la réponse courte est probablement d'autoriser les connexions HTTP sortantes ... et aussi DNS, bien sûr.
La configuration que vous avez maintenant interdit tout le trafic réseau sortant (la ESTABLISHED
règle que vous avez sur la OUTPUT
chaîne n'est pas efficace car aucune session ne sera jamais établie). Devez-vous autoriser UNIQUEMENT les mises à jour apt-get tout en interdisant tout le reste? iptables
est probablement le mauvais outil pour ce travail car il ne va pas vraiment interpréter les URL et autoriser les transferts HTTP de manière sélective. Vous souhaitez utiliser un serveur proxy HTTP pour ce travail.
Vous pouvez utiliser une configuration plus simple qui permettra les téléchargements apt-get, mais sachez que cela permet également toutes les autres connexions DNS et HTTP sortantes, ce qui n'est peut-être pas ce que vous voulez.
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
Si vos sources APT incluent des sources HTTPS ou FTP ou des sources HTTP sur des ports autres que 80, vous devrez également ajouter ces ports.
Ensuite, vous devrez autoriser le trafic de retour. Vous pouvez le faire avec cette règle unique qui autorise toute connexion établie:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(Il est sûr d'autoriser toutes les connexions établies entrantes lors de l'utilisation du suivi des connexions, car seules les connexions que vous avez autrement autorisées atteindront l'état ÉTABLI.)