07 October 2015

การตั้งค่า squid สำหรับเก็บ log อย่างเดียว (no cache)

การสร้าง LAN Network ในสมัยปัจจุบันที่วงจรอินเตอร์เน็ตความเร็วสูง ผู้ดูแลระบบไม่จำเป็นต้องสร้าง Transparent proxy เหมือนในช่วงยุดคแรกๆแล้ว เพราะการทำ Transparent proxy เป็นการเพิ่มคอขวดของ I/O ของระบบ Proxy ซึ่งส่งผลให้ผู้ใช้งานใช้อินเตอร์เน็ตได้ช้าลง โดยเฉพาะเมื่อมีจำนวนผู้ใช้มากๆ

การแก้ไขปัญหาสำหรับ Linux server ที่นำมาทำเป็น firewall สามารถทำโดยหยุดการทำงานของ Transparent proxy และให้ firewall ทำหน้าที่ NAT (masqurade) ออกเพียงแบบเดียวจะซึ่งมีประสิทธิภาพมากกว่า แต่สิ่งที่หายไปคือความสามารถในการเก็บ log พื้นฐานที่ลดลง หรือ ผู้ดูแลระบบบางคนอาจจะเลือกทำ Packet log แทน ซึ่งมีจุดอ่อนที่มีปริมาณข้อมูลสูง และโครงสร้างของ packet log ไม่มีโครงสร้าง log ที่สอดคล้องกัน ทำให้การหาข้อมูลหรือการวิเคราะห์ log อาจจะทำแล้วยาก สับสน

การกลับมาใช้ squid เพื่อใช้ในการทำ log แต่ลด I/O ของระบบการทำงาน disk จึงเป็นทางเลือกที่สะดวก และทำได้ง่ายกว่ามาก โดยการกำหนดค่าใน squid.conf สามารถทำได้ง่ายๆ เพียงเพิ่ม directive ต่อไปนี้ ก่อน ACL อนุญาตตัวอื่นๆ

Example1: กรณีไม่ต้องการ cache เลย และให้ squid ทำ log อย่างเดียว
cache deny all
Example2: กรณีไม่ต้องการ cache เฉพาะบาง domain เช่น เกมออนไลน์, web ที่ทำงานไม่ปกติเมื่อมี cache
[Linux] cache deny url_regex -i "/etc/squid/allowsitesL1.txt"
[Windows] cache deny url_regex -i "C:/squid/etc/allowsitesL1.txt"
โดยเฉพาะอย่างยิ่ง ในกรณีที่ผู้ดูแลระบบเลือกที่จะไม่ cache ตัว proxy จะไม่มีการเขียนไฟล์ลงที่ disk ในส่วนของ cache directory เลย ซึ่งเป็นการประหยัด I/O ได้มาก ในระหว่างที่มีการ log การเข้าใช้งานตามปกติ

เก็บไว้เป็นทางเลือกสำหรับผู้ออกแบบ firewall ขนาดเล็กหรือขนาดกลางในราคาประหยัดนะครับ

Mr.JingJun

No comments:

Post a Comment

Give a comment ...