Contexto:
Eu pretendo viajar. Quero fazer uma pequena nuvem com meu servidor pessoal. Eu gostaria de poder d/l alguns dos meus arquivos e, eventualmente, fazer upload de alguns arquivos que não serão executados e o todo é protegido por uma senha não trivial.
Eu sou o único usuário humano.
Netfilter: todas as portas fechadas, exceto a porta 443. Nenhum script para executar. Apache com os privilégios mais baixos possíveis.
Desativei todos os logins remotos com um script executado automaticamente sempre que um usuário tenta fazer login em /etc/profile (basicamente expulsa qualquer um que tente se conectar, já que eu só quero poder me conectar fisicamente à caixa).
Mas acabei de abrir minha porta 443 com o Apache e um dispositivo com perfil para ter certeza de que o Apache não fará nada estúpido. Nenhum banco de dados.
Debian estável 64 bits atualizado.
Pergunta :
Será suficiente para proteger minha caixa? Eu esqueci alguma coisa? Algum outro conselho?
Obrigado
Responder1
Este é um tópico muito amplo, mas estes são meus 2 centavos:
- Criptografe seus discos.
- Não limite o AppArmor ao
apache
. - Desde que haja um layout de partição/LVM2 organizado, a maior parte do sistema pode ser montada somente leitura.
Monte
nodev,nosuid,noexec
tudo que não precisa dessas permissõesapt
eaptitude
pode precisar de permissões de execução temporárias em/tmp
, você pode adicionar isso ao seu/etc/apt/apt.conf
ou em um trecho em/etc/apt/apt.conf.d
:DPkg::Pre-Invoke {"mount -o remount,exec /tmp";}; DPkg::Post-Invoke {"mount -o remount /tmp";};
- Use uma conta não root e conceda apenas as
sudo
permissões necessárias a essa conta. - Se isso for exposto na internet, use
fail2ban
oudenyhosts
. - Faça atualizações de segurança regulares.
- Coloque os logs em uma partição/volume lógico separado.
- Faça backups e teste-os.
- Planeje um possível compromisso.