ติดตั้ง 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 article helpful?

Related Articles