You're asking a lot of 4 gB. How many cores do you have? If you're going to stick with that hardware then you could install Nethserver on the hardware as your host os with the kvm module. Then, I would create one NS vm with all your functions and allocate to it all of the memory minus about a 1/2 gB.
As a rule, for security and redundancy, I do not mix gateway functions with server functions in the same instance.
To stress, short of using this hardware for a dedicated test lab, and having other hardware for production, you're asking an awful lot of 4gB for virtualization.