*** การทำ Proxy Server อาจผิดนโยบายในการให้บริการ รวมถึงอาจไม่เป็นไปตามนโยบายการขอรับบริการจาก IDC (Internet Data Center) บทความนี้เขียนขึ้นเพื่อเป็นความรู้ และแหล่งให้ข้อมูล
 

วิธีติดตั้ง Squid (ด้วย yum) - แนะนำ

  • yum install squid

วิธีติดตั้ง Squid (ด้วย compile source)

  • cd /usr/src
  • wget http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.1.tar.gz
  • tar xvfz squid-3.2.1.tar.gz
  • cd squid-3.2.1
  • ./configure 
    กรณี Auth ด้วย Database
    ./configure --enable-basic-auth-helpers=DB

    กรณี Authen ด้วย NCSA
    ./configure --enable-basic-auth-helpers="NCSA"

    กรณีกำหนด Path เองเพิ่ม
    ./configure --prefix=/usr/local/squid
     
  • make && make install

วิธีติดตั้ง Squid (ด้วย Source RPM - CentOS)

  • cd /usr/src
  • wget http://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/source/SRPMS/squid-3.0.STABLE10-1.fc10.src.rpm
  • rpm -ivh squid-3.0.STABLE10-1.fc10.src.rpm


ตรวจสอบเวอร์ชั่นจาก
http://www.squid-cache.org/Versions/v3/3.2/

 


 

การตั้งค่า Squid

  • ตั้งให้รัน Squid ทุกครั้งเมื่อเปิดเครื่อง
chkconfig squid on
/etc/init.d/squid start
 
  • แก้ไขไฟล์ config ( squid.conf )
vi /etc/squid/squid.conf
  • การกำหนด PORT สำหรับ Proxy Server แก้ไขตามต้องการ
http_port 3128
  • ตรวจสอบ Port 3128 เปิดใช้งาน
netstat -tulpn | grep 3128
  • แก้ไข cache directory
cache_dir ufs /usr/local/squid/cache 100 16 256
  • สั่งสร้าง cache สำหรับ squid
squid -z หรือ /usr/sbin/squid -z หรือ /path/squid -z

 

การตั้งค่า Squid ให้ถาม Password ก่อนใช้งาน
Login / Authentication ( ด้วย ncsa_auth )

 

  • ค้นหา path โปรแกรม ncsa เพื่อใส่ในแทนตัวสีส้ม
rpm -ql squid | grep ncsa

/usr/lib64/squid/ncsa_auth
  • touch /etc/squid/squid_passwd
  • chmod o+r /etc/squid/squid_passwd
  • htpasswd /etc/squid/squid_passwd username
New password:ระบุรหัสผ่าน
Re-type new password:ยืนยันรหัสผ่าน
 
  • คัดล๊อค COPY ข้อมูลด้านล่างนี้ใส่ใน squid.conf (ตัวแดงคือสิ่งที่เขียนเพิ่ม)
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_passwd
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

acl ncsa_users proxy_auth REQUIRED


http_access allow ncsa_users


acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1

acl localnet src 10.0.0.0/8     
acl localnet src 172.16.0.0/12  
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7       
acl localnet src fe80::/10    

acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT


http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access deny all

http_port
3128

hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|?) 0     0%      0
refresh_pattern .               0       20%     4320
  • /etc/init.d/squid restart

 


ค่าอื่นๆ จด
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users
auth_param basic childred 5
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
auth_param basic realm Authen
#auth_param basic realm Squid proxy-caching web server
#authenticate_ttl 1 hour
#authenticate_ip_ttl 160 seconds

 

 

การตั้งค่า Squid ให้ถาม Password ก่อนใช้งาน
Login / Authentication ( ด้วย Database Auth )

 

  • ตรวจสอบการเชื่อมต่อ DB
/usr/local/squid/libexec/squid_db_auth --user dbuser --password dbpassword --plaintext --persist
  • เพิ่มข้อมูลเหล่านี้ในไฟล์ squid.conf (หรือไว้ล่างสุด)
auth_param basic program /usr/local/squid/libexec/squid_db_auth --user dbuser --password dbpassword --plaintext --persist
auth_param basic children 5
auth_param basic realm Web-Proxy
auth_param basic credentialsttl 1 minute
auth_param basic casesensitive off

acl db-auth proxy_auth REQUIRED
http_access allow auth_user

 


 

การตั้งค่า Firewall

  • กรณีใช้ IPTABLE ( แก้ไข PORT และ Interfaces ให้ตรง )
iptables -A INPUT -p tcp --dport 3128 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
  • กรณีใช้ APF
vi /etc/apf/conf.apf

ทำการเพิ่ม rule ต่อไปนี้
  • IG_TCP_CPORTS="3128"
/etc/init.d/apf restart
 

การปิดระบบ Cache ของ Squid

  • เพิ่ม ใน squid.conf
cache deny all
cache_dir null /tmp

เพิ่มเติม คลิกที่นี่ 

 

reference :
http://www.ireallyhost.com/kb/server/92
http://www.cyberciti.biz/tips/linux-unix-squid-proxy-server-authentication.html
 

ไอเรียลลี่โฮส
สำหรับการสนับสนุน และช่วยเหลือ
http://www.ireallyhost.com/support
ข้อกำหนดในการเผยแพร่บทความ ข่าวสาร
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com