การกำหนด access list ใน Squid Proxy Server ตอนที่ 2

ในตอนที่สองนี้จะอธิบายดีฟอลต์คอนฟิก acl ที่ติดตั้งมากับ Fedora 10 โดยจะแยกเป็นส่วนๆ พร้อมทั้งแนะนำวิธีการแก้ไขคอนฟิกและการ reload เซอร์วิสหลังจากการแก้ไข

ดีฟอลต์คอนฟิก acl ของ Squid เวอร์ชั่น squid-3.0.STABLE10 ที่ติดตั้งมากับ Fedora 10 จะแตกต่างจากเวอร์ชั่นก่อนๆ คือ อนุญาตเครื่องไคลเอนต์ที่มี ip address เป็น private  (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) มีสิทธิใช้ proxy ซี่งแนะนำให้มีการแก้ไขก่อนนำไปใช้งานจริง


อนุญาตให้ใช้งานและจัดการเกี่ยวกับ cache_object ได้จากในเครื่องที่ติดตั้ง (localhost)

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

http_access allow manager localhost
http_access deny manager
http_access allow localhost

อนุญาตเครื่องไคลเอนต์ที่มี ip address เป็น private สามารถใช้งานได้

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

http_access allow localnet

แนะนำให้ปิด (comment) ทั้งสี่บรรทัด ด้านบน แล้วค่อยกำหนด ip address ของไคลเอนต์ที่มีสิทธิใช้งาน proxy ได้อีกที

ปิดการอนุญาตเครื่องไคลเอนต์ที่มี ip address เป็น private

#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network

#http_access allow localnet

ปฏิเสธการเชื่อมต่อโดยใช้พอร์ตของเว็บไซต์ ที่ไม่ใช่พอร์ต Safe_ports

เบอร์พอร์ต Safe_ports มีดังนี้ 80, 21, 443, 70, 210, 280, 488, 597, 777, 1025-65535

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

http_access deny !Safe_ports

ปฏิเสธการเชื่อมต่อแบบ SSL ไปยังพอร์ตที่ไม่ใช่พอร์ตเบอร์ 443

acl SSL_ports port 443
acl CONNECT method CONNECT

http_access deny CONNECT !SSL_ports

ปฏิเสธการใช้งานอื่นๆ ที่ไม่ match จาก acl ที่กำหนดไว้

http_access deny all

วิธีการแก้ไขไฟล์คอนฟิก /etc/squid/squid.conf

เพื่อสะดวกในการอ้างอิงภายหลัง การแก้ไขเพิ่มเติม acl ทั้งในส่วนกำหนดชื่อ aclname และการอนุญาตหรือปฏิเสธ ในไฟล์ /etc/squid/squid.conf ให้แก้ไขใต้บรรทัด ที่มีคำว่า

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

หลังจากแก้ไขไฟล์คอนฟิกของ squid ต้องใช้คำสั่ง service reload เซอร์วิส เพื่อให้คอนฟิกใหม่มีผล

[root@proxy ~]# service squid reload

หากมีข้อผิดพลาดในคอนฟิก จะมี error ฟ้องขึ้นมา ต้องแก้ไขให้ถูกต้อง คอนฟิกใหม่ถึงจะมีผล

ตัวอย่างการกำหนด ip address ผิดในไฟล์คอนฟิก

[root@proxy ~]# service squid reload
2009/01/17 12:58:36| aclParseIpData: Bad host/IP: '192.168.1.02-'
FATAL: Bungled squid.conf line 643: acl acl_client1 src 192.168.1.02-
Squid Cache (Version 3.0.STABLE10): Terminated abnormally.
CPU Usage: 0.005 seconds = 0.001 user + 0.004 sys
Maximum Resident Size: 0 KB
Page faults with physical i/o: 0

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.