a.McDear,
Now that I understand better, I think you can do it with Zentyal, following multiple different approaches.
Maintaining /etc/hosts file on Zentyal server...
this works if:
- you restrict it to HTTP/HTTPS protocol, meaning using Zentyal Proxy
- you maintain in /etc/hosts list of alias pointing to whatever (internal) address you want
Doing so, HTTP request will never reach real servers but the one you want to show.
What is wrong with your initial sentence is willingness, for machines on intranet, to resolve these names in a fake manner.
If /etc/hosts doesn't fit, then you could also create one entry per domain you want to control and add here one host with as many alias as you want but this will have potentially a lot of side effect in case you want to reach servers in one of these domains. I definitely do not recommend this
Last but not least and this is definitely my preferred approach, ensure proxy is used and manage, at proxy level, internet domains (or internet domains list you can upload) to be blocked by proxy.
Easy and efficient.
There is something I would like to highlight: what must be understood first is service you want to control because it leads to protocol and then to infrastructure component to be used in order to get control.
Starting with name or IP resolution has little chance to work because this is very low level infrastructure component (names in NSS and DNS as server). It may work with lot of side effect. If you restrict you scope to HTTP, it's much easier thank to proxy component.