Como Proteger um Servidor Linux em Casa

Existem muitas razões para configurar um servidor em casa. Você pode usá-lo como um servidor de mídia, um servidor de arquivos ou até mesmo um servidor de backup local. Basicamente, todos os seus arquivos que não precisam estar online são boas opções para um servidor em casa. Configurar um servidor Linux é relativamente fácil, especialmente hoje em dia. Dito isso, manter esse servidor seguro é outra história. A segurança pode ser tão complicada quanto é importante.
Leia também: O Que É Log4Shell e Como Proteger Seu Sistema Linux Contra Isso
Instale Apenas o Que Você Realmente Precisa
Uma das maneiras mais fáceis de manter seu servidor em casa seguro é ter a segurança em mente desde o início. Isso começa com a instalação. Você está inseguro se precisa de um aplicativo ou serviço? Não instale. Você pode sempre instalá-lo depois.
Se você instalou o Linux algumas vezes, isso é ainda mais fácil. Em vez de seguir com as opções padrão, use os modos que lhe dão mais controle sobre a instalação. Às vezes, esses modos são denominados “modo especialista” ou algo similar.
Manter um controle cuidadoso das opções de instalação pode economizar tempo desativando serviços por razões de segurança depois.
Configure o sudo
Antes de passar para quaisquer outras etapas, você precisa configurar o sudo. Por quê? Porque uma vez que terminarmos aqui, você fará login no seu servidor via SSH e não poderá acessar a conta root. Para fazer qualquer outra alteração no seu sistema, você precisará usar o sudo.
Primeiro, verifique se você já consegue usar o sudo. A partir da sua conta de usuário, execute o seguinte com seu nome de usuário em vez de USERNAME:
sudo -lU USERNAMESe você ver uma mensagem dizendo que seu nome de usuário pode executar “(ALL) ALL” ou algo semelhante, você está pronto para prosseguir.
Agora, como a conta root no seu servidor, execute o seguinte para editar o arquivo “/etc/sudoers”. Se você prefere outro editor, use-o em vez do nano.
EDITOR=nano visudoEdite o arquivo para incluir o seguinte, com seu nome de usuário em vez de USERNAME:
USERNAME ALL=(ALL) ALLLeia também: Como Usar o Scanner de Vulnerabilidades Nessus no Linux
Configure o SSH

Você pode já ter o SSH habilitado no seu servidor em casa. É bem provável que sim, já que essa é normalmente a maneira como você interage com um servidor.
Primeiro, verifique se o OpenSSH está instalado. Se você usar outra distribuição, seu comando variará, mas o nome do pacote deve ser bastante consistente. No Ubuntu, execute o seguinte:
sudo apt install openssh-serverUsar autenticação baseada em chave é muito mais seguro do que a autenticação por senha, então vamos configurar o SSH para funcionar dessa maneira. Para isso, certifique-se de que você está trabalhando em um cliente que planeja conectar ao servidor, não no próprio servidor. Primeiro, você quer ter certeza de que não possui chaves SSH:
ls ~/.ssh/Se você vir “id_rsa” e “id_rsa.pub” entre os nomes de arquivos listados, você já possui chaves SSH. Pule esta próxima etapa.
ssh-keygen -t rsa -b 4096 -C "[email protected]"Agora você copiará a chave SSH para o seu servidor:
ssh-copy-id USERNAME@SERVERPara um servidor em casa, você provavelmente usará um endereço IP para seu servidor em vez de um nome. Se você não souber o nome do seu servidor, use seu endereço IP em vez de SERVER acima.
Agora vamos editar as configurações do seu SSH para torná-las mais seguras. Faça login no seu servidor a partir do cliente no qual você criou as chaves. Isso permitirá que você faça login novamente após esta etapa. Execute o seguinte, substituindo nano pelo editor de sua escolha.
sudo nano /etc/ssh/sshd_configEdite o arquivo com as seguintes configurações. Estes estarão localizados em vários lugares no arquivo. Certifique-se de que não haja duplicatas, pois apenas a primeira instância de uma configuração será seguida.
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
PermitRootLogin noAgora você precisa reiniciar o servidor SSH com um dos seguintes comandos.
No Ubuntu, execute:
sudo systemctl restart sshLeia também: SELinux vs AppArmor: Quais São as Diferenças e Qual Você Deveria Usar?
Configure um Firewall
Dependendo dos serviços que você está executando e quão frequentemente seu servidor se conecta à Internet, você pode querer rodar um firewall. Existem algumas opções para isso, mas o método testado e comprovado no Linux é o iptables.
Configurar o iptables está além do escopo deste artigo, mas não se preocupe. Temos um guia completo para configurar o iptables na sua máquina.
Outra maneira mais fácil de configurar um firewall é usar o ufw. Você pode instalá-lo com o comando:
sudo apt install ufwPor padrão, ele bloqueará todas as portas. Para habilitar o acesso online e SSH, execute os seguintes comandos do ufw para abrir as portas 80, 443 e 22:
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 22E, por fim, habilite o serviço ufw:
sudo ufw enableMantenha-se Atualizado

Os servidores podem ser fáceis de esquecer se só funcionam, mas isso pode ser perigoso. Certifique-se de manter seu software atualizado. Você pode usar atualizações não atendidas, mas estas podem ser imprevisíveis. A maneira mais segura é agendar uma manutenção regular do servidor semanal ou mensal para garantir que tudo esteja em ordem.
Leia também: As Melhores Ferramentas de Código Aberto para Proteger Seu Servidor Linux
Para Onde Ir a Partir Daqui
Agora você tem um bom começo para manter seu servidor protegido de ameaças externas. E se você precisar acessar seu servidor de casa, no entanto? Toda porta que você abre pode ser potencialmente utilizada por um invasor, e cada porta aberta aumenta sua vulnerabilidade.
Uma das maneiras mais fáceis de acessar sua rede doméstica de fora é usar uma VPN, o que está além do escopo deste artigo, mas não se preocupe, nós temos tudo o que você precisa. Dê uma olhada na nossa lista dos melhores serviços de VPN seguros disponíveis para ter uma ideia das suas opções.