ฉันกำลังพยายามเปิดตัวสิ่งที่ควรเป็นพร็อกซีเซิร์ฟเวอร์เชิงพาณิชย์อย่างง่าย ฉันได้ซื้อเครือข่ายย่อยของ IP และฉันต้องการทำให้ IP เหล่านั้นเข้าถึงได้สำหรับลูกค้าที่ชำระเงิน นี่คือข้อกำหนดพื้นฐานที่ฉันจะทำ:
- 1 พอร์ตถึง 1 IP การเชื่อมต่อแบบคงที่ - เสร็จสิ้น
- 1 พอร์ต/ช่วงพอร์ตถึง 1 หรือไม่กี่ acl auth ips หรือ user auth - ปัญหาที่นี่
ปัญหาคือฉันพยายามเพิ่ม acl ลงในแต่ละพอร์ตทีละรายการ แต่น่าเสียดายที่ squid อนุญาตให้เข้าถึง acl เดียวไปยังทุกพอร์ตได้
นี่คือรายการที่เกี่ยวข้องในไฟล์ cfg ของฉัน:
acl server_one_ip src 40.70.184.218
http_access อนุญาต server_one_ip
http_access ปฏิเสธทั้งหมด
http_port 3128 ชื่อ=พอร์ต_3128
http_port 3127 ชื่อ=พอร์ต_3127
acl port_3128_acl ชื่อพอร์ตของฉัน port_3128
acl port_3127_acl ชื่อพอร์ตของฉัน port_3127
#แค่ส่งต่อ ไม่ใช้เพื่อน(หรอ?)
always_direct ปฏิเสธ port_3128_acl server_one_ip
always_direct ปฏิเสธ port_3127_acl
never_direct อนุญาต port_3128_acl server_one_ip
never_direct อนุญาต port_3127_acl
#3128
cache_peer 207.202.217.26 parent 7823 0 ชื่อเริ่มต้นของพร็อกซีเท่านั้น = proxy3128
cache_peer_access proxy3128 อนุญาต port_3128_acl server_one_ip
cache_peer_access proxy3128 ปฏิเสธทั้งหมด
#3127
cache_peer 207.202.211.170 parent 5991 0 ชื่อเริ่มต้นของพร็อกซีเท่านั้น = proxy3127
cache_peer_access proxy3127 อนุญาต port_3127_acl
cache_peer_access proxy3127 ปฏิเสธทั้งหมด
ดังนั้นเพื่อย้ำว่าทุกอย่างทำงานได้ดี แต่ละพอร์ตคงการกำหนดเส้นทางภายนอกไว้ ปัญหาคือฉันไม่รู้ว่าจะเพิ่มเฉพาะได้อย่างไร acl src
รายการสำหรับแต่ละพอร์ต
ไฟล์ปรับแต่งทั้งหมดของฉันถ้ามันช่วย:
#
# การกำหนดค่าขั้นต่ำที่แนะนำ:
#
# กฎตัวอย่างที่อนุญาตการเข้าถึงจากเครือข่ายท้องถิ่นของคุณ
# ปรับเพื่อแสดงรายการเครือข่าย IP (ภายใน) ของคุณจากตำแหน่งที่เรียกดู
#ขออนุญาต
acl localnet src 10.0.0.0/8 # RFC1918 เครือข่ายภายในที่เป็นไปได้
acl localnet src 172.16.0.0/12 # RFC1918 เครือข่ายภายในที่เป็นไปได้
acl localnet src 192.168.0.0/16 # RFC1918 เครือข่ายภายในที่เป็นไปได้
acl localnet src fc00::/7 # RFC 4193 ช่วงเครือข่ายส่วนตัวในพื้นที่
เครื่อง acl localnet src fe80::/10 # RFC 4291 link-local (เสียบโดยตรง)
acl server_one_ip src 40.70.184.218
acl SSL_ports พอร์ต 443
acl Safe_ports พอร์ต 80 # http
acl Safe_ports พอร์ต 21 # ftp
acl Safe_ports พอร์ต 443 # https
acl Safe_ports พอร์ต 70 # โกเฟอร์
acl Safe_ports พอร์ต 210 # wais
acl Safe_ports พอร์ต 1025-65535 # พอร์ตที่ไม่ได้ลงทะเบียน
acl Safe_ports พอร์ต 280 # http-mgmt
acl Safe_ports พอร์ต 488 # gss-http
acl Safe_ports พอร์ต 591 # filemaker
acl Safe_ports พอร์ต 777 # มัลติลิง http
วิธีเชื่อมต่อ acl CONNECT
#
# การกำหนดค่าสิทธิ์การเข้าถึงขั้นต่ำที่แนะนำ:
#
# อนุญาตการเข้าถึง cachemgr จาก localhost เท่านั้น
http_access อนุญาตให้ผู้จัดการ localhost
http_access ปฏิเสธผู้จัดการ
# ปฏิเสธคำขอไปยังพอร์ตที่ไม่ปลอดภัย
http_access ปฏิเสธ !safe_ports
# ปฏิเสธการเชื่อมต่อกับพอร์ตอื่นที่ไม่ใช่พอร์ต SSL ที่ปลอดภัย
http_access ปฏิเสธการเชื่อมต่อ !SSL_ports
# เราขอแนะนำอย่างยิ่งว่าอย่าแสดงความคิดเห็นต่อไปนี้เพื่อปกป้องผู้บริสุทธิ์
# เว็บแอปพลิเคชันที่ทำงานบนพร็อกซีเซิร์ฟเวอร์ที่คิดเท่านั้น
# ผู้ที่สามารถเข้าถึงบริการบน "localhost" คือผู้ใช้ในเครื่อง
#http_access ปฏิเสธ to_localhost
#
# ใส่กฎของคุณเองที่นี่เพื่ออนุญาตให้เข้าถึงจากลูกค้าของคุณ
#
# กฎตัวอย่างที่อนุญาตการเข้าถึงจากเครือข่ายท้องถิ่นของคุณ
# ปรับ localnet ในส่วน ACL เพื่อแสดงรายการเครือข่าย IP (ภายใน) ของคุณ
# จากที่ควรอนุญาตให้เรียกดู
http_access อนุญาต localnet
http_access อนุญาต localhost
http_access อนุญาต server_one_ip
# และในที่สุดก็ปฏิเสธการเข้าถึงพร็อกซีนี้ทั้งหมด
http_access ปฏิเสธทั้งหมด
# Squid ปกติฟังพอร์ต 3128
http_port 3128 ชื่อ=พอร์ต_3128
http_port 3127 ชื่อ=พอร์ต_3127
nonhierarchical_direct ปิด
acl port_3128_acl ชื่อพอร์ตของฉัน port_3128
acl port_3127_acl ชื่อพอร์ตของฉัน port_3127
#แค่ส่งต่อ ไม่ใช้เพื่อน(หรอ?)
always_direct ปฏิเสธ port_3128_acl server_one_ip
always_direct ปฏิเสธ port_3127_acl
never_direct อนุญาต port_3128_acl server_one_ip
never_direct อนุญาต port_3127_acl
#3128
cache_peer 207.202.217.26 parent 7823 0 ชื่อเริ่มต้นของพร็อกซีเท่านั้น = proxy3128
cache_peer_access proxy3128 อนุญาต port_3128_acl server_one_ip
cache_peer_access proxy3128 ปฏิเสธทั้งหมด
#3127
cache_peer 207.202.211.170 parent 5991 0 ชื่อเริ่มต้นของพร็อกซีเท่านั้น = proxy3127
cache_peer_access proxy3127 อนุญาต port_3127_acl
cache_peer_access proxy3127 ปฏิเสธทั้งหมด
# ยกเลิกการแสดงความคิดเห็นในบรรทัดด้านล่างเพื่อเปิดใช้งานการแคชดิสก์ - รูปแบบพาธคือ /cygdrive/<พาธเต็มไปยังโฟลเดอร์แคช> เช่น
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256
# ปล่อยให้ coredumps อยู่ในแคช dir แรก
coredump_dir /var/cache/squid
# เพิ่มรายการrefresh_patternของคุณเองด้านบนเหล่านี้
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^โกเฟอร์: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
รีเฟรช_รูปแบบ 0 20% 4320
dns_nameservers 8.8.8.8 208.67.222.222
max_filedescriptors 3200