หลังจากอัปเกรดระบบ 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