Score:0

ไม่สามารถทำการเชื่อมต่อขาออกโดยตั้งค่า iptables ให้อนุญาตทั้งหมด

ธง ba

ฉันไม่สามารถเข้าใจได้ตลอดชีวิตว่าทำไม DROP ถึงจบลงด้วยคำขอขาออกที่มาจาก VPS ที่ใช้ openvz ของฉัน

ฉันรู้ว่ามันต้องมีบางอย่างเกี่ยวกับการที่แพ็กเก็ตไม่ส่งออกไปโดยตรง หรือบางอย่าง และดูเหมือนว่าฉันจะพลาดสิ่งพื้นฐานบางอย่างไป ฉันได้ลองทำสิ่งต่างๆ มากมายแล้ว และวิธีเดียวที่จะทำให้มันกลับมาทำงานได้อีกครั้งคือการล้างกฎ (iptables -F)

เป้าหมายคือบล็อกทราฟฟิกขาเข้าทั้งหมด ยกเว้นจาก IP เดียว (1.2.3.4) และพอร์ต 53/113 สำหรับทุกคน และอนุญาตขาออกทั้งหมด

นี่คือผลลัพธ์ของ iptables -L -n -v - ฉันสามารถเห็นจำนวนแพ็กเก็ต DROP เพิ่มขึ้นเมื่อฉันพยายามขดขาออก (IPs แก้ไขเล็กน้อยเพื่อความเป็นส่วนตัว)

