Cohabitation VMs BM et serveur web

Bonjour à tous,
Impossible de trouver des infos sur ce point :
j’ai installé BM dans une VM dédié. Cette VM est derrière une VM pfsense, sur le réseau local LAN.
Sur ce même réseau, j’ai une VM dédié pour un serveur web, qui utilise par conséquent les ports 80 et 443. pfSense redirige tous le trafic en 80/443 vers mon serveur web.
J’aimerais donc modifier les ports de BM 80/443 en autre chose afin de créer une règle dans pfSense permettant de rediriger le trafic webmail vers ma VM BM.
Avez vous une idée ? Comment s’y prendre ?
MErci par avance de votre aide.
Bonne journée.

Bonjour,

Il n’est pas possible de modifier les ports de BlueMind, vous pouvez par contre par exemple faire de la redirection de port pour que le port 4443 par exemple soit redirigé vers la VM BM sur le port 443.

Bonjour,

une solution serait de mettre un proxy nginx en frontal de tes serveurs.
J’utilise cette technique pour attaquer mon BM, un KIBANA et un site web pour un ami, depuis Internet.
Voici la conf pour BM

upstream bluemind {
	server 192.168.1.2:443;
}


server {
    	listen 443 ssl;

	ssl on;
		
	server_name   www.mclabosse.fr mclabosse.fr uruviel.mclabosse.fr;
	ssl_certificate  /etc/ssl/proxyCerts/bm_cert.pem;
  	ssl_certificate_key  /etc/ssl/proxyCerts/bm_cert.pem;

	location / {
		proxy_pass https://bluemind;
	}

}

Bonjour,

Oui c’est effectivement la solution la plus simple et efficace, une petite remarque sur la configuration de nginx, le proxy_pass n’est pas suffisant il faut utiliser la configuration donnée ici : https://forge.bluemind.net/confluence/display/BM35/Installation+d%27un+serveur+Edge+%3A+Nginx+et+Postfix
Notamment sur le ‘upgrade’ de connexion pour les websocket qui permettent une communication bi-directionnelle entre le client et le serveur ce qui améliore les performances.

Salut Arnaud,

effectivement, si on veut que tous les flux BM soient proxyfiés.
Donc ma technique et mon exemple pour qualifier que c’est bien ce que l’on souhaite, et ensuite la conf complète :

[code]
upstream bluemind {
server 192.168.1.2:443;
}

server {
listen 443;
server_name <url_externe_bluemind>;

ssl on;
ssl_certificate /etc/ssl/certs/bm_cert.pem;
ssl_certificate_key /etc/ssl/certs/bm_cert.pem;
ssl_session_timeout 5m;
ssl_prefer_server_ciphers on;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ‘EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA’;
add_header Strict-Transport-Security max-age=15768000; # six months

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

location / {
# bluemind est le serveur BlueMind principal
proxy_pass https://bluemind;
}

location /webmail/ {
client_max_body_size 0m;
proxy_pass https://bluemind/webmail/;
}

location /Microsoft-Server-ActiveSync {
proxy_pass https://bluemind/Microsoft-Server-ActiveSync;
proxy_read_timeout 1200s;
proxy_headers_hash_bucket_size 128;
proxy_headers_hash_max_size 2048;
client_max_body_size 10m;
proxy_pass_header Server;
}

location /eventbus {
proxy_pass https://bluemind;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}

location /api/filehosting/ {
client_max_body_size 0m;
proxy_pass https://bluemind/$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}

location /api/attachment/ {
client_max_body_size 0m;
proxy_pass https://bluemind/$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
}

location /fh/ {
proxy_pass https://bluemind/fh/;
proxy_http_version 1.1;
proxy_buffering off;
}
}
[/code]]

Bonjour,
Merci pour vos réponses.
Vraiment gênant que la modification de ports ne soit pas possible ! Cela implique qu’il n’est pas possible, simplement, de faire cohabiter un serveur web et BM sur le même LAN ?

Et si je modifie mon serveur web (apache2) pour écouter le 4443 au lieu du 443 et rediriger le flux entrant en 80 (pfsense) sur mon serveur web qui redirigera (apache) sur 4443, non ?
Dans cette optique, je redirige le flux 80 vers la VM web et le flux 443 vers la VM BM.
Est ce que cela peu poser problème ?
Un utilisateur du service web standard (80) sera redirigé automatiquement vers https:8443 web, non ? Du coup le port 80 ne serait pas accessible pour BM mais le 443 oui.
Merci de votre aide.

Il n’est pas possible de configurer pfsense pour être un reverseProxy ? par exemple : http://www.ophyde.com/reverse-proxy-avec-pfsense/
ce serait plus propre même si dans l’idée ce que tu propose fonctionne.

Bonjour,

bien sur que si, on peut faire cohabiter un BM avec d’autres serveurs web. Il te faut juste un machine intermédiaire entre ton firewall et tes serveurs.
Le rôle de cette machine/ce service est de router la requête vers le bon serveur FQDN.

Le principe général :

sur Internet, je me connecte au site https://monsite.fr
la requête arrive sur le routeur (box)
elle est transférée au firewall (pfsense)
si elle est conforme, ce dernier transfère la requête au ReverseProxy (RP). A ce stade, on ne fait pas cas du nom de domaine
Le RP route la requête vers la bonne VM. Il s’appuie sur les noms de domaines (monsite.fr). Le RP est configuré pour connaitre tous les sites internes, que ce soit en TCP 80 ou en 443, accessibles depuis Internet.

Dans mon cas personnel, j’expose sur Internet :

  • un BM en https sur une VM dédiée
  • un GitLab en https sur une VM dédiée
  • un KIBANA en https sur une VM dédiée
  • un site web en http sur une VM dédiée

J’ai donc mis en place un RP NGINX qui fait le routage FQDN Internet vers la VM qui va bien.
Il te suffit de t’appuyer sur les 2 exemples, le premier qui est un passe-partout, le second pour ta VM BM.

NGINX a l’avantage d’être facile à mettre en place, et est peu gourmand (CPU, RAM).

Pascal