*** การทำ 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:ยืนยันรหัสผ่าน
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
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
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
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 ต่อไปนี้
ทำการเพิ่ม rule ต่อไปนี้
- IG_TCP_CPORTS="3128"
/etc/init.d/apf restart
การปิดระบบ Cache ของ Squid
- เพิ่ม ใน squid.conf
reference :
http://www.ireallyhost.com/kb/server/92
http://www.cyberciti.biz/tips/linux-unix-squid-proxy-server-authentication.html
ข้อกำหนดในการเผยแพร่บทความ ข่าวสาร
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com
** บทความนี้มีลิขสิทธิ์ ไม่อนุญาติให้คัดลอก ทำซ้ำ ดัดแปลงก่อนได้รับอนุญาต **
โปรดระบุแหล่งที่มา บริษัท เอ็กซ์ตร้า คอร์ปอเรชั่น จำกัด / https://www.ireallyhost.com
ทั่วไป