เก็บข้อมูลการใช้เว็บผ่าน Linux Router ด้วย Squid Transparent Proxy

ด้วยกฎหมาย พรบ. ที่เริ่มมีผลบังคับ ให้เก็บข้อมูลการใช้เว็บอินเตอร์เน็ต ว่าเป็นใครใช้ เข้าเว็บไหน เมื่อไร

ถ้าเป็นเครื่องที่เราสามารถดูแลได้ วิธีหนึ่งที่ทำได้คือ คอนฟิก Proxy ใน ฺBrowser ของแต่ละเครื่องที่จะใช้อินเตอร์เน็ต ชี้ไปยัง Proxy Server ที่ทำหน้าที่เก็บข้อมูลการใช้งาน

แต่ถ้าเราไม่สามารถควบคุมดูแลได้ หรือเครื่องที่ใช้งานมีการเปลี่ยนแปลงตลอดเวลา เช่นให้บริการอินเตอร์เน็ต สำหรับผู้มาติดต่องาน

ถ้าเป็นแบบนี้ แนะนำให้คอนฟิก Transparent Proxy บน Linux Router เพื่อให้ทำหน้าที่เก็บข้อมูลการใช้เว็บโดยอัตโนมัติ

ระบบทดสอบ

  • Linux Router ติดตั้ง Squid มีพอร์ต LAN สองพอร์ต eth0, eth1
  • เครื่องผู้ใช้งานทั้งหมดต่อพอร์ต eth0 ของ Linux Router
  • พอร์ต eth1 ของ Linux Router ต่อไปยังอินเตอร์เน็ต

Redirect Web Traffic ให้เข้าไปใน Proxy Server

เริ่มแรกต้องบังคับให้การใช้เว็บอินเตอร์เน็ตทั้งหมดต้องผ่าน Linux Router เข้าพอร์ต eth0 แล้วออกอินเตอร์เน็ตทางพอร์ต eth1

ถ้าเราต้องการให้การใช้เว็บ (TCP Port 80) ทั้งหมด เข้าพอร์ต eth0 ต้องผ่านเข้าไปใน Proxy Server (TCP Port 3128) ก่อน เพื่อให้เก็บข้อมูลการใช้งาน สามารถใช้คำสั่ง iptables ตามตัวอย่าง

[root@router ~]# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

คอนฟิก Squid ให้ทำหน้าที่เป็น Transparent Proxy

อย่างที่สองคือต้องแก้ไขไฟล์คอนฟิก Squid ซึ่งอยู่ใน /etc/squid/squid.conf

การแก้ไขคอนฟิกขึ้นอยู่กับเวอร์ชั่นของ Squid ที่ติดตั้ง

คำแนะนำ : เพื่อคุณสมบัติและประสิทธิภาพที่ดีกว่า แนะนำให้ใช้เวอร์ชั่นใหม่ล่าสุดที่สามารถติดตั้งได้

เวอร์ชั่นเก่ากว่า 2.6

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

เวอร์ชั่น 2.6 – 3.0

http_port 3128 transparent

ตั้งแต่เวอร์ชั่น 3.1

http_port 3128 intercept

หรือ

http_port 3128 transparent

หลังการแก้ไขคอนฟิกไฟล์ของ squid ต้องรีสตาร์ตเซอร์วิส squid

[root@router ~]# service squid restart

สามารถดูข้อมูลการใช้งานเว็บได้ในไฟล์ /var/log/squid/access.log

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.