ติดตั้ง Proxy Server โดย Squid บน CentOs

Proxy Server คืออะไร


ในการเรียกใช้ข้อมูลผ่านระบบ World Wide Web (WWW) โดยปกติ ข้อมูลจะถูกเรียกมาจากเครื่องแม่ข่ายที่ให้บริการโดยตรง ซึ่งจะพบว่า เมื่อมีผู้ใช้หลายๆ ราย เรียกใช้ข้อมูลเดียวกัน ข้อมูลจะถูกส่งผ่านเครือข่ายอินเทอร์เน็ตมาให้กับผู้ใช้แต่ละราย โดยเป็นข้อมูลที่ซ้ำๆ กัน อันจะทำให้สิ้นเปลืองทั้งเวลาที่ผู้ใช้ทุกคนจะต้องรอคอยการเรียกข้อมูลดังกล่าวเป็นเวลานาน และยังเป็นการใช้งานช่องสื่อสาร (bandwidth) ซึ่งมีอยู่อย่างจำกัด และมีราคาแพงมาก ไปโดยเปล่าประโยชน์


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


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


เรามาลองติดตั้งกันเลยดีกว่าครับในที่นี้เราจะติดตั้ง Squid เป็น Proxy Server นะครับ

yum install squid


ตั้งค่าหน่อยครับ

nano /etc/squid/squid.conf


เพิ่มบรรทัด

acl our_networks src all

http_access allow our_networks

 

visible_hostname 192.168.2.1 (ip หรือชื่อ)


save แล้วก็ปิดไปเลยครับ

chkconfig squid on

/etc/init.d/squid start


ตรวจสอบว่า port เปิดแล้ว *3128 คือ defult

netstat -tulpn | grep 3128

 

tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 20653/(squid)


เสร็จแล้วครับ อย่าลืม เปิด firewall สำหรับ port ที่ ทำ proxy ด้วยนะครับ


เพื่อป้องกัน คนอื่นมาแอบใช้ proxy ของเรา เราก็ต้องใส่รหัสผ่านไปด้วยครับ


ขั้นตอนการเซ็ต


1. สร้างไฟล์ทีใช้เก็บ username พร้อมกับเพิ่ม username ด้วยคำสั่ง

htpasswd -c /etc/squid/squid_passwd username


และถ้าต้องการเพิ่ม username คนอื่นเข้าไปอีก ก็ใช้คำสั่งเดิมโดยไม่ต้องใส่ -c ดังนี้ :

htpasswd  /etc/squid/squid_passwd user2


2. กำหนด permission ของไฟล์ username ที่สร้างขึ้นดังนี้

chmod o+r /etc/squid/squid_passwd


3. ค้นห้าโปรแกรมที่ใช้ในการตรวจสอบ username ที่ชื่อว่า ncsa_auth ด้วยคำสั่งต่อไปนี้ :

rpm -ql squid | grep ncsa

 

/usr/lib/squid/ncsa_auth


4. แก้ไขคอนฟิกของ squid ในไฟล์ /etc/squid/squid.conf  โดยให้หาหัวข้อ #TAG : auth_param และหาข้อความย่อยของหัวข้อนี้ที่ว่า

#Recommended minimum configuration:


แล้วให้เพิ่มข้อความสำหรับสั่งให้มีการตรวจสอบ username ไว้ข้างล่างสุดของชุดคำสั่ง auth_param ดังนี้

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd


5. ในไฟล์ /etc/squid/squid.conf ให้ค้นหาคำว่า acl our_networks src และ ใต้ บรรทัดนี้ (ติดกัน) ให้แทรกคำสั่ง acl หนึ่งบรรทัดดังนี้ :

acl ncsa_users proxy_auth REQUIRED


6. ในไฟล์ /etc/squid/squid.conf ให้ค้นหาคำว่า http_access allow our_networks และข้างบนบรรทัดนี้ให้ป้อนข้อความว่า

http_access allow ncsa_users


7. ทำการ restart service ของ squid

service squid restart

Was this answer helpful?

 Print this Article

Also Read

ติดตั้ง Mod_Evasive เพื่อป้องกัน DDOS Attack

ssh เข้า root แล้วไปที่ # cd /usr/local/directadmin/custombuild # wget...

การเพิ่มเวลาการทำงานให้กับ php

บางครั้งคุณต้อง Upload File ที่มีขนาดใหญ่ และพบปัญหาหลุดระหว่างการ Upload File ไปยังเว็บไซต์...

วิธีตรวจสอบ PHP Version

การตรวจสอบ PHP Version คือการตรวจสอบข้อกำหนดของ PHP Version ที่เราให้บริการนั้นตรงกับ Scrip...

การติดตั้ง Network Time Protocol (NTP)

เพื่อให้ข้อมูลจราจรมีความถูกต้องและนำมาใช้ประโยชน์ได้จริงตรงตาม พรบ คอมพิวเตอร์ ปี 2550...

การคัดลอก Email ระหว่าง IMAP Server

สำหรับท่านที่ประสบปัญหาการโอนย้าย Email จาก Server ที่มี Mail Server ต่างกันหรือ Control Panel...