SQUID REVERSE PROXY PER PIU' WEBSERVER
-
Ciao a tutti,
io ho configurato squid reverse proxy su un firewall pfsense 2.3.3, ho due webserver es. server1.dominio.it con ip 192.168.x.x e server2.dominio.it con ip 192.168.x.y, entrambi che lavorano con la porta 80 (anche se ho provato a differenziare le porte in 80 il primo e 81 il secondo).
Allego un PDF con gli screenshot della configurazione.
Ho creato 2 dns server1.dominio.it e server2.dominio.it che puntano entrambi all'indirizzo IP WAN del firewall.
Se digito il primo dns server1.dominio.it funziona tutto perfettamente, mentre se digito il secondo dns server2.dominio.it mi risponde comunque il primo webserver e non il secondo.
Non riesco a capire quale configurazione è sbagliata.
Se qualcuno ha già risolto un caso analogo li sarei grato se potesse darmi una mano.
Grazie.
![FIREWALL CONFIGURATION-page-001.jpg](/public/imported_attachments/1/FIREWALL CONFIGURATION-page-001.jpg)
![FIREWALL CONFIGURATION-page-001.jpg_thumb](/public/imported_attachments/1/FIREWALL CONFIGURATION-page-001.jpg_thumb)
![FIREWALL CONFIGURATION-page-002.jpg](/public/imported_attachments/1/FIREWALL CONFIGURATION-page-002.jpg)
![FIREWALL CONFIGURATION-page-002.jpg_thumb](/public/imported_attachments/1/FIREWALL CONFIGURATION-page-002.jpg_thumb) -
mmmm non ho ancora usato squid-reverse proxy per questo lavoro, a cui ho sempre preferito usare l' HAProxy.
Quì un link sul come configurarlo.:
https://www.servethehome.com/how-to-haproxy-ha-load-balance-a-web-server-with-a-pfsense-sg-4860/
L'unica rottura dei reverse proxy, e che poi nei log di apache o iis, delle macchine a cui punta, ti trovi sempre l'ip del proxy e non quelle dei client remoti, per cui a volte è difficile fare dell'hardening.
In questi casi un IDS (snort o suricata) è quesi indispendabile per tenere fuori almeno i rompiscatole. -
mmmm non ho ancora usato squid-reverse proxy per questo lavoro, a cui ho sempre preferito usare l' HAProxy.
Quì un link sul come configurarlo.:
https://www.servethehome.com/how-to-haproxy-ha-load-balance-a-web-server-with-a-pfsense-sg-4860/
L'unica rottura dei reverse proxy, e che poi nei log di apache o iis, delle macchine a cui punta, ti trovi sempre l'ip del proxy e non quelle dei client remoti, per cui a volte è difficile fare dell'hardening.
In questi casi un IDS (snort o suricata) è quesi indispendabile per tenere fuori almeno i rompiscatole.per il reverse proxy incolla gli screenshot di quello che hai fatto,
per avere nei log dei backend l'ip del client basta far loggare la variabile di ambiente X-Forwarded-For che tradotto per apache:
LogFormat "%{X-Forwarded-For}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %V %T %D" proxy
SetEnvIf X-Forwarded-For "^......." forwarded
CustomLog logs/www.dominio.it.access.log combined env=!forwarded
CustomLog logs/www.dominio.it.access.log proxy env=forwarded -
per avere nei log dei backend l'ip del client basta far loggare la variabile di ambiente X-Forwarded-For che tradotto per apache:
mmm… non so se sia così facile nel caso di HAProxy.
Quando lo configuri con il frontend in type ssl/https (tcp mode), non c'è il flag per attivare l' X-Forward-For.
Quello esiste solo per il frontend su http in chiaro....
.... almeno per quello che ne so io. -
per avere nei log dei backend l'ip del client basta far loggare la variabile di ambiente X-Forwarded-For che tradotto per apache:
mmm… non so se sia così facile nel caso di HAProxy.
Quando lo configuri con il frontend in type ssl/https (tcp mode), non c'è il flag per attivare l' X-Forward-For.
Quello esiste solo per il frontend su http in chiaro....
.... almeno per quello che ne so io.si parlava di squid, usandolo come ssl offload puoi farlo.
-
Prova a configurare i due webserver per rispondere il primo sulla 81 e il secondo sulla 82.
La porta 80 lasciala solo a Squid. -
Quella di usare una porta diversa dalla 80 per più webserver, è sconsigliato e da usare solo in casi particolari, principalmente per 2 motivi.
- gli utenti remoti, possono avere firewall o proxy server, configurati per raggiungere solo le porte più comuni, e non le altre, per cui solo porta 80, 25, 110 etc.etc.
se tu poni gli altri web server su porte tipo 81 82 83 etc. possono non essere raggiungibili.
Inoltre, nel tuo suggerimento, la porta 81 è sconsigliata perchè tutte le porte 0-1023 sono riservate: https://it.wikipedia.org/wiki/Lista_di_porte_standard - potresti avere necessità di gesti molti web server per cui dovresti assegnare molte porte.
C'era anche un terzo motivo, con cui mi sono scontrato in passato, ma ora non mi viene più in mente :-P
- gli utenti remoti, possono avere firewall o proxy server, configurati per raggiungere solo le porte più comuni, e non le altre, per cui solo porta 80, 25, 110 etc.etc.