Am nevoie de ajutor pentru a configura conexiunea ssl cu certificat autosemnat între Haproxy și Squid. În cazul meu - Haproxy (192.168.10.110) este un frontend și SQUID (192.168.10.149) este un backend. Fără certificat autosemnat funcționează perfect. Dar trebuie să stabilesc o conexiune sigură între frontend și backend pentru a preveni atacul pe Man la mijloc.
Așa că am creat un certificat autosemnat pe backend (SQUID). Generez 4 fișiere pe backend: squid1.pem, squid1.crt, squid1.key, squid1.csr. După aceea, copiez squid1.pem în frontend, l-am indicat în configurația Haproxy (în secțiunea backend). Dar nu merge...
Verific funcționarea Haproxy prin cerere de curl pe Haproxy:
răsuci https://ifconfig.io -v --proxy 192.168.10.110:4483
- Încercând 192.168.10.110:1383...
- Conectat la 192.168.10.110 (192.168.10.110) portul 4483 (#0)
- alocați tampon de conectare!
- Stabiliți tunelul proxy HTTP la ifconfig.io:443
*> CONECTAȚI ifconfig.io:443 HTTP/1.1
*> Gazdă: ifconfig.io:443
*> User-Agent: curl/7.77.0
*> Conexiune proxy: Keep-Alive
*>
- Proxy CONNECT a fost anulat
- Faza CONECTARE finalizată!
- Închiderea conexiunii 0
curl: (56) Proxy CONNECT a fost anulat
Fișier de configurare Haproxy:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notificare
maxconn 4096
valorile implicite ale demonului
jurnal global
opțiunea dontlognull
reîncercări 3
reexpedierea opțiunii
maxconn 2000
timeout client 30s
timeout server 30s
timeout connect 30s
implicite
frontend Frontend4483
lega 192.168.10.110:4483
modul tcp
default_backend 4483
backend 4483
modul tcp
echilibru roundrobin
opțiunea tcplog
server B1S1 192.168.10.149:4128 ssl ca-file /etc/ssl/private/squid1.pem
Fișier de conf. SQUID:
acl localnet src 192.168.10.110/32
acl SSL_ports portul 443
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
acl Safe_ports port 1025-65535 # porturi neînregistrate
acl CONNECT metoda CONECTARE
http_access permite managerul localhost
http_access manager de refuz
http_access permite localnet
http_access permite localhost
http_access deny all
http_port 192.168.10.149:4128
Pe backend tcpdump spune:
kG......HTTP/1.1 400 Solicitare greșită
Server: squid/4.15
Versiune Mime: 1.0
Data: marți, 20 iulie 2021 13:57:36 GMT
Tip de conținut: text/html;charset=utf-8
Lungimea conținutului: 3328
X-Squid-Errore: ERR_PROTOCOL_UNKNOWN 0
Variază: Accept-Limbă
Limbă de conținut: en
X-Cache: MISS de la localhost
X-Cache-Lookup: NIMIC de la localhost:4128
Prin: 1.1 localhost (calamar/4.15)
Conexiune: aproape
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
Am 2 intrebari:
Ce fac greșit, cum să o repar?
Pot genera un certificat autosemnat pe Haproxy și să le copiez pe fiecare backend (proxy SQUID)?