Puncte:1

Tunel HTTPS transparent folosind squid cu filtrare SNI

drapel cn

Cerintele mele sunt:

  1. Proxy-ul ar trebui să fie transparent.
  2. Ar trebui să pot filtra site-urile web după numele de domeniu.
  3. fac nu doriți să decriptați traficul. Caut o soluție bazată pe sniffing SNI -- fără instalarea de certificate pe clienți.

Există o mulțime de răspunsuri, dar sunt fie incorecte (pretinzând că trebuie să decriptați traficul pentru a face acest lucru), fie incomplete.

Puncte:2
drapel cn

Modul de a face acest lucru este să utilizați caracteristica ssl peek introdusă în Squid 3.5. Vedea Aici pentru o explicație detaliată. Rețineți că va trebui să fi compilat cu oricare --cu-gnutls sau --cu-openssl (Verifica calmar -v). Unele distribuții le opresc.

Pe scurt, configurația de calmar relevantă arată astfel.

acl denylist_ssl ssl::server_name google.com # NU dstdomain
acl step1 at_step SslBump1
ssl_bump peek pasul 1
ssl_bump splice !denylist_ssl # permiteți tot ce nu este în denylist
ssl_bump termina totul # blochează orice altceva
https_port 3129 intercept ssl-bump cert=/etc/squid/dummy.pem

(Deoparte: nu sunt sigur de ce trebuie să aruncăm o privire doar la pasul 1 și nu la pasul 2, având în vedere că pasul 2 implică doar primirea certificatului de server. Documentele nu explică deloc acest lucru. Utilizarea ssl_bump peek all așa cum recomandă ei, face ca acest lucru să nu mai funcționeze complet).

Și apoi dansează portul obișnuit de redirecționare de la 443 la 3129 folosind iptables (sau pune squid să asculte direct pe 443 dacă preferi).

-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 3129

Puteți folosi orice certificat pentru manechin, de fapt nu îl folosim niciodată (pentru că nu decriptăm traficul).

Ceva de genul acesta funcționează.

openssl req -new -newkey rsa:4096 -sha256 -days 365 -nodes -x509 -keyout dummy.pem -out dummy.pem

Surse:

[1] https://unix.stackexchange.com/questions/613359/setting-up-squid-transparent-proxy-with-ssl-bumping-on-debian-10

[2] https://web.archive.org/web/20210128152111/https://www.cammckenzie.com/blog/index.php/2018/07/19/squid-https-interception-and-filtering-without-client- certificate/

[3] https://wiki.squid-cache.org/Features/SslPeekAndSplice

Ginnungagap avatar
drapel gu
„unele distribuții” este de fapt mai aproape de „majoritatea distribuțiilor”, cele bazate pe Debian toate le opresc și IIRC, RHEL și derivatele o fac și ele. Asta lasă în mare parte distribuții de nișă pentru a le furniza, Alpine fiind poate cea mai populară distribuție care o oferă, având în vedere utilizarea sa în containere.
xrisk avatar
drapel cn
@Ginnungagap Eu rulez CentOS 7.9 și calmarul meu vine cu openssl.
Ginnungagap avatar
drapel gu
Ah, deci nu mi-am amintit corect, multumesc pentru informatii :)
Rafael avatar
drapel cn
Ar putea fi de ajutor și https://docs.diladele.com/tutorials/transparent_proxy_debian/index.html

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.