Score:1

วิธีแก้ไขชื่อโฮสต์ระยะไกลผ่าน DNS เมื่อใช้ Nginx และ ModSecurity

ธง br

คำถาม mod_security กับ OWASP CRS: กฎที่กำหนดเองสำหรับรายการที่อนุญาตพิเศษของ googlebot ให้กฎต่อไปนี้เป็นคำตอบในการตรวจสอบชื่อโฮสต์ของไคลเอ็นต์:

SecRule REMOTE_HOST â@rx google(bot|)\.com$â âid:50000,nolog,allowâ

กฎนี้มีไว้เพื่อใช้กับ ModSecurity กับ Apache และจำเป็นต้องมีคำสั่ง ชื่อโฮสต์เปิดการค้นหา กำหนดค่าบน Apache เดอะ คู่มือ MODSECURITY พูดว่า:

REMOTE_HOST
หากคำสั่ง Apache HostnameLookups ถูกตั้งค่าเป็นเปิด ตัวแปรนี้จะเก็บชื่อโฮสต์ระยะไกลที่แก้ไขผ่าน DNS หากกำหนดคำสั่งเป็นปิด ตัวแปรนี้จะเก็บ IP ระยะไกล ที่อยู่ (เหมือนกับ REMOTE_ADDR) การใช้งานที่เป็นไปได้สำหรับตัวแปรนี้ ได้แก่ การปฏิเสธโฮสต์ไคลเอนต์ที่รู้จักไม่ดีหรือการบล็อกเครือข่าย หรือในทางกลับกัน อนุญาตให้โฮสต์ที่ได้รับอนุญาตใน

เมื่อใช้ Nginx เป็น reverse proxy โดยไม่มี Apache มีวิธีที่จะทำ REMOTE_HOST ส่งคืนชื่อโฮสต์ที่แก้ไขผ่าน DNS หรือไม่

Score:0
ธง cz

ที่อยู่ IP ระยะไกลอยู่ในตัวแปร nginx แล้ว $remote_addr และตัวแปร ModSecurity REMOTE_ADDR. คู่มืออ้างอิงกล่าวว่า:

REMOTE_ADDR

ตัวแปรนี้เก็บที่อยู่ IP ของไคลเอนต์ระยะไกล

SecRule REMOTE_ADDR "@ipMatch 192.168.1.101" "id:35"

คุณควรใช้ REMOTE_ADDR ที่นี่ (และผู้ใช้ Apache ก็ควรทำเช่นกัน)

Ronaldo avatar
br flag
ขอบคุณ ไมเคิล แฮมป์ตัน แต่ฉันต้องการ DNS ไม่ใช่ที่อยู่ IP ฉันได้รับที่อยู่ IP แล้วเนื่องจากไม่มีตัวเลือก `HostnameLookups` บน Nginx
Michael Hampton avatar
cz flag
@Ronaldo ฉันคิดว่าโดย "the DNS" คุณหมายถึง _hostname_ จริงหรือ เห็นได้ชัดว่าฉันพลาดส่วนสุดท้ายในโพสต์ของคุณ ฉันคิดว่าสิ่งนี้สามารถทำได้โดยการแยก Lua ออกเพื่อทำการค้นหา DNS และดำเนินการแบบเลือก (คุณไม่สามารถทำการค้นหาชื่อโฮสต์ในทุกคำขอได้ เพราะมันจะทำลายประสิทธิภาพของคุณโดยสิ้นเชิง) ฉันจะดูว่าฉันสามารถเขียนอะไรในภายหลัง
Ronaldo avatar
br flag
ฉันรู้สึกทราบซึ้ง. แต่ก่อนที่คุณจะพยายามเขียนอะไรสักอย่าง คุณช่วยบอกฉันได้ไหมว่ามีตัวเลือกที่ดีกว่าในการเพิ่ม Google bots ในรายการที่อนุญาตพิเศษหรือไม่? ฉันเป็นมือใหม่เมื่อพูดถึง Nginx และ ModSecurity และฉันอาจขาดการกำหนดค่าพื้นฐานบางอย่างไป ฉันถามเกี่ยวกับการรับชื่อโฮสต์เพราะเป็นวิธีเดียวที่ฉันสามารถหาได้บนอินเทอร์เน็ตและเห็นได้ชัดว่ามันใช้ไม่ได้อีกต่อไป (อย่างที่คุณพูด การค้นหาชื่อโฮสต์เป็นตัวทำลายประสิทธิภาพ)
Michael Hampton avatar
cz flag
@Ronaldo ไม่จริง แม้แต่ Google ก็ไม่มีวิธีแก้ปัญหาที่ดีกว่านี้ในเอกสารเกี่ยวกับ [การยืนยัน Googlebot](https://developers.google.com/search/docs/advanced/crawling/verifying-googlebot) การค้นหาต้องใช้เวลา แต่ไม่จำเป็นต้องดำเนินการสำหรับคำขอใดๆ ที่ไม่มี Googlebot ในสตริง User-Agent และฉันไม่สนใจที่จะให้บอทรอ
Ronaldo avatar
br flag
เข้าใจแล้ว. ดังนั้น แนวคิดคือการตรวจสอบว่ามี Googlebot ในสตริง User-Agent หรือไม่ จากนั้นจึงตรวจสอบชื่อโฮสต์เท่านั้น
Ronaldo avatar
br flag
สวัสดี ไมเคิล แฮมป์ตัน ฉันได้เรียนรู้วิธีข้ามกฎหากไม่ตรงกับเกณฑ์ (หาก User-Agent ไม่ใช่ google) ตอนนี้ฉันจำเป็นต้องรู้วิธีรับชื่อโฮสต์จาก IP ของคำขอ คุณช่วยบอกเบาะแสเกี่ยวกับสคริปต์ Lua ที่คุณพูดถึงได้ไหม

โพสต์คำตอบ

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