ฉันใช้เว็บเซิร์ฟเวอร์ (nginx 1.21.6) บนระบบ Debian 11 ที่มี nftables 0.9.8
การกำหนดค่า nftables ของฉันคือ:
ตัวกรองตาราง inet {
อินพุตลูกโซ่ {
ประเภท ตัวกรอง เบ็ด ตัวกรองลำดับความสำคัญอินพุต; นโยบายลดลง;
ip saddr @spamhaus4 ตัวนับแพ็กเก็ต 0 ไบต์ 0 ดร็อป
ip6 saddr @spamhaus6 ตัวนับแพ็กเก็ต 0 ไบต์ 0 ดร็อป
meta l4proto tcp meta nfproto ipv4 ip saddr @abused counter แพ็กเก็ต 0 ไบต์ 0 ดรอป
ip daddr 46.38.148.0-46.38.151.255 ดร็อป
iif "lo" บันทึกกลุ่ม 2 ยอมรับ
iif != "lo" ip daddr 127.0.0.0/8 ตัวนับแพ็กเก็ต 0 ไบต์ 0 ปล่อยความคิดเห็น "ปล่อยการเชื่อมต่อไปยังลูปแบ็คที่ไม่ได้มาจากลูปแบ็ค"
iif != "lo" ip6 daddr ::1 แพ็กเก็ตตัวนับ 0 ไบต์ 0 ทิ้งความคิดเห็น "ปล่อยการเชื่อมต่อไปยังลูปแบ็คที่ไม่ได้มาจากลูปแบ็ค"
สถานะ ct ที่จัดตั้งขึ้น กลุ่มบันทึกที่เกี่ยวข้อง 2 ยอมรับ
ct สถานะตัวนับแพ็กเก็ตที่ไม่ถูกต้อง 47 ไบต์ 2572 ดร็อป
tcp dport { 25, 80, 143, 443, 587, 2772, 9980, 45907 } บันทึกกลุ่ม 2 ยอมรับ
ip protocol icmp ประเภท icmp { echo-reply, destination-unreachable, echo-request, router-advertisement, router-solicitation, time-exceeded, parameter-problem } log group 2 ยอมรับ
ip6 nexthdr ipv6-icmp icmpv6 ประเภท { ปลายทางไม่สามารถเข้าถึงได้, แพ็กเก็ตใหญ่เกินไป, เกินเวลา, พารามิเตอร์-ปัญหา, คำขอเสียงสะท้อน, คำตอบแบบสะท้อน, nd-router-solicit, nd-router-advert, nd-neighbor- ร้องขอ, โฆษณาเพื่อนบ้าน, ชักชวนเพื่อนบ้าน, โฆษณาเพื่อนบ้าน } บันทึกกลุ่ม 2 ยอมรับ
ยอมรับกลุ่มบันทึก ip6 nexthdr ipv6-icmp 2
ตัวนับแพ็กเก็ต 2686 ไบต์ 421604 ดรอป
}
เชน IPSinput {
ประเภทตัวกรอง hook อินพุตตัวกรองลำดับความสำคัญ + 10; นโยบายลดลง;
ตัวนับแพ็กเก็ต 88448 ไบต์ 15799025 คิว num 0-3 บายพาส fanout
}
ห่วงโซ่ไปข้างหน้า {
ประเภทตัวกรอง hook ตัวกรองลำดับความสำคัญไปข้างหน้า; นโยบายลดลง;
}
เอาต์พุตลูกโซ่ {
ประเภทตัวกรองลำดับความสำคัญของเอาต์พุตของตะขอตัวกรอง; นโยบายยอมรับ;
}
เชน IPSoutput {
ประเภท ฟิลเตอร์ ฮุค ฟิลเตอร์ลำดับความสำคัญเอาท์พุต + 10; นโยบายลดลง;
ตัวนับแพ็กเก็ต 76196 ไบต์ 201278628 คิว num 0-3 บายพาส fanout
}
}
ไฟร์วอลล์ nftables ทำงานได้ดี
อย่างไรก็ตาม เซิร์ฟเวอร์ nginx ของฉันไม่สามารถเข้าถึงได้ผ่าน IPv6 ฉันใช้เครื่องมือตรวจสอบ IPv6 ต่างๆ (เช่น https://ipv6-test.com/validate.php) และนอกจากนี้ยังมี ทดสอบคุณภาพ ไม่สามารถเข้าถึงเซิร์ฟเวอร์ผ่าน IPv6 ได้ อย่างไรก็ตาม IPv4 ทำงานได้ดี
ฉันได้รวม ฟัง [::]:80;
(ตอบกลับ ฟัง [::]:443;
คำสั่งในแต่ละเซิร์ฟเวอร์ nginx ของฉัน และ netstat -anlp |grep nginx
ให้
tcp 0 0 0.0.0.0:80 0.0.0.0:* ฟัง 48846/nginx: หลัก
tcp 0 0 0.0.0.0:443 0.0.0.0:* ฟัง 48846/nginx: หลัก
tcp 0 0 192.168.42.98:443 93.104.163.178:39001 VERBUNDEN 48847/nginx: ผู้ปฏิบัติงาน
tcp 0 0 192.168.42.98:443 93.104.163.178:39368 VERBUNDEN 48847/nginx: ผู้ปฏิบัติงาน
tcp 0 0 192.168.42.98:443 93.104.163.178:43086 VERBUNDEN 48847/nginx: ผู้ปฏิบัติงาน
tcp6 0 0 :::80 :::* ฟัง 48846/nginx: หลัก
tcp6 0 0 :::443 :::* ฟัง 48846/nginx: หลัก
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160451 48846/nginx: มาสเตอร์
ยูนิกซ์ 3 [ ] สตรีมเวอร์บุนเดน 160453 48846/nginx: มาสเตอร์
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160450 48846/nginx: หลัก
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160448 48846/nginx: มาสเตอร์
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160452 48846/nginx: มาสเตอร์
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160446 48846/nginx: หลัก
ยูนิกซ์ 3 [ ] สตรีม VERBUNDEN 160449 48846/nginx: มาสเตอร์
บนเราเตอร์ของฉัน ฉันได้เปิดใช้งาน IPv6 ด้วย
ใครบ้างมีความคิดใด ๆ ที่อาจเป็นปัญหา?