Se quer aprender mesmo monte seu firewall via scripts, não é difícil mas é
trabalhoso, já montei com failover, loadbalancer e outros. E como falaram
separe cada serviço em um servidor ajuda a gerenciar e descobrir pontos de
falhas, além de isolar o problema. Soluções "embarcadas" são legais para
levantar o serviço mais rapidamente mas você não pode customizar totalmente
como via scripts, porém para os 80% dos casos um firewall (ou solução
unificada de serviços: fw, dns, dhcp e etc) embarcado com gerenciador
grafico resolve. Note também que um fw ou servidor via script é bem mais
leve, tendo em vista que você não vai ter servidor web rodando, base de
dados em constante acesso e etc. Minha opinião pessoal: se quer aprender ou
quer algo realmente customizavel crie seu servidor tudo via shell, se quer
algo que você instale e configure pouco e seu negócio é simples use uma
solução "pronta": Ipfire, ipcop, brasilfw, shorewall (framework para montar
firewalls), pfsense e tantos outros.