[megoldva] Squid4 https

Üdv,

CentOS8 Stream alatt squid 4.15-ben nem működik a https kezelése(?).

acl CONNECT method CONNECT

...

acl enged dstdomain .google.com .origo.hu

http_access allow enged localnet
http_access allow CONNECT enged localnet
http_access deny all

...

Erre http-n a .google.com .origo.hu kienged, minden mást tilt. Ez ok.

Viszont https-n mindenhova kienged. Mi a hiba a konfigban?

Squid3-ban még működött ez.

Hozzászólások

A teljes configot nem tudnád feltolni egy pastebin-re esetleg ? (kifilterezve a kényes részeket természetesen)

Simán lehet hogy valahol valamelyik acl szabály felülír valamit ^^ Egészében kellene látni.

Az alap konfig, de itt van:

acl localnet src 0.0.0.1-0.255.255.255	# RFC 1122 "this" network (LAN)
acl localnet src 10.0.0.0/8		# RFC 1918 local private network (LAN)
acl localnet src 100.64.0.0/10		# RFC 6598 shared address space (CGN)
acl localnet src 169.254.0.0/16 	# RFC 3927 link-local (directly plugged) machines
acl localnet src 172.16.0.0/12		# RFC 1918 local private network (LAN)
acl localnet src 192.168.0.0/16		# RFC 1918 local private network (LAN)
acl localnet src fc00::/7       	# RFC 4193 local private network range
acl localnet src fe80::/10      	# RFC 4291 link-local (directly plugged) machines

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
acl engedett dstdomain .google.com .origo.hu



http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# Only allow cachemgr access from localhost
http_access allow localhost manager
http_access deny manager


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

http_access allow engedett localnet
http_access allow CONNECT engedett localnet


# And finally deny all other access to this proxy
http_access deny all

##########################################################



# Squid normally listens to port 3128
http_port 3128

# Leave coredumps in the first cache dir
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
 

Ez csak egy erős tipp,de :

http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

^^ Ez jóval előbb van mint az acl-es rész amiben tiltassz domainre, nem emlékszem pontosan, de mintha ilyen esetben a squid nem a legutolsó részt veszi figyelembe, hanem a legelső acl részt amivel találkozik ^^ találkozik

találkozik ugye ezzel hogy http_access deny mindenre kivéve !SSL_ports -> és mivel https innentől át is engedte.

De fixme. Régen volt már squid.

Rakd az acl tiltási listád után ezt a két sort és utána nézd meg, hátha.

http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

 

Ez a két sor enged mindent, ami nincs a Safe_ports és az SSL_ports-ban definiálva.

márpedig a 443 biztosan ott van by default.

Semmi változás:

* ha kikommentezem a két sort, akkor is

* ha a saját szabályom után teszem, akkor is.

:)

 

De ezek tiltó szabályok. Épp ez a baj, hogy a https mindenhova működik. Ezekre a szabályokra nem illeszkedik egyik https kérés sem, tehát ezeken tovább megy:

http_access deny !Safe_ports          # ez a nem biztonságos portokat tiltja

http_access deny CONNECT !SSL_ports   # ez a https (CONNECT) és nem ssl portokat tiltja


Tiltó szabály, de ott van a !SSL_ports -> itt ugye a ! jel ami azt jelenti hogy "kivéve ami SSL_ports" ^^

A squid deny szabályaiba nem látiok bele, de mivel említetted hogy felcserélted a sorrendet, akkor ez nem sorrendből adódó cucc lesz.

Valamelyik ACL felülírja a másikat, ez szinte 100%.

szerk.: -- bocs, ez hülyeség volt. 

Így van. Pontosabban szekvenciálisan hajtja végre a szabályokat. Ha van illeszkedés az adott szabályra, akkor végrehajtja. Ha nincs illeszkedés, akkor megy tovább.

Ezért van a minta konfigban is, hogy az utolsó szabály ez legyen: 

http_access deny all

(Persze ez függ a default policy-tól, hogy alapvetően tiltunk v. engedünk mindent)

Szerkesztve: 2022. 02. 27., v – 18:41

Olyan, mintha a CONNECT method-ot figyelmen kívül hagyná a squid... vagy nem ezzel épül fel a https kapcsolat..?

Persze, hogy működik, csak kliens oldalon nem volt beállítva a https proxy.

A lynx-el teszteltem és csak ez volt beállítva:

export http_proxy=http://192.168.1.20:3128

# de ez is kellett volna   :)
export https_proxy=http://192.168.1.20:3128

Most működik. Bocs a bénázásomért! :)