# Casos da tarefa Z10.2 (curso VPS e administração de servidores Linux) Escolha, para cada caso, qual é o erro e qual é o melhor primeiro passo. Todos os nomes e endereços são exemplos. **Erros (da lição 10.2):** A. Login de root com palavra-passe B. Uma base de dados, cache ou cluster de pesquisa aberto para a internet C. A API do Docker aberta ou `docker.sock` num contentor D. `chmod 777` para fazer desaparecer uma mensagem de erro E. `curl ... | bash` e software de qualquer origem F. Sem atualizações, ou atualizações "mais tarde" G. Sem cópia de segurança, ou uma cópia de segurança que nunca foi testada H. Painel de administração aberto a todos, sem verificação em dois passos I. Segredos no Git ou no seu ficheiro compose J. Desligar a firewall "só por um momento", tudo como root, sem notas --- **Caso 1.** Em `web1.example.com`, no ficheiro `compose.yaml`, no serviço `redis`, consta: `ports: - "6379:6379"`. `ufw status` mostra apenas 22, 80 e 443. Uma análise feita a partir do exterior encontra a porta 6379 aberta. Primeiro passo: (a) reiniciar o ufw (b) remover a regra de porta ou alterá-la para `"127.0.0.1:6379:6379"` e executar novamente `docker compose up -d` (c) atribuir outro número de porta ao Redis (d) reiniciar o servidor **Caso 2.** O programador de uma aplicação web em `app.example.net` informa que os carregamentos não funcionavam. Ele "resolveu" o problema e agora todos os ficheiros em `/var/www/app` estão com `-rwxrwxrwx`. Primeiro passo: (a) deixar como está, agora funciona (b) dar ao utilizador do servidor web permissões de escrita apenas na pasta de carregamentos e repor o resto em 644/755 com outro proprietário (c) executar o servidor web como root (d) desativar o AppArmor **Caso 3.** Desde ontem, um repositório público contém um ficheiro `.env` com `MAIL_API_KEY=...` do servidor `web2.example.org`. Primeiro passo: (a) remover o ficheiro do repositório (b) revogar a chave no serviço de correio, criar uma nova e colocar `.env` em `.gitignore` (c) mudar o nome do repositório (d) não fazer nada **Caso 4.** `sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"` devolve `permitrootlogin yes` e `passwordauthentication yes`. No journal surgem, a cada minuto, tentativas de acesso como root. Primeiro passo: (a) instalar o fail2ban e nada mais (b) colocar uma chave para um administrador normal com sudo, testar e, depois, desativar o login com palavra-passe e o login de root com palavra-passe (c) colocar o SSH na porta 2222 (d) guardar a palavra-passe de root num ficheiro de texto **Caso 5.** `cat /etc/os-release` mostra uma versão do Ubuntu cujo suporte padrão terminou há três anos, sem ESM. `apt list --upgradable` está vazio. Primeiro passo: (a) ficar contente, não há atualizações (b) planear uma atualização ou um novo servidor com uma versão LTS suportada, com snapshot e cópia de segurança (c) reinstalar o unattended-upgrades (d) reiniciar o servidor **Caso 6.** Um contentor `portainer` tem o volume `/var/run/docker.sock:/var/run/docker.sock` e está acessível em `https://beheer.example.com` com a palavra-passe `admin123`, sem verificação em dois passos. Escolha o erro que permite o maior dano caso a palavra-passe seja adivinhada. Primeiro passo: (a) colocar o painel atrás de um túnel SSH ou de um endereço fixo e definir uma palavra-passe forte com verificação em dois passos (b) reiniciar o contentor (c) escolher outro subdomínio (d) reinstalar o Docker **Caso 7.** Após uma atualização falhada da base de dados, verifica-se que a única cópia de segurança é um snapshot com dois meses, no mesmo armazenamento que o servidor. Ninguém alguma vez tentou fazer um restauro. Primeiro passo para o futuro: (a) criar mais snapshots (b) configurar cópias de segurança encriptadas fora do servidor (por exemplo, restic), com monitorização e um teste de restauro (c) nunca mais atualizar a base de dados (d) um segundo disco no mesmo servidor **Caso 8.** No servidor existe `/usr/local/bin/tool` e uma origem de pacotes desconhecida `extra.list` com a opção `[trusted=yes]`. Ninguém sabe de onde vêm; o administrador anterior instalava "tudo com uma linha de um site". Primeiro passo: (a) deixar ficar, funciona (b) investigar qual é a origem e o programa, desativar a origem com `trusted=yes` e passar a instalar apenas a partir da distribuição ou da origem oficial do criador com `Signed-By` (c) reiniciar o servidor (d) remover todos os pacotes Preencha para cada caso: erro (A-J) e primeiro passo (a-d).