apt-get майже завжди завантажує через HTTP, але може також використовувати FTP, тому коротка відповідь, ймовірно, дозволяє вихідні HTTP-з’єднання ... а також DNS, звичайно.
Зараз у вас конфігурація відключає весь вихідний мережевий трафік ( ESTABLISHED
правило, яке ви маєте в OUTPUT
ланцюжку, не діє, оскільки жодні сеанси не встановлюються). Чи потрібно дозволити ТІЛЬКИ оновлення apt-get, а все ще забороняти все інше? iptables
це, мабуть, неправильний інструмент для цієї роботи, оскільки він насправді не збирається інтерпретувати URL-адреси та дозволяє HTTP передавати вибірково. Ви хочете використовувати для цього завдання проксі-сервер HTTP.
Ви можете скористатися більш простим налаштуванням, яке дозволить завантажувати apt-get, але пам’ятайте, що це також дозволяє всі інші вихідні з'єднання DNS та HTTP, що може бути не тим, що вам потрібно.
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
Якщо джерела APT включають джерела HTTPS або FTP або джерела HTTP для інших портів, ніж 80, вам доведеться також додати ці порти.
Далі вам доведеться дозволити зворотний трафік. Ви можете зробити це за допомогою цього єдиного правила, яке дозволяє будь-яке встановлене з'єднання:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(Безпечно дозволяти всі вхідні встановлені з'єднання при використанні відстеження з'єднань, тому що лише ті з’єднання, які ви в іншому випадку дозволені, переходять у стан ВСТАНОВЛЕНО.)