คู่มือการกำหนดค่าการยกเว้นพร็อกซี Glasswall (PAC)
ภาพรวม
ระหว่างการทดสอบภายในของการใช้งาน ICAP proxy ของเราบน macOS และ Windows เราพบข้อจำกัดสำคัญเกี่ยวกับวิธีจัดการการยกเว้นพร็อกซีในระดับเบราว์เซอร์และระดับระบบ:
- ข้อจำกัดจำนวนอักขระ: ทั้งสองแพลตฟอร์มกำหนดจำนวนอักขระสูงสุดสำหรับรายการยกเว้นภายในเครื่อง (ช่อง "bypass proxy for")
- ผลกระทบ: เมื่อเกินขีดจำกัดนี้ บางระบบจะย้อนกลับไปเป็นการข้ามพร็อกซีทั้งหมดโดยไม่มีการแจ้งเตือน ทำให้เกิดช่องโหว่ร้ายแรงในการบังคับใช้ policy
เพื่อหลีกเลี่ยงปัญหานี้ เราแนะนำให้จัดการการยกเว้นพร็อกซีจากส่วนกลางโดยใช้ไฟล์ PAC (proxy auto-config)แทนการพึ่งพาการกำหนดค่ารายอุปกรณ์
แนวทางที่แนะนำ: ใช้ไฟล์ PAC
ไฟล์ PAC คืออะไร?
ไฟล์ proxy auto-config (PAC) คือสคริปต์การกำหนดค่าที่ใช้ JavaScript ซึ่งกำหนดพฤติกรรมของพร็อกซีแบบไดนามิกตาม URL ของคำขอ โดเมน IP หรือพารามิเตอร์อื่น ๆ
ประโยชน์
| ประโยชน์ | คำอธิบาย |
|---|---|
| ✅ การควบคุมแบบรวมศูนย์ | ไคลเอนต์ทั้งหมดอ้างอิงไฟล์ PAC เดียวที่โฮสต์ไว้ส่วนกลาง อัปเดตเพียงครั้งเดียว และไคลเอนต์ทั้งหมดจะได้รับการเปลี่ยนแปลง |
| 🚫 ไม่มีการจำกัดจำนวนอักขระ | ไฟล์ PAC สามารถมีรายการยกเว้นได้หลายร้อยรายการและมีตรรกะที่มากกว่าสิ่งที่ทำได้ในช่อง GUI อย่างมาก |
| 🔄 การกำหนดเส้นทางแบบไดนามิก | กำหนดตรรกะแบบมีเงื่อนไข (เช่น "ใช้พร็อกซีสำหรับทุกอย่างยกเว้นโดเมนเหล่านี้") |
| 🔐 ความสมบูรณ์ของ policy | ช่วยให้มั่นใจว่าไคลเอนต์ทั้งหมดใช้ตรรกะการยกเว้นเดียวกันโดยไม่เสี่ยงต่อการข้ามพร็อกซี |
ขั้นตอนการนำไปใช้
1. สร้างไฟล์ PAC
ใช้ตัวอย่างต่อไปนี้เป็นพื้นฐาน:
function FindProxyForURL(url, host) {
// Domains to bypass proxy
if (dnsDomainIs(host, "internal.glasswall.com") ||
shExpMatch(host, "*.corpnet.glasswall.local") ||
isInNet(host, "10.0.0.0", "255.0.0.0")) {
return "DIRECT";
}
// Everything else goes through ICAP proxy
return "PROXY proxy.glasswall.com:3128";
}
ปรับแต่งรูปแบบโดเมนและ IP ของ subnet ตามต้องการ
2. โฮสต์ไฟล์ PAC
วางไว้ในตำแหน่งที่เข้าถึงได้ผ่านเครือข่าย:
- เว็บเซิร์ฟเวอร์ภายใน (เช่น
https://intranet.glasswall.com/proxy.pac) - Network share (พาธ SMB ที่เข้ากันได้กับ macOS หรือ DFS)
ตรวจสอบให้แน่ใจว่าเป็นดังนี้:
- ปลอดภัย (แนะนำให้ใช้ HTTPS)
- อ่านได้โดย endpoint ทั้งหมด
- มีการควบคุมเวอร์ชัน
3. กำหนดค่าให้ไคลเอนต์ใช้ PAC
Windows
- Use Group Policy (GPO) or Intune:
- ตั้งค่า
Automatic proxy configurationเป็น URL PAC ที่โฮสต์ไว้ - ปิดใช้งาน exclusions แบบ manual เพื่อป้องกันการใช้ขีดจำกัดจำนวนอักขระในทางที่ผิด
- ตั้งค่า
macOS
- Use your Apple MDM provider
- เปิดใช้งาน proxy auto-config ผ่าน
.mobileconfig:
- เปิดใช้งาน proxy auto-config ผ่าน
<key>ProxyAutoConfigURLString</key>
<string>https://intranet.glasswall.com/proxy.pac</string>
4. ทดสอบการกำหนดค่า
- Open a browser and verify proxy behavior:
- เข้าถึงไซต์ภายนอก (ควรกำหนดเส้นทางผ่าน ICAP).
- เข้าถึงโดเมน/IPs ที่ยกเว้นไว้ (ควรเชื่อมต่อโดยตรง).
หมายเหตุจากการทดสอบภายใน
- กรณีพิเศษที่ส่วนขยายเบราว์เซอร์หรือแอปของบุคคลที่สามใช้ กฎ proxy เพิ่มเติม อาจแทนที่ PAC file ได้
- ข้อยกเว้นที่กำหนดตายตัวในเบราว์เซอร์ (เช่น
localhost,127.0.0.1) จะยังคงถูกใช้งานอยู่
🔧 การแก้ไขปัญหา
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ไข |
|---|---|---|
| ทราฟฟิกทั้งหมดข้าม proxy | ถึงขีดจำกัดจำนวนอักขระในรายการยกเว้น | ใช้ PAC file |
| PAC file ไม่ถูกใช้งานตามที่กำหนด | URL ไม่สามารถเข้าถึงได้หรือกำหนดค่าไม่ถูกต้อง | ยืนยันว่า URL สามารถเข้าถึงได้จากเครื่องไคลเอนต์ |
| แอปไม่สนใจ PAC | แอปไม่ได้ใช้การตั้งค่า system proxy | กำหนดค่าแอปแยกต่างหากหรือบังคับใช้ผ่านกฎไฟร์วอลล์ |
สรุป
การเปลี่ยนไปใช้ไฟล์ PAC เพื่อจัดการข้อยกเว้นของพร็อกซี:
- แก้ข้อจำกัดของแพลตฟอร์ม
- รวมศูนย์การอัปเดต policy
- ลดความเสี่ยงจากการกำหนดค่าผิดพลาด
- ทำให้มั่นใจว่าการควบคุมความปลอดภัยยังคงทำงานครบถ้วน
หากต้องการความช่วยเหลือในการปรับใช้สิ่งนี้ในวงกว้าง โปรดติดต่อทีมโครงสร้างพื้นฐานด้าน IT หรือทีมวิศวกรรมความปลอดภัย