apt-get hầu như luôn tải xuống qua HTTP nhưng cũng có thể sử dụng FTP, vì vậy câu trả lời ngắn có lẽ là cho phép kết nối HTTP bên ngoài ... và cả DNS, tất nhiên.
Cấu hình bạn hiện không cho phép tất cả lưu lượng truy cập mạng đi ( ESTABLISHED
quy tắc bạn có trong OUTPUT
chuỗi không hiệu quả do sẽ không có phiên nào được thiết lập). Bạn có cần cho phép CHỈ cập nhật apt-get trong khi vẫn không cho phép mọi thứ khác không? iptables
có lẽ là công cụ sai cho công việc đó vì nó không thực sự diễn giải các URL và cho phép chuyển HTTP một cách có chọn lọc. Bạn muốn sử dụng máy chủ proxy HTTP cho công việc này.
Bạn có thể sử dụng một thiết lập đơn giản hơn sẽ cho phép tải xuống apt-get, nhưng lưu ý rằng điều này cũng cho phép tất cả các kết nối DNS và HTTP gửi đi khác, có thể không phải là điều bạn muốn.
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
Nếu các nguồn APT của bạn bao gồm các nguồn HTTPS hoặc FTP hoặc nguồn HTTP trên các cổng khác ngoài 80, bạn cũng sẽ phải thêm các cổng đó.
Tiếp theo, bạn sẽ phải cho phép lưu lượng truy cập trở lại. Bạn có thể làm điều đó với quy tắc duy nhất này cho phép mọi kết nối được thiết lập:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
(An toàn khi cho phép tất cả các kết nối được thiết lập trong nước khi sử dụng theo dõi kết nối, bởi vì chỉ những kết nối mà bạn cho phép nếu không sẽ được chuyển sang trạng thái THÀNH LẬP.)