คอนฟิก Squid Proxy Server

ปัญหาอย่างหนึ่งที่เป็นกันทุกรายในเครือข่ายคือการใช้อินเทอร์เน็ต ไม่ว่าเราจะเพิ่มความเร็วเท่าไรดูเหมือนจะไม่เพียงพอ ใช้ไปสักพักก็เริ่มช้า

บทความนี้จอแนะนำการใช้ Proxy Server เพื่อเพิ่มประสิทธิภาพและจำกัดการใช้งานอินเทอร์เน็ต คือทุกเครื่องแทนที่จะออกอินเทอร์เน็ตกันได้อย่างอิสระ เราจะบังคับให้ต้องมาผ่าน proxy server ก่อนเสมอ ถ้าไม่ผ่านก็ใช้เน็ตไม่ได้

ประโยชน์ของการใช้ proxy server มีอยู่หลายอย่างจะขอสรุปคร่าวๆ ดังนี้

  • เมื่อมีการเรียกไฟล์เดียวกันจากอินเทอร์เน็ต เช่นรูปภาพ เมื่อคนแรกเรียกไฟล์นี้แล้ว proxy จะเก็บไฟล์นี้ไว้ในเครื่อง (cache) เมื่อคนต่อมาเรียกไฟล์เดียวกัน ก็สามารถดึงจาก proxy ได้เลย ไม่ต้องไปเรียกจากอินเทอร์เน็ตอีกครั้ง นี้ถือเป็นจุดมุ่งหมายหลักๆ เลย สำหรับ proxy server
  • เราสามารถระบุช่วงเวลาในการใช้งานได้
  • ระบุเว็บที่สามารถใช้งานได้ หรือเว็บไหนที่ห้ามไป
  • สามารถที่จะทำสถิติรายงานการใช้งาน เพื่อดูว่าเครื่องไหนใช้งานมากสุด

มีหลายโปรแกรมที่สามารถทำหน้าที่เป็น proxy server ได้ บทความนี้จะขอแนะนำการใช้ squid เพื่อติดตั้งบน Fedora Linux 8

ขั้นตอนที่ 1 – ตรวจสอบและติดตั้ง squid
ขั้นแรกตรวจสอบว่าเครื่อง server เรา ติดตั้งโปรแกรม squid หรือยัง ถ้าไม่มีต้องติดตั้งลงไป โดยไฟล์ติดตั้งที่ต้องใช้คือ

ตัวอย่างการติดตั้ง squid บน Fedora 8 (x86_64)

[root@server ~]# rpm -ivh squid-2.6.STABLE16-2.fc8.x86_64.rpm
[root@server ~]# rpm -q squid
squid-2.6.STABLE16-2.fc8
[root@server ~]#

ขั้นตอนที่ 2 – แก้ไขคอนฟิก
เราต้องเปลี่ยนแปลงคอนฟิกไฟล์ของ squid เพื่อให้ใช้งานได้ คอนฟิกที่ดีฟอลต์ที่มาตอนติดตั้งจะไม่สามารถใช้งานจากเครื่องอื่นได้ ใช้ได้แต่จากเครื่อง server ที่ติดตั้งโปรแกรมเอง (ด้วยเหตุผลทางด้านความปลอดภัย ไม่งั้นเครื่องข้างนอกจะสามารถชึ้ proxy มายังเครื่องเรา แล้ว สามารถเรียกเว็บภายในของเราได้)

ไฟล์คอนฟิกหลักของ proxy คือไฟล์ /etc/squid/squid.conf สำหรับเริ่มต้นจะขอแนะนำแก้คอนฟิกพื้นฐานให้สามารถใช้งานได้

2.1 ACCESS CONTROLS
คอนฟิกส่วนนี้จะกำหนดสิทธิในการใช้งาน proxy ว่ามาจากเครื่องไหนได้บ้าง แล้วไปเว็บไซต์ไหนได้บ้าง


# ACCESS CONTROLS
# -----------------------------------------------------------------------------
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

เพิ่ม acl อีกบรรทัดนึงต่อท้ายคอนฟิกส่วนนี้ เพื่อกำหนดเครื่องที่จะมีสิทธิใช้งาน proxy ได้

ตัวอย่างเช่น เราต้องการให้ทุกเครื่องที่อยู่ในเครื่อข่าย 192.168.1.x และ 192.168.2.x ให้สามารถใช้งาน proxy ได้ ให้เพิ่มบรรทัดตามตัวอย่างนี้



acl our_networks src 192.168.1.0/24 192.168.2.0/24
http_access allow our_networks

อีกตัวอย่างหนึ่งสมมุติว่าเราไม่ต้องการให้ผู้ใช้งานเข้าเว็บไซต์ foo.com หรือ xxx.com เราสามารถเพิ่มคอนฟิกได้ดังนี้



acl ban_websites dstdomain .foo.com .xxx.com
http_access deny ban_websites

หมายเหตุ ข้อควรระวังการเรียงลำดับของ acl ก่อนหน้าและหลัง มีผลในการอนุญาต (allow) หรือปฏิเสธ (deny) การใช้งาน

2.2 NETWORK OPTIONS
ในส่วนนี้จะกำหนดพอร์ตของ proxy ที่ใช้งาน โดยดีฟอลต์แล้ว จะใช้พอร์ต 3128 ถ้าเราจะแก้ไขก็สามารถเปลี่ยนตัวเลข 3128 ไปเป็นตัวเลขอื่นได้เลย เช่นกำหนดให้ใช้พอร์ต


# NETWORK OPTIONS
# -----------------------------------------------------------------------------
# Squid normally listens to port 3128
http_port 3128

หมายเหตุ หลังจากทำขึ้นตอนที่ 3 เพื่อเริ่มต้น squid proxy server แล้ว ทุกครั้งที่แก้ไขไฟล์คอนฟิก /etc/squid/squid.conf ต้องรันคำสั่ง service ทุกครั้งเพื่อให้ค่าคอนฟิกมีผล แนะนำให้ใช้ reload ก็เพียงพอ ไม่จำเป็นต้อง restart โปรแกรมใหม่ เพราะจะช้ามาก


[root@server squid]# service squid reload
[root@server squid]#

ขั้นตอนที่ 3 เริ่มตั้น squid proxy server
หลังจากแก้ไขคอนฟิกเรียบร้อบแล้ว ต้องใช้คำสั่ง service เพื่อเริ่มต้นทำหน้าที่เป็น squid proxy server

ตัวอย่างการเริ่มต้น squid proxy server

[root@server ~]# service squid start
init_cache_dir /var/spool/squid... Starting squid: .. [ OK ]
[root@server ~]#

ถ้าเราเพิ่งรัน squid proxy server ครั้งแรก จะมีการสร้าง cache directory ขึ้นมา โดยดีฟอลต์แล้วจะอยู่ใน /var/spool/squid/

ขั้นตอนที่ – 4 ทดสอบจากเครื่อง client
ในที่นี้จะแนะนำการทดสอบการเครื่อง client โดยใช้โปรแกรม Internet Explorer, และ Firefox โดยชี้ไปที่ proxy ที่มี ip 192.168.1.1 พอร์ต 3128

ใน Internet Explorer สามารถเข้าไปได้ที่ Tools -> Internet Options -> Connections -> LAN settings

ตัวอย่างการตั้งค่า proxy ใน Internet Explorer

ส่วนใน Mozilla Firefox สามารถเข้าไปแก้ไขคอนฟิกได้ที่ Tools -> Options -> Advanced -> Network -> Settings ->

ตัวอย่างการตั้งค่า proxy ใน Mozilla Firefox

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