Sua pergunta é bastante ampla e tentarei responder algumas partes.
Um firewall pode ser útil para você, e você já sabe o que quer - permitir clientes em sua LAN e negar a todos os outros.
Então, a primeira coisa, o seu roteador. Desative o UPnP e não encaminhe a porta 80 (http) ou 443 (https). Se precisar, você pode encaminhar o SSH (porta 22).
No servidor, você pode aumentar significativamente a segurança do ssh se usar as chaves ssh (para efetuar login) e desabilitar as senhas.
denyhosts podem ser úteis, mas os bloqueios são um incômodo. Você pode colocar na lista de permissões um intervalo de IP ou IP.
Para obter alguns conselhos sobre o denyhost, consulte o link ou a documentação do denyhosts.
Agora, para o seu firewall, você pode facilmente usar o ufw ou se você quiser um front end gráfico gufw.
Supondo que você queira apenas HTTP e SSH (altere 192.168.0.0/24
para sua LAN):
sudo ufw enable
sudo ufw allow from 192.168.0.0/24 to any port 80
sudo ufw allow from 192.168.0.0/24 to any port 443
# for ssh from anywhere
sudo ufw allow ssh
# for ssh from your lan only
sudo ufw allow from 192.168.0.0/24 to any port 22
Veja também wiki do Ubuntu UFW