Para o dns, você pode começar com o bind. Vincular é um software para configurar seu próprio servidor de nomes.
Para o e-mail, você pode dar uma olhada no Dovecot para imap / pop3 e no postfix para o smtp. Alternativamente, você pode dar uma olhada no exim.
Se você estiver planejando veicular sites, consulte o apache ou o nginx. (há muitas alternativas, procure qual delas atende melhor sua necessidade específica). Se você está hospedando php, muitas pessoas usam o LAMP básico: Linux Apache Mysql / mariadb e php.
Não será fácil aprender todas as configurações do software e os princípios subjacentes de uma só vez. Mas é divertido de se fazer e vale muito a pena.
Existem milhares de tutoriais na web para instalar a lâmpada com vhosts (se você quiser mais de um domínio em seu servidor) e também alguns para bind.