Expondo meu pequeno servidor na web: estou me arriscando mais que o necessário?

Prezados,

Em 2025, influenciado principalmente pelos vídeos do Dio, comecei a brincar com um mini-pc e criei um pequeno servidor doméstico aqui para casa rodando o Ubuntu Server LTS e hospedando alguns serviços como Nextcloud e Jellyfin. Quebrei um pouco a cabeça para fazer funcionar, pois todo esse processo foi novidade para mim, e fui tentando seguir as documentações, guias e tutoraisi, além da ajuda eventual do ChatGPT quando empacava em alguma coisa.

Nesta última semana tive vontade de começar a organizar uma espécie de documentação para eu usar como referência na hora de fazer os backups, manutenções nas configurações ou uma nova instalação no futuro. Com isso, me bateu a dúvida se minha configuração está seguindo práticas mínimas de segurança para manter meus dados ou se tenho problemas.

De forma resumida, uso o seguinte:

  • Nextcloud AIO rodando na web com um domínio próprio usando o proxy da Cloudflare, certificado como A+ em https://scan.nextcloud.com/. Uso ele para sincronizar os documentos da minha família entre o computador de casa, notebooks e poder acessá-los remotamente no trabalho e apartir de smartphones, além do backup de mídia dos smartphones;
  • Jellyfin, SMB e SSH acessíveis somente por rede local ou via Tailscale.

Ativei o UFW no Ubuntu e deixei com as seguintes regras:

To                              Action      From
[ 1] 443/tcp                    ALLOW IN    Anywhere  
[ 2] 22/tcp                     ALLOW IN    192.168.1.0/24  
[ 3] 137/udp                    ALLOW IN    192.168.1.0/24  
[ 4] 138/udp                    ALLOW IN    192.168.1.0/24  
[ 5] 139/tcp                    ALLOW IN    192.168.1.0/24  
[ 6] 445/tcp                    ALLOW IN    192.168.1.0/24  
[ 7] 137/udp                    DENY IN     Anywhere  
[ 8] 138/udp                    DENY IN     Anywhere  
[ 9] 139/tcp                    DENY IN     Anywhere  
[10] 445/tcp                    DENY IN     Anywhere  
[11] 22/tcp                     DENY IN     Anywhere  
[12] 443/tcp (v6)               ALLOW IN    Anywhere (v6)  
[13] 137/udp (v6)               DENY IN     Anywhere (v6)  
[14] 138/udp (v6)               DENY IN     Anywhere (v6)  
[15] 139/tcp (v6)               DENY IN     Anywhere (v6)  
[16] 445/tcp (v6)               DENY IN     Anywhere (v6)  
[17] 22/tcp (v6)                DENY IN     Anywhere (v6)

Também instalei o Fail2ban.

Tem algo que eu estou deixando passar nessa configuração? Ficaria muito grato se pudessem contribuir com opiniões e sugestões!

Obs: não considerei colocar o Nextcloud para rodar no Tailscale por conta do acesso no trabalho, onde não posso configurar uma VPN e também pela dificuldade adicional para minha mãe usar. Syncthing também não me pareceu ser uma possibilidade à época em razão da impossibiliade de acesso “on-demand” aos arquivos.

2 curtidas

Usando a Cloudflare, eu adicionaria no UFW os ranges de ips da CF como os únicos permitidos para entrada em HTTPS(além da sua rede local, claro). Ainda no tocante a CF, dica: Crie uma regra no WAF bloqueando qualquer trafego HTTP 1.0/1.1. Esses geralmente são bots/crawlers de ia e vão gerar muito tráfego lixo, e de quebra, isso também barra a indexação em serviços de busca. Nenhum dispositivo moderno usa(ou deveria usar) HTTP abaixo da versão 1.2.

5 curtidas