Esse é um artigo que é fruto da experiência para que novos erros não sejam cometidos. Aqui estão algumas das coisas mais comuns que acontecem com servidores e como esses erros são mitigados.

Esquecer de colocar máscaras para novos usuários

Este é um erro clássico dentro de alguns sistemas onde é necessário ter mais privacidade.

✅ Correção

Para isso edite o arquivo /etc/login.defs

unmask 027

Adendo

Talvez você precise criar usuários sem permissão de login na máquina. Para isso execute o comando abaixo na criação do usuário:

sudo useradd -s /sbin/nologin -M nome_do_usuario

a opção -s /sbin/nologin: Garante que se ele tentar logar por SSH ou terminal, o sistema recusará o acesso imediatamente.
a opção -M: Não cria o diretório /home/nome_do_usuario (opcional, mude para -m se quiser que ele tenha uma pasta home compartilhada).

Se você já cadastrou o usuário no sistema e ele possui permissões de login, rode o comando abaixo para retirar:

sudo usermod -s /sbin/nologin nome_do_usuario

Rodar serviços como root

Quando você está desenvolvendo qualquer "simplificação" é considerada válida. Imagine um pequeno bug no seu software que compromete o sistema inteiro. Pois é... vamos corrigir isso.

✅ Correção

Criando um usuário específico para o serviço:

sudo useradd -r -s /bin/false appuser

Não obrigar a complexidade de senhas

Eu, particularmente, não sou muito fã deste tipo de coisa. Sou inclinado a utilizar MFA, FIDO, etc. É mais seguro e mais prático. Mas é uma alternativa válida:

✅ Correção

sudo dnf install libpwquality  
sudo nano /etc/security/pwquality.conf

Edite os seguintes parâmetros:

minlen = 12  
ucredit = - 1  
lcredit = - 1  
dcredit = - 1

💡 As alterações serão aplicadas no próximo login. Verifique se há alguma linha conflitante antes de ativar.

Permitir scripts graváveis em /usr/local/bin

Caso algum script seja gravável por qualquer um nesta pasta, qualquer alteração do script para fazer tarefas indesejadas (sim, estou sendo generoso!) é um pulo.

✅ Correção

chmod o-w /usr/local/bin/*

Validar se não existe nenhum herói da resistência:

find /usr/local/bin -perm -0002

Deixar serviços não utilizados rodando

Bom... isso dispensa comentários. Vamos as correções:

✅ Correção

sudo systemctl list-units --type =service --state=running  
sudo systemctl disable <serviço>  
sudo systemctl stop <serviço>

Eu ainda sou a favor de utilizar umask. Mas é para casos extremos.

Com esses comandos você colocará mais proteção no seu servidor.