การเซ็ต Squid ให้ถาม username และ password ก่อนการใช้งาาน

รายละเอียดของบทความ
จัดทำเมื่อ
: 27 มิ.ย. 2548
แก้ไขล่าสุดเมื่อ
: 27 มิ.ย. 2548
ทดลองใช้งานบน
: RedHat Fedora Core 3
ผู้เขียน
: ดัดแปลงจากคำตอบกระทู้เว็บบอร์ดของคุณ nixdorf
อ้างอิง : http://www.itwizard.info/webboard/view.php?No=515


บทนำ
ในบางสถานการ์ณ มีความจำเป็นที่จะกำหนดนโยบายให้ผู้ใช้งาน Proxy Server ต้องมีการป้อน username ก่อนถึงจะใช้งานได้  การใช้ Squid มาทำเป็น caching หรือ Proxy Server ก็สามารถคอนฟิกความต้องการดังกล่าวได้ครับ

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

#htpasswd  -c filename  username

เช่น

#htpasswd -c /etc/squid/squid_passwd adisorn
New password:
Re-type new password:
Adding password for user adisorn


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


#htpasswd -c /etc/squid/squid_passwd somsak
New password:
Re-type new password:
Adding password for user somsak


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

จบครับ