Score:0

Masquerade / firewalld target : ส่งผลกระทบต่อการกรอง?

ธง za

ฉันเปิดคำถาม ที่นี่แต่เมื่อฉันพบองค์ประกอบใหม่บางอย่าง ฉันต้องการเปิดองค์ประกอบใหม่

นี่คือสถานการณ์ของฉันที่สามารถทำซ้ำได้:

ระบบปฏิบัติการ Centos7 ใหม่ การกำหนดค่าสองอินเทอร์เฟซ eth1 และ eth2 พร้อมที่อยู่ IP X และ Y

-----------------> @X CENTOS @Y -----------------> @Z -------
    dst_IP = ก dst_IP = ก
    src_IP = B dst_IP = B

แก้ไข /etc/firewalld/zones/TEST.xml เพิ่มสองอินเทอร์เฟซ เปิดใช้งานหน้ากาก. เป้าหมาย firewalld ถูกตั้งค่าเป็น "default" ตามค่าเริ่มต้น

เพิ่มเส้นทางดังต่อไปนี้:

เกตเวย์ปลายทาง GenMask
อาแซด 255.255.255.255

จากนั้นเปิดใช้งาน ip ส่งต่อและปิดใช้งาน rp_filter :

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2

ในสถานการณ์นี้ ถ้าฉันกำหนดเส้นทางแพ็คเก็ต (@dest=A) ไปยัง CentOS paquet ถูกส่งไปยัง Z -> ทำไมไฟร์วอลล์ไม่ปิดกั้น เนื่องจากไม่มีกฎที่จะยอมรับได้

ถ้าฉันปิดการใช้งานมาสเคอเรด paquet ไม่ได้กำหนดเส้นทางอีกต่อไป -> ทำไม ?

เมื่อเปิดใช้งานการสวมหน้ากาก หากฉันเปลี่ยนเป้าหมายจากค่าเริ่มต้นเป็น DROP ปาเก้จะไม่ถูกกำหนดเส้นทางอีกต่อไป -> ดังนั้นเป้าหมาย "เริ่มต้น" จึงไม่เหมือนกันกับเป้าหมาย "DROP" อย่างเคร่งครัด อะไรคือความแตกต่างอย่างแน่นอน? ฉันไม่พบข้อมูลใด ๆ เกี่ยวกับเรื่องนี้

Score:0
ธง kz

ก่อนอื่น คุณกำลังเปิดใช้งาน rp_filterและไม่ปิดใช้งาน (หากต้องการปิดใช้งาน คุณจะต้องตั้งค่าเป็นศูนย์)

ข้อมูล เกี่ยวกับการกรองเส้นทางย้อนกลับ

มีคำถามหนึ่งข้อที่สามารถตอบได้อย่างง่ายดาย: หากไม่มีการสวมหน้ากาก เราเตอร์ปลายทางจะเห็น IP ต้นทางเป็น B แต่ไม่มีเส้นทางที่ถูกต้องในการส่งคำตอบไป ด้วยเหตุนี้และการกรองเส้นทางย้อนกลับ แพ็กเก็ตจึงถูกทิ้ง

ประการที่สอง คุณต้องแยกความแตกต่างระหว่างไฟร์วอลล์และไฟร์วอลล์การส่งต่อ หนึ่งมีไว้สำหรับแพ็กเก็ตที่มีหนึ่งในอินเทอร์เฟซ IP เป็น dst / src ip (หมายถึงมาจาก / ไปยังอุปกรณ์!) และอีกอันมีไว้สำหรับแพ็กเก็ตที่เพิ่งผ่านอุปกรณ์

แล้วเกิดอะไรขึ้น ? CentOS ของคุณเห็นแพ็คเก็ตที่มี IP ต้นทาง B, IP ปลายทาง A และพยายามส่งต่อ ในการทำเช่นนี้ จะดูที่ตารางเส้นทาง - มีเส้นทางที่ใช้งานอยู่ ซึ่งแพ็กเก็ตทั้งหมดที่มีไว้สำหรับปลายทาง A ควรผ่านเราเตอร์ Z

ตอนนี้การปลอมแปลงมีผล - IP ต้นทาง B ถูกแทนที่ด้วย Y และแพ็กเก็ตถูกส่งต่อไปยัง Z - ยังคงมี IP ปลายทาง A !

ฉันสามารถเดาได้ว่าไฟร์วอลล์ทำอะไร - คุณต้องโพสต์ชุดกฎไฟร์วอลล์ทั้งหมดของคุณสำหรับรูปภาพทั้งหมด - แต่ฉันเดาว่าคุณกำลังสับสน "การกำหนดเส้นทางผ่าน Z" กับ "ปลายทาง Z" อันหลังน่าจะหลุด อันแรกคงไม่

โปรดโพสต์ชุดกฎไฟร์วอลล์ทั้งหมดของคุณเพื่อรับคำตอบสุดท้าย!

za flag
สวัสดีมาร์ติน ขอบคุณสำหรับคำตอบของคุณ !
za flag
ฉันจะโพสต์รายละเอียดเพิ่มเติมในคำตอบ ความแตกต่างระหว่างไฟร์วอลล์และไฟร์วอลล์การส่งต่ออาจเป็นสิ่งที่ฉันขาดหายไป แต่ฉันไม่พบเอกสารใด ๆ เกี่ยวกับเรื่องนี้สำหรับ Linux firewalld
Martin avatar
kz flag
มีส่วนหน้ามากมายสำหรับไฟร์วอลล์ linux, firewalld เป็นเพียงหนึ่งในนั้น ส่วนใหญ่ใช้ ```iptables``` อยู่ใต้ประทุน iptables จัดทำโดยเคอร์เนล linux (เนื่องจากเป็นที่ที่แพ็กเก็ตถูกจัดการ / กรอง) และมีมานานแล้วและมีการจัดทำเป็นเอกสารอย่างดี ฉันอยากจะแนะนำให้อ่านในหัวข้อนั้น
Score:0
ธง za

ความแม่นยำเพิ่มเติม:

สำหรับประเด็นนี้ ฉันพิจารณาเฉพาะข้อเท็จจริงที่ว่าการฟังบนอินเทอร์เฟซ Centos @Y แพ็กต์ถูกกำหนดเส้นทางหรือตกหล่น. ฉันไม่คำนึงถึงการตอบกลับโดย Z ซึ่งใช้ไม่ได้จริงหากฉันเปิด/ปิดใช้งานการปลอมตัวบน CentOS โดยไม่ปรับการกำหนดค่า Z

ในบริบทนี้ อะไรอธิบายว่าการเปิดใช้งานปลอมแปลงมีผลกระทบต่อแพ็กเก็ตที่กำหนดเส้นทางซึ่งถูกทิ้งหรือไม่โดยไฟร์วอลล์ก่อนที่จะออกไปที่อินเทอร์เฟซ @Y สำหรับเป้าหมาย "เริ่มต้น" ในไฟร์วอลล์?

ชุดกฎไฟร์วอลล์ของฉันว่างเปล่า ฉันตั้งค่านี้จาก CentOS ใหม่เพื่อแก้ไขปัญหานี้ ไม่มีการเพิ่มกฎ iptables หรือ firewalld

นี่คือผลลัพธ์ของ iptables -L -n และ iptables -L -t แนท -n :

เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ที่เกี่ยวข้อง ก่อตั้ง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
วางทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ไม่ถูกต้อง
ปฏิเสธทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-host-prohibited

ส่งต่อไปข้างหน้า (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ที่เกี่ยวข้อง ก่อตั้ง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FORWARD_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
วางทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ไม่ถูกต้อง
ปฏิเสธทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ปฏิเสธด้วย icmp-host-prohibited

Chain OUTPUT (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
OUTPUT_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชน FORWARD_IN_ZONES (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
FWDI_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [ไปที่]
FWDI_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [ไปที่]

เชน FORWARD_IN_ZONES_SOURCE (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน FORWARD_OUT_ZONES (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
FWDO_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [ไป]
FWDO_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [ไป]

เชน FORWARD_OUT_ZONES_SOURCE (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน FORWARD_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง


ห่วงโซ่ FWDI_TEST (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
FWDI_TEST_log ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_deny ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FWDI_TEST_allow ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
ยอมรับ icmp -- 0.0.0.0/0 0.0.0.0/0

เชน FWDI_TEST_allow (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน FWDI_TEST_deny (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน FWDI_TEST_log (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

ห่วงโซ่ FWDO_TEST (2 ข้อมูลอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
FWDO_TEST_log ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_deny ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
FWDO_TEST_allow ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชน FWDO_TEST_allow (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
ยอมรับทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 ctstate ใหม่

เชน FWDO_TEST_deny (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน FWDO_TEST_log (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน INPUT_ZONES (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
IN_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]
IN_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]

เชน INPUT_ZONES_SOURCE (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน INPUT_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง


ห่วงโซ่ IN_TEST (2 การอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง
IN_TEST_log ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_deny ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
IN_TEST_allow ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
ยอมรับ icmp -- 0.0.0.0/0 0.0.0.0/0

เชน IN_TEST_allow (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

ห่วงโซ่ IN_TEST_deny (1 การอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน IN_TEST_log (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน OUTPUT_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง



ห่วงโซ่ PREROUTING (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
PREROUTING_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
PREROUTING_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชนอินพุท (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง

Chain OUTPUT (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
OUTPUT_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

ห่วงโซ่โพสต์ (ยอมรับนโยบาย)
เป้าหมาย prot เลือกปลายทางต้นทาง
POSTROUTING_direct ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES_SOURCE ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
POSTROUTING_ZONES ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชน OUTPUT_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน POSTROUTING_ZONES (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
POST_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]
POST_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]

เชน POSTROUTING_ZONES_SOURCE (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน POSTROUTING_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน POST_TEST (อ้างอิง 2 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
POST_TEST_log ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_deny ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
POST_TEST_allow ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชน POST_TEST_allow (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
สวมหน้ากากทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

ห่วงโซ่ POST_TEST_deny (1 การอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน POST_TEST_log (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน PREROUTING_ZONES (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
PRE_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]
PRE_TEST ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0 [goto]

เชน PREROUTING_ZONES_SOURCE (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน PREROUTING_direct (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน PRE_TEST (อ้างอิง 2 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง
PRE_TEST_log ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_deny ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0
PRE_TEST_allow ทั้งหมด -- 0.0.0.0/0 0.0.0.0/0

เชน PRE_TEST_allow (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

ห่วงโซ่ PRE_TEST_deny (1 การอ้างอิง)
เป้าหมาย prot เลือกปลายทางต้นทาง

เชน PRE_TEST_log (อ้างอิง 1 รายการ)
เป้าหมาย prot เลือกปลายทางต้นทาง

โพสต์คำตอบ

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