Eu recomendaria virtualizar os ambientes, proxmox provavelmente serviria muito bem (não cheguei a testar ainda mas parece muito bom).
Utilizando virtualização, você criaria duas máquinas virtuais:
1) Firewall
2) Servidor de arquivos
Para o firewall eu seguiria o que já indicaram acima: pfsense. Você poderia utilizar algo mais simples para firewall como o próprio iptables porém o pfsense tem outras funcionalidades que acho muito provável que seja muito vantajoso utilizar, por exemplo, IDS/IPS, load balance e afins
Para servidor de arquivos, eu iria de freeNAS.
Indo além do que você perguntou, usar um ambiente virtualizado te permitiria futuramente usar o servidor para outras aplicações mais facilmente, por exemplo, você poderia criar uma máquina virtual e subir algum servidor de DNS (aliás, recomendo fazer isso também), algum servidor DHCP caso o pfsense não te satisfaça ou simplesmente criar máquina virtual caso queira testar alguma coisa aleatória. Com virtualização fica muito mais simples de você fazer migração, por exemplo, se não gostar do pfsense, você pode estar criando uma outra máquina virtual, configurar todo o seu firewall por lá e desligar a máquina virtual do pfsense