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

วิธีหาไฟล์ php.ini ว่าอยู่ที่ไหน

การแก้ไข Server ไม่วาจะเป็นการปรับแต่ง configuration optimize หรือ secure server...

วิธีตรวจสอบว่า Server โดนโจมตีหรือไม่

การตรวจสอบว่าเราถูกโจมตีหรือไม่ผ่านคำสั่ง netstat หลายๆ คนคงรู้วิธีใช้งาน netstat กันบ้างแล้ว...

รวบรวมคำสั่งที่จำเป็นสำหรับ Admin ใน CentOS

คำสั่ง ls : : : แสดงรายชื่อแฟ้มในห้องปัจจุบัน หรือห้องอื่น ๆ ที่ต้องการ คำสั่ง chmod : : :...

วิธีแก้ปัญหา Fatal error: Certificate verification: Not trusted บนคำสั่ง lftp

หากท่านใช้งานคำสั่ง lftp เพื่อเชื่อมต่อไปยัง FTP Server และพบว่าไม่สามารถเชื่อมต่อได้...

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

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