เซ็ต Squid Proxy 2.5 STABLE ให้มีการเรียก username / password ก่อนใช้อินเตอร์เน็ต

issue date 2007-09-27 time 04:45:00 by charin chookham


       ปัญหาอย่างหนึ่งที่ทำให้ Admin ปวดหัวเป็นอย่างมากก็คือผู้ใช้งานอินเตอร์เน็ตองค์กรใช้งานแบบไม่สนใจระเบียบในการใช้งานร่วมกัน อยากทำอะไรก็ทำอย่างเช่น แม้ขณะที่มีการใช้งาน traffic ค่อนข้างสูง ยังมีการเปิดใช้งาน/ดาวน์โหลด bittorrent เฉยเลย หรืออีกอย่างมีการแฝงตัวเข้าไป post ข้อความด่าคนนั้นคนนี้กว่าจะระบุตัวได้ทำเอา Admin เองก็ลำบากอยู่พอสมควร ด้วยเหตุนี้จึงต้องมีการให้ระบุตัวตนของผู้ใช้ก่อนจะให้มีการใช้งานอินเตอร์เน็ตต่อไป ซึ่งผมจะพูดต่อไปนี้ ซึ่งเดิมทีผมเองก็คือว่ายาก พอเอาเข้าจริง ๆ การเซ็ตก็มีเพียงไม่กี่ขั้นตอน ยิ่งถ้าเคยใช้ Squid มาก่อนด้วยก็ยิ่งง่ายใหญ่ มาเริ่มกันเลยดีกว่า

 

  ################squid.config###############################

 

http_port 192.168.1.1:8080
#เดิมทีเป็นแบบนี้ http_port 8080 เราจะอนุญาตให้ใช้งาน proxy เฉพาะวง LAN เท่านั้น 192.168.1.1 = เครื่อง Proxy Serv ที่เราก็กำลังเช็ตกันอยู่นี่ล่ะครับ Port ก็ 8080 เหมือนเดิม

 

 

 

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd #แก้ไขบรรทัดนี้หรือพิมพ์เพิ่มเข้าเลยก็ได้

 

 

 

#เปิดใช้งานบรรทัดต่อไปนี้โดยเอาเครื่องหมาย # ออก

 

auth_param basic childen 5
auth_param basic realm squid proxy-caching web server
auth_param basic casesensitive off

 

 

 

acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
acl mynet src 192.168.1.0/255.255.255.0 #ตรงบรรทัดนี้สำคัญนะครับ เดิมเป็นอย่างนี้เพื่อให้วง LAN เราใช้ proxy กันได้ ให้ใช้เครื่องหมาย # ปิดไว้เลยครับ ไม่ได้ใช้แล้ว หรือใครยังไม่มีก็ไม่ต้องใส่เพิ่มเข้ามา

 

acl ncsa_users proxy_auth REQUIRED #เพิ่มบรรทัดนี้เข้ามา

 

 

 

http_access allow localhost  

 

http_access allow mynet  #เดิมเป็นอย่างนี้ ให้ใช้ # ปิดไว้เลยครับ ไม่ได้ใช้แล้ว หรือใครยังไม่มีก็ไม่ต้องใส่เพิ่มเข้ามา

 

http_access allow ncsa_users #เพิ่มบรรทัดนี้เขามา

 

http_access deny all

 

###########End Config###########

 

 

จบแล้วครับ การ Config โดยทั่วไปก็มีแค่นี้ ส่วนอย่างอื่นที่มีอยู่ในไฟล์ Config ไม่ต้องไปแก้ไขอะไรมันปล่อยไว้ตามเดิม

ที่เราจะให้ User / Password ยังไง เขาใช้โปรแกรม htpasswd ในการ Generate username/password ครับ ซึ่งจะไม่เกี่ยวกับ username/password ในตัว Linux นะครับ คนละตัว ไม่ต้องกังวลเรื่องปัญหา Security ของ Linux ของเรา เริ่มแจกเลย(ทำใน command shell)

#htpasswd /etc/squid/passwd  user1  (ท่านก็เปลี่ยน user1 ให้เป็นชื่อ username ที่ท่านจะแจก หากเป็นใช้ครั้งแรกให้เพิ่ม -c ต่อท้ายคำสั่ง htpasswd ด้วย แต่ครั้งต่อไปห้ามใช้เด็ดขาดผมเจอปัญหามาแล้ว คือหากใส่ั -c ในครั้งต่อมา username/passwd จะมีแค่ตัวใหม่ที่ใส่เข้าไป)
New password :                                ตรงนี้ก็ใส่รหัสเข้าไป
 Re-type new password:                    ก็ใส่รหัสเพื่อยืนยันอีกครั้ง

ก็ทำไปเรื่อย  ๆ ตาม user/password ที่หน่วยงานท่านจะใช้ล่ะครับ

ตรงนี้ htpasswd /etc/squid/passwd จะสัมพันธ์กับการเช็ตบรรทัดนี้ของ squid.conf  
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd  ถ้าท่านเปลี่ยนเช่นเปลี่ยนเป็น /usr/squid/passwd

การ Gen User/password ก็จะต้องเปลี่ยนเป็นดังนี้ด้วยนะครับ htpasswd /usr/squid/passwd ไม่งั้นต่อให้ Login ถูกยังไงก็เข้าใช้อินเตอร์เน็ตไม่ได้

 

Tips - สามารถใช้คู่กับการจำกัด Bandwidth ด้วย delay_pools ได้ด้วยนะครับ

เพิ่ม

acl blockdownload url_regex -i .zip .rar .avi .iso .wmv .mp3 .mp4 .mpeg #แทรกตรงบรรทัด acl localhost src 127.0.0.1/255.255.255.255

 

delay_pools 1
delay_class 1 1
delay_parameters 2500/2500 #อันนี้จำกัดให้้ download ไฟล์ที่ระบุข้างต้นไม่ให้เกิน 2.5 kbps อยากเปลี่ยนก็ได้เลยเช่นจำกัดไม่เกิน 5 k ก็ใส่เป็น 5000/5000
delay_access 1 allow blockdownload

ที่นี่ก็เรียบร้อยครับ ทั้งต้อง Login ก่อนและจำกัดขนาด bandwidth ของการ Download ด้วย เจ๋งครับ

 

จะใช้อินเตอร์เน็ตก็ต้องผ่านการ Login

Login ไม่ถูกก็จะเจอแบบนี้