Încerc să lansez ceea ce ar trebui să fie un simplu server proxy comercial. Am cumpărat o subrețea de IP-uri și vreau să fac acele IP-uri accesibile unor clienți plătitori. Acestea sunt cerințele de bază după care merg:
- 1 port la 1 IP, conexiune statică - Terminat
- 1 port/port la 1 sau câteva acl auth ips sau user auth. - Probleme aici.
Problema este că încerc să adaug acl la fiecare port în mod individual, din păcate squid permite oricărei acl acces la toate porturile.
Acestea sunt intrările relevante din fișierul meu cfg:
acl server_one_ip src 40.70.184.218
http_access permit server_one_ip
http_access deny all
http_port 3128 nume=port_3128
http_port 3127 nume=port_3127
acl port_3128_acl myportname port_3128
acl port_3127_acl myportname port_3127
# doar redirecționați traficul, nu folosiți peers (nu?)
always_direct deny port_3128_acl server_one_ip
always_direct deny port_3127_acl
never_direct permit port_3128_acl server_one_ip
never_direct permit port_3127_acl
# 3128
cache_peer 207.202.217.26 părinte 7823 0 nume implicit numai proxy=proxy3128
cache_peer_access proxy3128 allow port_3128_acl server_one_ip
cache_peer_access proxy3128 refuză totul
# 3127
cache_peer 207.202.211.170 părinte 5991 0 nume implicit numai proxy=proxy3127
cache_peer_access proxy3127 permit port_3127_acl
cache_peer_access proxy3127 refuză tot
Deci, ca să repet, totul merge bine. Fiecare port își păstrează rutarea externă statică, problema este că nu știu cum să adaug specific acl src
liste pentru fiecare port.
Întregul meu fișier de configurare dacă ajută:
#
# Configurație minimă recomandată:
#
# Exemplu de regulă care permite accesul din rețelele locale.
# Adaptați-vă pentru a lista rețelele dvs. IP (interne) de unde navigați
# ar trebui sa fie permis
acl localnet src 10.0.0.0/8 # RFC1918 posibilă rețea internă
acl localnet src 172.16.0.0/12 # RFC1918 posibilă rețea internă
acl localnet src 192.168.0.0/16 # RFC1918 posibilă rețea internă
acl localnet src fc00::/7 # RFC 4193 interval de rețea privată locală
acl localnet src fe80::/10 # RFC 4291 link-local mașini (conectate direct)
acl server_one_ip src 40.70.184.218
acl SSL_ports portul 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 # porturi neînregistrate
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 metoda CONECTARE
#
# Configurație minimă recomandată a permisiunii de acces:
#
# Permite accesul cachemgr numai de la localhost
http_access permite managerul localhost
http_access manager de refuz
# Respinge cererile către anumite porturi nesigure
http_access deny !Safe_ports
# Interzice CONNECT la alte porturi SSL decât cele securizate
http_access deny CONNECT !SSL_ports
# Recomandăm cu tărie următoarele să nu fie comentate pentru a-i proteja pe nevinovați
# aplicații web care rulează pe serverul proxy care cred că sunt singurele
# cel care poate accesa serviciile pe „localhost” este un utilizator local
#http_access deny to_localhost
#
# INSEREȚI PROPRIILE REGULI AICI PENTRU A PERMITA ACCESUL CLIENTILOR DVS.
#
# Exemplu de regulă care permite accesul din rețelele locale.
# Adaptați localnet în secțiunea ACL pentru a lista rețelele dvs. IP (interne).
# de unde ar trebui permisă navigarea
http_access permite localnet
http_access permite localhost
http_access permit server_one_ip
# Și, în cele din urmă, refuza orice alt acces la acest proxy
http_access deny all
# Squid ascultă în mod normal portul 3128
http_port 3128 nume=port_3128
http_port 3127 nume=port_3127
nonhierarchical_direct off
acl port_3128_acl myportname port_3128
acl port_3127_acl myportname port_3127
# doar redirecționați traficul, nu folosiți peers (nu?)
always_direct deny port_3128_acl server_one_ip
always_direct deny port_3127_acl
never_direct permit port_3128_acl server_one_ip
never_direct permit port_3127_acl
# 3128
cache_peer 207.202.217.26 părinte 7823 0 nume implicit numai proxy=proxy3128
cache_peer_access proxy3128 allow port_3128_acl server_one_ip
cache_peer_access proxy3128 refuză totul
# 3127
cache_peer 207.202.211.170 părinte 5991 0 nume implicit numai proxy=proxy3127
cache_peer_access proxy3127 permit port_3127_acl
cache_peer_access proxy3127 refuză tot
# Descomentați linia de mai jos pentru a activa stocarea în cache pe disc - formatul de cale este /cygdrive/<cala completă către folderul cache>, de exemplu.
#cache_dir aufs /cygdrive/d/squid/cache 3000 16 256
# Lăsați coredumps în primul director cache
coredump_dir /var/cache/squid
# Adăugați oricare dintre propriile intrări refresh_pattern deasupra acestora.
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
dns_nameservers 8.8.8.8 208.67.222.222
max_filedescriptors 3200