apt-get lädt fast immer über HTTP herunter, kann aber auch FTP verwenden. Daher lautet die kurze Antwort wahrscheinlich, ausgehende HTTP-Verbindungen zuzulassen ... und natürlich auch DNS.
Die Konfiguration, die Sie jetzt haben, lässt den gesamten ausgehenden Netzwerkverkehr nicht zu (die ESTABLISHED
Regel, die Sie in der OUTPUT
Kette haben, ist nicht wirksam, da keine Sitzungen jemals eingerichtet werden). Müssen Sie NUR passende Updates zulassen, ohne alles andere zuzulassen ? iptables
ist wahrscheinlich das falsche Tool für diesen Job, da es URLs nicht wirklich interpretiert und selektiv HTTP-Übertragungen zulässt. Sie möchten für diesen Job einen HTTP-Proxyserver verwenden.
Sie können ein einfacheres Setup verwenden, das das Herunterladen von Inhalten ermöglicht. Beachten Sie jedoch, dass dies auch alle anderen ausgehenden DNS- und HTTP-Verbindungen zulässt, die möglicherweise nicht Ihren Wünschen entsprechen.
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
Wenn Ihre APT-Quellen HTTPS- oder FTP-Quellen oder HTTP-Quellen an anderen Ports als 80 enthalten, müssen Sie diese Ports ebenfalls hinzufügen.
Als Nächstes müssen Sie den Rückverkehr zulassen. Sie können dies mit dieser einzigen Regel tun, die jede hergestellte Verbindung zulässt:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(Es ist sicher, alle eingehenden Verbindungen zuzulassen, wenn Sie die Verbindungsverfolgung verwenden, da nur Verbindungen, die Sie ansonsten zugelassen haben, in den Status ESTABLISHED versetzt werden.)