apt - รับการดาวน์โหลดผ่าน 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
(ปลอดภัยที่จะอนุญาตการเชื่อมต่อขาเข้าที่สร้างขึ้นทั้งหมดเมื่อใช้การติดตามการเชื่อมต่อเนื่องจากเฉพาะการเชื่อมต่อที่คุณได้รับอนุญาตเท่านั้นที่จะเข้าสู่สถานะ ESTABLISHED)