Chain INPUT (นโยบายยอมรับ 0 แพ็กเก็ต, 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
  239 17668 ยอมรับทั้งหมด -- * * 1.2.3.4 0.0.0.0/0           
  118 11175 ยอมรับ udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spt:53
    3 174 ยอมรับ udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
   17 1176 ยอมรับ tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:113
    0 0 ยอมรับทั้งหมด -- จริง * 0.0.0.0/0 0.0.0.0/0           
 2238 119K ลดทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0           

เชน FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         

Chain OUTPUT (นโยบายยอมรับ 0 แพ็คเก็ต, 0 ไบต์)
 pkts bytes target prot เลือกใช้ปลายทางต้นทาง         
  889 56648 ยอมรับทั้งหมด -- * * 0.0.0.0/0 0.0.0.0/0           

นี่คือจาก iptables-บันทึก (IPs แก้ไขเล็กน้อยเพื่อความเป็นส่วนตัว)

# สร้างโดย iptables-save v1.8.4 ในวันพฤหัสบดีที่ 2 ธันวาคม 02:42:40 น. 2564
*กรอง
: ยอมรับอินพุต [0:0]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [0:0]
-A อินพุต -s 1.2.3.4/32 -j ยอมรับ
-A อินพุต -p udp -m udp --sport 53 -j ยอมรับ
-A อินพุต -p udp -m udp --dport 53 -j ยอมรับ
-อินพุต -p tcp -m tcp --dport 113 -j ยอมรับ
-A อินพุต -i lo -j ยอมรับ
-A อินพุต -j DROP
-A OUTPUT -j ยอมรับ
ให้สัญญา
# เสร็จสิ้นในวันพฤหัสบดีที่ 2 ธ.ค. 02:42:40 น. 2564

นี่คืออินเทอร์เฟซ (IPs แก้ไขเล็กน้อยเพื่อความเป็นส่วนตัว)

venet0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
        inet 127.0.0.1 netmask 255.255.255.255 ออกอากาศ 0.0.0.0 ปลายทาง 127.0.0.1
        inet6 2a00:d880:3:1::ad49:a3f2 คำนำหน้า 128 scopeid 0x0<ทั่วโลก>
        inet6 2a00:d880:3:1::a639:a610 คำนำหน้า 128 scopeid 0x0<ทั่วโลก>

venet0:0: flags=211<UP,BROADCAST,POINTOPOINT,RUNNING,NOARP> mtu 1500
        inet 81.1.1.1 netmask 255.255.255.255 ออกอากาศ 81.1.1.1 ปลายทาง 81.1.1.1
Score:0
ธง za

ของคุณ ป้อนข้อมูล ลูกโซ่ปฏิเสธการตอบกลับที่คาดว่าจะถูกต้องไปยังแพ็กเก็ตขาออก เพื่ออนุญาต:

iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED, RELATED -j ยอมรับ

มันจะตรวจจับว่าแพ็กเก็ตนั้นเป็นความต่อเนื่องของการเชื่อมต่อก่อนหน้าบางอย่างหรือไม่ (เช่น การตอบกลับไปยังแพ็กเก็ตขาออกบางแพ็กเก็ต) และอนุญาต

นอกจากนี้ฉันแนะนำให้เปลี่ยน ป้อนข้อมูล นโยบายที่จะ หยด. การประมวลผลจะไม่เปลี่ยนแปลง (คุณไม่มีข้อจำกัด หยด ลงในหลักเกณฑ์) แต่เจตนาจะชัดเจน

iptables -P อินพุตลดลง
ba flag
ดังนั้นปัญหาที่ฉันไม่มี -m พิเศษเหล่านี้เป็นเพราะฉันได้รับ "iptables: No chain/target/match by that name" มันใช้งานเคอร์เนลเต็มรูปแบบ ดูเหมือนว่า (ดังนั้นฉันจะถือว่าโมดูลทั้งหมดอยู่ที่นั่น) `Linux foo 5.4.0 #1 SMP พฤ. 27 มิ.ย. 15:10:55 MSK 2019 x86_64 x86_64 x86_64 GNU/Linux` อย่างไรก็ตามฉันอยู่ใน openvz ของแขก
Nikita Kipriyanov avatar
za flag
นั่นเป็นเรื่องแปลก การติดตั้งของคุณเสร็จสมบูรณ์หรือไม่ ลองใช้ `-m state --state ESTABLISHED,RELATED` แทน (แต่นั่นเป็นวิธีที่ *ล้าสมัย* ในการทำเช่นนี้ และในเคอร์เนล 5.x จะถูกนำไปใช้ภายในอย่างแน่นอนผ่านโมดูล conntrack)
ba flag
ไม่ได้ช่วย ดูเหมือนว่าจะเน้นไปที่เคอร์เนลของโฮสต์ (ฉันไม่ได้ติดตั้งไว้ในเกสต์ด้วยซ้ำ ฉันติดตั้งแล้ว แต่ดูเหมือนจะบูตไม่ได้ อาจเป็นเพราะ openvz...) ฉันสงสัยว่ามันเป็นอะไรหรือเปล่า ในระดับโฮสต์ เช่น ถ้าเคอร์เนลโฮสต์เปิดใช้งานอยู่ ฉันสามารถควบคุมแพ็กเก็ตในระดับของฉันได้ แต่ดูเหมือนจะไม่สามารถเข้าถึงโมดูล conntrack หรือสถานะได้
Nikita Kipriyanov avatar
za flag
คุณต้องทราบทราฟฟิกที่เป็นไปได้ทั้งหมดและอนุญาตแบบสแตติก หรือใช้ไฟร์วอลล์ stateful ซึ่งจะตรวจจับไดนามิก "เปิดใช้งานการเชื่อมต่อขาเข้าที่เลือกและการเชื่อมต่อขาออกที่เป็นไปได้ทั้งหมด" ต้องใช้ไฟร์วอลล์แบบมีสถานะ ดังนั้นดูเหมือนว่าสิ่งที่คุณขอจะเป็นไปไม่ได้ โอกาสสุดท้ายของคุณคือขอให้ผู้ให้บริการโฮสติ้งโหลดโมดูลที่จำเป็นสำหรับคุณ // ป.ล. openvz? ภายในสิ้นปี 2564? อย่างจริงจัง?
ba flag
มันใช้ ramnode ... มีผู้ให้บริการ VPS ราคาถูก "ต่ำสุด" จำนวนมากที่ยังคงใช้มันอยู่

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา