Score:1

FreeBSD 13 PF ปิดกั้นการรับส่งข้อมูลในคุก

ธง id

หลังจากอัปเกรดระบบ FreeBSD ของฉันจาก 12.2 เป็น 13.0-p3 PF บล็อกการรับส่งข้อมูลทั้งหมดไปยังคุกของฉัน เมื่อปิดใช้งาน PF ทุกอย่างทำงานได้ดี (ยกเว้นไม่มีการป้องกัน ;))

ฉันพยายามค้นหาว่ากฎใดบล็อกทราฟฟิกนี้โดยการตั้งค่า 'บล็อกในบันทึกทั้งหมด' แต่นอกเหนือจากมัลติคาสต์ที่ชัดเจนแล้ว ไม่มีอะไรที่สามารถอธิบายได้ว่าทำไมทราฟฟิกนี้จึงถูกบล็อก

ก่อนที่ทุกอย่างจะทำงานได้อย่างสมบูรณ์ภายใต้เวอร์ชัน 12.2 ฉันพบบางบทความเกี่ยวกับ v13 ที่กรองผ่าน VLAN แทนที่จะเป็น lo0 แต่ฉันไม่ได้ใช้ VLAN ใดๆ

ควรแสวงหาต่อไปในแนวทางใด?

อัปเดต 2021-07-15:

เพื่อความชัดเจน: นี่คือไฟล์ pf_rules ของฉัน:

กำหนดผลตอบแทนนโยบายบล็อก
ตั้งค่าการเพิ่มประสิทธิภาพเชิงรุก
ตั้งค่าการข้าม { lo0, lo1, lo2, lo3, lo4, lo5 }
ext_if=hn0
ext_address="{ 192.x.x.x, 2001:981:x.x::x }"
ext_services = "{ ssh, http, https, smtp, smtps }"
tcp_services = "{ ftp, ssh, โดเมน, ntp, www, smtp, smtps, การส่ง, http, https,nfs}"
udp_services = "{ โดเมน, ntp, nfs }"
icmp6_types="{ 2, 128 }" # แพ็กเก็ตใหญ่เกินไป คำขอ echo (ping6)
icmp6_types_ext_if="{ 128, 133, 134, 135, 136, 137 }"
jail_net = "192.168.1.0/24"
jail_services = "{ mysql, http, smtp, 587, 3000 }"
ตาราง <sshguard> ยังคงอยู่
ขัดในทั้งหมด
แนทส่งต่อ $ext_if จาก $jail_net ไปที่ใดก็ได้ -> $ext_address
บล็อกการเข้าสู่ระบบ $ext_if proto tcp จาก <sshguard> ไปยังพอร์ต ssh label "ssh bruteforce"
บล็อกในบันทึกทั้งหมด
ส่งผ่านอย่างรวดเร็วจาก <pf_whitelist> แฟล็ก S/SA สถานะ synproxy
ส่งผ่าน $ext_if inet6 proto icmp6 echoreq ประเภท icmp6 ทั้งหมดเก็บสถานะ
ส่ง $ext_if inet proto udp ไปยังพอร์ต 33433:33626
ส่ง $ext_if inet6 proto udp ไปยังพอร์ต 33433:33626
ส่งต่อ $ext_if inet6 proto ipv6-icmp icmp6-type $icmp6_types เก็บสถานะ
ส่งผ่าน $ext_if inet6 proto ipv6-icmp จากใด ๆ ไปยัง { ($ext_if ), ff02::1/16 } icmp6-type $i
cmp6_types_ext_if รักษาสถานะ
ส่งต่อ $ext_if proto tcp จากพอร์ตใด ๆ ไปยังพอร์ต $ext_address $ext_services เก็บสถานะ
ส่งต่อ $ext_if inet6 proto tcp จากใด ๆ ไปยังพอร์ต $ext_address $ext_services เก็บสถานะ
ส่ง $ext_if inet proto tcp ไปยังพอร์ตใด ๆ $tcp_services เก็บสถานะ
ส่ง $ext_if inet6 proto tcp ไปยังพอร์ตใด ๆ $tcp_services รักษาสถานะ
ส่ง $ext_if inet6 proto udp ไปยังพอร์ต $udp_services ใดๆ
ส่ง proto udp ไปยังพอร์ตใดๆ ที่ $udp_services เก็บสถานะไว้
ส่งผ่านโปรโต tcp จากพอร์ตใดก็ได้ไปยังพอร์ต $jail_net $jail_services รักษาสถานะ
ส่งผ่าน proto tcp จาก $jail_net ไปยังพอร์ตใดก็ได้ $jail_services รักษาสถานะ
ผ่าน inet proto icmp จากอันใดไปยังอันใด

สิ่งนี้ใช้ได้ผลมาหลายปีจนกระทั่ง FreeBSD 13

drookie avatar
za flag
`kldload pflog && ifconfig pflog0 ขึ้น && tcpdump -netti pflog0` ? และอัปเดตคำถามของคุณด้วยผลลัพธ์
GTeley avatar
id flag
อย่างที่ฉันพูด ฉันตรวจสอบบันทึก (ด้วย tcpdump) แต่นอกเหนือจาก UDP และมัลติคาสต์แล้ว ไม่มีอะไรเกิดขึ้น: 1626265392.763303 กฎ 1/0 (ตรงกัน): บล็อกใน hn0: 192.168.178.56.138 > 192.168.178.255.138: NBT UDP PACKET(138) 1626265398.905896 rule 1/0(match): block in on hn0: fe80::98af:7b38:affd:bc9f > ff02::16: HBH ICMP6, multicast listener report v2, 4 group record(s), length 88
br flag
ฉันต้องลบแฟล็ก "synproxy"
Score:0
ธง br

อ้างจาก พร็อกซี TCP SYN:

| พร็อกซี SYN จะไม่ทำงานหาก PF ทำงานบนบริดจ์ (4)

นำธงออก ซินพร็อกซี

ส่งผ่านอย่างรวดเร็วจาก <pf_whitelist> แฟล็ก S/SA สถานะ synproxy

ลองแทน

ผ่านอย่างรวดเร็วจาก <pf_whitelist> แฟล็ก S/SA รักษาสถานะ

หากใช้งานได้คุณสามารถใช้กับคุกเท่านั้นและเก็บไว้ ซินพร็อกซี สำหรับผู้อื่นเช่น

ส่งต่ออย่างรวดเร็วจาก <pf_whitelist> ไปยัง $jail_net แฟล็ก S/SA รักษาสถานะ
ส่งผ่านอย่างรวดเร็วจาก <pf_whitelist> แฟล็ก S/SA สถานะ synproxy
GTeley avatar
id flag
สวัสดีวลาดิมีร์ ขอบคุณสำหรับการสนับสนุนของคุณ น่าเสียดายที่ดูเหมือนจะไม่ช่วยอะไร นอกจากนี้: ฉันถือว่ามีมากกว่านั้น การสร้างคุกใหม่ (เพื่อจุดประสงค์ในการทดสอบ) ไม่ได้ผลเนื่องจาก ezjail-admin ไม่สามารถจัดการเพื่อสร้างลิงก์ไปยัง /bin, /sbin ฯลฯ ดังนั้นฉันจึงต้องเจาะลึกลงไปเพื่อค้นหาว่ามีอะไรผิดปกติมากกว่าในเวอร์ชัน 13 บางทีพวกเขาควรจะข้าม 13 และไปที่ 14 โดยตรง ;)
GTeley avatar
id flag
ใช่ มีบางอย่างผิดปกติกับ FreeBSD 13 และคุก แม้แต่ในคุก (อันที่มาจาก 12.2) ฉันไม่สามารถเข้าถึงบริการผ่านที่อยู่ 'ภายนอก' ที่พวกเขากำลังฟังได้อีกต่อไป ดังนั้นหากบริการ HTTP ในเครื่องทำงานบนพอร์ต 3000 ในคุก 12.2 ฉันสามารถเข้าถึงได้ด้วยเช่น 'ขด -v 192.168.1.101:3000' ในระบบที่อัปเกรดเป็น v13 จะไม่ทำงานอีกต่อไป สิ่งนี้ (บางส่วน?) อธิบายว่าทำไมไม่มีการพยายามเข้าถึงที่ถูกบล็อกใน de pf_log
br flag
เสียใจเป็นอย่างยิ่ง. FWIW ฉันใช้ [บทบาท Ansible](https://github.com/vbotka/ansible-freebsd-jail) ฉันต้องลบแฟล็ก "synproxy" ออกเมื่อฉันย้ายจาก 12 เป็น 13
GTeley avatar
id flag
ฉันติดตั้งเซิร์ฟเวอร์ IBM x3400 M3 เครื่องเก่าที่มี FreeBSD 13 ตั้งแต่เริ่มต้น และสร้าง test_jail ติดตั้งบริการบางอย่าง และทุกอย่างทำงานได้ดี ดังนั้นจึงต้องมีบางอย่างเกี่ยวกับกระบวนการอัปเกรด เนื่องจากทุกสิ่งที่ฉันเห็นนั้นเหมือนกันในการตั้งค่าและการกำหนดค่า (นอกเหนือจากรูปแบบหนึ่งคือเครื่องเสมือน) จึงเป็นเรื่องยากมากที่จะบอกว่ามีอะไรผิดพลาด
br flag
เข้าใจแล้ว. คุณต้องการปิดคำถาม & คำตอบนี้หรือไม่
Score:0
ธง id

เห็นได้ชัดว่าสิ่งนี้ไม่เกี่ยวข้องกับ PF แต่มีบางอย่างเกี่ยวกับกระบวนการอัปเกรดจากเวอร์ชัน 12.2 เป็น 13.0 การติดตั้งเวอร์ชัน 13 บนเซิร์ฟเวอร์จริงและการสร้างคุกด้วยบริการบางอย่างทำงานได้ดี ดังนั้นจึงอาจเกี่ยวข้องกับการอัปเกรดบนเซิร์ฟเวอร์เสมือน ไม่ว่าจะเป็น Hyper-V หรืออย่างอื่นฉันยังไม่รู้เพราะทุกอย่างในการตั้งค่าและการกำหนดค่าดูเหมือนกัน (ส่วนใหญ่ฉันคัดลอกมาจากเซิร์ฟเวอร์เสมือนที่อัปเกรดซึ่งใช้งานไม่ได้)

โพสต์คำตอบ

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