Score:1

วิธีการให้ auth ip/user|pass auth ต่อพอร์ต พร็อกซีปลาหมึก

ธง cn

ฉันกำลังพยายามเปิดตัวสิ่งที่ควรเป็นพร็อกซีเซิร์ฟเวอร์เชิงพาณิชย์อย่างง่าย ฉันได้ซื้อเครือข่ายย่อยของ IP และฉันต้องการทำให้ IP เหล่านั้นเข้าถึงได้สำหรับลูกค้าที่ชำระเงิน นี่คือข้อกำหนดพื้นฐานที่ฉันจะทำ:

  1. 1 พอร์ตถึง 1 IP การเชื่อมต่อแบบคงที่ - เสร็จสิ้น
  2. 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
djdomi avatar
za flag
ฉันขอแนะนำให้ทำให้ง่ายขึ้นและเรียกใช้ Squid 2 สำเนาแทนหากมีปัญหากับปัญหาใหม่
user728874 avatar
cn flag
@djdomi ฉันจะต้องเปิดพอร์ตเป็นพัน ๆ พอร์ต ดังนั้นน่าเสียดายที่มันไม่สามารถทำได้ :(
djdomi avatar
za flag
จากนั้นโปรดอัปเดตคำถามของคุณ ดูเหมือนว่าจะเป็นปัญหา x และ y เหตุใดคุณจึงต้องมีพอร์ต http สำหรับลูกค้าแต่ละรายในเมื่อ afaik คุณสามารถตั้งค่าผู้ใช้หรือกลุ่มและจัดตำแหน่ง acl เพื่อดึงกฎ โปรดจำไว้ว่าหากกระบวนการหนึ่งเดียวเสียชีวิต ลูกค้าทั้งหมดของคุณจะได้รับผลกระทบในเวลาเดียวกัน....
user728874 avatar
cn flag
@djdomi ฉันค่อนข้างสับสนกับคำแนะนำของคุณ ไม่มีวิธีใดที่จะมี acl ต่อพอร์ต? มีบางอย่างผิดปกติกับวิธีการถามคำถามของฉันหรือไม่?
djdomi avatar
za flag
พูดสั้น ๆ คุณกำลังพยายามแก้ไขอะไร (ปัญหา X และ Y) สำหรับการกำหนดเส้นทาง / การพร็อกซีนี้คืออะไร

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา