EasyZone Mikrotik Billing : Hotspot สำเร็จรูป สำหรับรา้นกาแฟ, ร้านอาหาร, รีสอร์ท, โรงแรม

การติดตั้ง proxy server ด้วยโปรแกรม squid


 
การติดตั้ง proxy server ด้วยโปรแกรม squid (11-10-2548) พิมพ์ ส่งเมล์
User Rating: / 42
แย่ดีที่สุด 
Contributed by วิภัทร -   
อังคาร, 04 ตุลาคม 2005
DHCP server Made-EASY
วิภัทร ศรุติพรหม wipat.s@psu.ac.th

เวบไซต์ที่เกี่ยวข้อง http://rd.cc.psu.ac.th และ http://opensource.psu.ac.th
คำถามต่างๆ โปรดใช้กระดานความรู้้ที่
http://opensource.psu.ac.th/index.php?option=com_simpleboard&Itemid=40

ประวัติการปรับปรุง
ครั้งที่ 1.3   11-10-2548   โดย: วิภัทร

เป็นคำแนะนำติดตั้งโปรแกรม squid เพื่อเป็น proxy server
ต้นแบบทดสอบด้วย linux fedora core 4, 3 ใช้งานภายในมหาวิทยาลัยสงขลานครินทร์

วิธีติดตั้ง proxy server ด้วยโปรแกรม squid
*** แหล่งข้อมูลต้นฉบับ squid คือ http://www.squid-cache.org

  1. ติดตั้งโปรแกรม squid ด้วยคำสั่ง
    apt-get install squid

    ในกรณีที่ใช้ yum ให้เปลี่ยนคำว่า apt-get เป็น yum ดังตัวอย่าง
    yum install squid
  2. แก้ไขให้ทำงานทุกครั้งที่บูทเครื่อง
    chkconfig squid on
  3. ตัวอย่างข้อกำหนดของระบบ proxy server
    • ติดตั้งบน server หมายเลข IP คือ 10.0.0.5
    • cache http port คือ 3128

    ให้แก้ไขแฟ้ม /etc/squid/squid.conf กำหนดค่าตัวอย่างดังนี้

    • ค้นหาตัวแปร http_port เพื่อตั้งค่าใหม่
      ตัวอย่างต้นฉบับเดิมคือ # http_port 3128
      ค่า default คือ http_port เป็น  3128 อยู่แล้ว ไม่ต้องทำอะไรอีก
      หากใช้ port อื่นเช่น 8080 ก็เปลี่ยนให้เป็น http_port 8080 0
      *** อย่าลืมเอาเครื่องหมาย # ด้านหน้า ออกด้วย
    • ค้นหาตัวแปร http_access เพื่อตั้งค่าใหม่
      ตัวอย่างต้นฉบับเดิมคือ # http_access deny all
      ค่า default คือปิดไม่อนุญาติให้ใช้เลย
      แก้ไขใหม่อนุญาติให้ใช้ได้ทั้งหมดเป็น http_access allow all
      *** อย่าลืมเอาเครื่องหมาย # ด้านหน้า ออกด้วย
  4. สั่งให้ทำงานด้วยคำสั่งว่า
    /etc/init.d/squid start
    Starting dhcpd:                                             [  OK  ]
  5. เฉพาะกรณีการทำ proxy server ในมหาวิทยาลัยสงขลานครินทร์
    ที่กำหนดต้องผ่าน cache.psu.ac.th:8080 อยู่แล้วจึงต้องแก้ไข
    ข้อมูลในแฟ้ม /etc/squid/squid.conf

    • ค้นหาตัวแปร cache_peer เพื่อตั้งค่าใหม่
      ตัวอย่างต้นฉบับเดิม ไม่ได้กำหนดค่านี้ไว้
      ให้เพิ่มเข้าไปใหม่เองด้วยบรรทัดว่า
      cache_peer cache.psu.ac.th parent 8080
    • สั่งทำงานใหม่ด้วยคำสั่งว่า
      /etc/init.d/squid reload
  6. ตัวอย่างทดสอบใช้งาน โดยตั้งค่าใน browser ให้ชี้ไปที่
    proxy server 10.0.0.5 port 3128
  7. การตั้งค่าให้ squid อนุญาติให้ไปเอาข้อมูลโดยตรงจากบาง site
    แก้ไขแฟ้ม /etc/squid/squid.conf
    ตัวอย่างอนุญาติให้ site ภายใต้โดเมน psu.ac.th คือ

    acl psu dstdomain .psu.ac.th
    always_direct allow psu
  8. ถ้าต้องการให้มีการตรวจสอบชื่อและรหัสผ่านผู้ใช้งาน ระบบ proxy
    โดยมีฐานข้อมูลบัญชีผู้ใช้และรหัสผ่านจากแฟ้มระบบ /etc/passwd
    สามารถทำได้โดยแก้ไขแฟ้ม /etc/squid/squid.conf ดังนี้

    • จากเดิมที่บรรทัดว่า http_access allow all
      ให้เปลี่ยนเป็น http_access allow password all

    • จากเดิมที่บรรทัด #acl password proxy_auth REQUIRED
      ให้ลบเครื่องหมาย # ออก กลายเป็น acl password proxy_auth REQUIRED

    • ให้แทรกเพิ่มบรรทัดว่า
      auth_param basic program /usr/lib/squid/pam_auth

      ก่อนหน้าบรรทัดเหล่านี้คือ
      auth_param basic children 5
      auth_param basic realm Squid proxy-caching web server
      auth_param basic credentialsttl 2 hours
      auth_param basic casesensitive off

    • กำหนดสิทธิ์ของแฟ้มด้วยคำสั่ง
      chmod  u+s  /usr/lib/squid/pam_auth
    • เสร็จแล้วก็ให้ reload squid ด้วยคำสั่ง
      /etc/init.d/squid reload
  9. หากไม่ต้องการใช้แฟ้ม /etc/passwd แต่ต้องการใช้ฐานข้อมูลของ IMAP server
    ให้ดำเนินการทำนองเดียวกับการจัดการเชื่อมกับ /etc/passwd
    แต่ต้องดาวน์โหลดโปรแกรมจัดการเพิ่มเติมและปรับแต่งดังนี้

    • ดาวน์โหลดโปรแกรมจาก ftp://ftp.psu.ac.th/pub/squid/squid-imap.py
      มาเก็บไว้ที่ /usr/lib/squid
    • กำหนดสิทธิ์ของแฟ้มด้วยคำสั่ง
      chmod  +x  /usr/lib/squid/squid-imap.py
    • แก้ไขแฟ้ม /usr/lib/squid/squid-imap.py
      ที่บรรทัดเดิมคือ server="127.0.0.1"
      ให้แก้ไขเป็น IMAP server ที่ตัองการตัวอย่างคือ
      server="myserver.domain"
    • ตรวจสอบแก้ไข locale อย่าให้เป็น UTF-8
      โดยการแก้ไขแฟ้ม /etc/sysconfig/i18n
      จากบรรทัดข้อความเดิม LANG="en_US.UTF-8"
      ให้ลบ .UTF-8 ออกเหลือเพียงข้อความว่า LANG="en_US"
    • แก้ไขแฟ้ม /etc/squid/squid.conf เปลี่ยนแปลงบรรทัดจากเดิม
      auth_param basic program /usr/lib/squid/pam_auth
      ให้เป็นดังนี้
      auth_param basic program /usr/lib/squid/squid-imap.py
    • เสร็จแล้วก็ให้ reload squid ด้วยคำสั่ง
      /etc/init.d/squid reload
  10. การตั้งค่าให้ squid ทำตัวเป็น transparent proxy
    ต้องมีการตั้งค่าของ router ด้วย
    เฉพาะในส่วนของ squid ให้แก้ไขแฟ้ม /etc/squid/squid.conf

    httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_uses_host_header on

    *** ไม่สามารถใช้ squid ทำ transparent proxy กับ port https (443)
         ทำได้เฉพาะ port http (80) เท่านั้น เนื่องจากข้อจำกัดทางเทคนิค
  11. ตัวอย่างการปรับแก้ไข shorewall ให้ใช้คู่กับ squid เป็น transparent proxy
    แก้ไขแฟ้ม /etc/shorewall/rules

    # Squid
    REDIRECT  loc                   3128     tcp      80,443


  by: EasyZone       วันที่ 28/05/2551 - 21:52:15