- on a pris pour acquis qu’on ne ferait plus tourner les services que sur des VMs,
- on ne veut pas ouvrir trop grandes les brèches, donc :
- on n’installera pas de service applicatif sur l’hôte (nginx ou Apache, pour du reverse proxying, qui pourraient être compromis, sans oublier qu’ils ralentiraient l’ensemble).
Sachant que la VM a une interface NAT et une interface host-only — c’est celle qui nous intéresse là.
- La VM n’est donc pas visible sur le LAN, donc a fortiori n’est pas visible par le routeur.
- Note : on ne mettra pas d’interface bridged.
- On pourrait éventuellement jouer avec pf (via pfctl), mais ce n’est pas la peine.
- Routeur : Freebox OS 3.3.3.
- Hôte : Mac OS X Sierra 10.12.1 + VirtualBox 5.1.18
- VM : Debian 8.6 64-bit
Ne surtout pas se lancer dans de la configuration pf avec pfctl (rdr ne concerne que les redirections de port sur le même hôte ; nat retraduit les adresses IP entrantes…).
Au contraire, utiliser le port forwarding natif de VirtualBox, sur l’interface NAT (et pas host-only, astuce) :
$ VBoxManage modifyvm --natpf1 ,tcp,,5080,,80
$ VBoxManage modifyvm --nataliasmode1 proxyonly
La partie « --nataliasmode1 proxyonly » permet d’avoir la vraie remote_addr initiale dans les logs nginx, et pas celle du Host.
Au contraire, utiliser le port forwarding natif de VirtualBox, sur l’interface NAT (et pas host-only, astuce) :
$ VBoxManage modifyvm
$ VBoxManage modifyvm
La partie « --nataliasmode1 proxyonly » permet d’avoir la vraie remote_addr initiale dans les logs nginx, et pas celle du Host.