Quais são as melhores práticas para acessar minha instância do EC2 Linux com segurança usando SSH e evitando acesso não autorizado?

5 minuto de leitura
0

Quero acessar minha instância do Amazon Elastic Compute Cloud (Amazon EC2) usando o SSH. Quais são as melhores práticas para manter minha instância segura e evitar o acesso não autorizado ao usar o SSH?

Resolução

Use as práticas recomendadas a seguir para proteger suas instâncias ao usar o SSH. Para etapas que envolvem comandos, certifique-se de executar comandos com privilégios de raiz. Execute o comando sudo -i para se tornar o usuário raiz.

Use o AWS Systems Manager Session Manager para acesso via shell a instâncias do EC2

O Session Manager permite que os usuários do AWS Identity and Access Management (IAM) façam login em suas instâncias com recursos de criptografia e registro em log. O tráfego do Systems Manager passa pelo endpoint do Systems Manager, permitindo acesso fácil e seguro a instâncias privadas sem abrir portas de entrada. Para mais informações sobre o Session Manager, consulte AWS Systems Manager Session Manager para acesso via shell a instâncias do EC2.

Usar o EC2 Instance Connect para acesso via shell a instâncias do EC2

O Amazon EC2 Instance Connect permite que você se conecte às suas instâncias Linux via Secure Shell (SSH) usando perfis e políticas do IAM. Para mais informações sobre o EC2 Instance Connect, consulte Connect to your Linux instance using EC2 Instance Connect (Conectar-se à sua instância Linux usando o EC2 Instance Connect).

Observação: o EC2 Instance Connect é compatível nas seguintes distribuições:

  • Amazon Linux 2 (qualquer versão)
  • Ubuntu 16.04 ou posterior

Não permitir que o usuário raiz use um terminal SSH

Por padrão, as AMIs fornecidas pela Amazon e pela maioria dos fornecedores do AWS Marketplace não permitem que o usuário raiz faça login em um terminal SSH. Se a sua instância permitir que o usuário raiz faça login, siga as etapas abaixo para negar o acesso.

1.    Adicione um * (asterisco) ao campo de senha no arquivo /etc/shadow para invalidar a senha do usuário raiz:

Edite o arquivo com vipw -s.

A primeira linha geralmente é a linha do usuário raiz. Altere a linha do usuário raiz da seguinte maneira:

root:*LOCK*:14600::::::

2.    Edite o arquivo de configuração do daemon SSH usando um editor, como o editor vi:

vi /etc/ssh/sshd_config

Certifique-se de que a linha a seguir esteja presente e sem comentários. Essa linha nega permissão de login ao usuário raiz.

PermitRootLogin no

3.    Reinicie o daemon SSH:

systemctl restart sshd

Para informações sobre outros parâmetros da opção PermitRootLogin, consulte sshd_config no OpenBSD.

Certificar-se de que todos os usuários façam login com um par de chaves SSH e, em seguida, desativar a autenticação por senha

A configuração padrão para as AMIs fornecidas pela Amazon é fazer login usando um par de chaves SSH com a autenticação por senha desativada. Isso ocorre porque o uso de uma senha deixa sua instância exposta a riscos de segurança, como ataques de força bruta. Senhas fracas podem ser quebradas para obter acesso.

Portanto, se você alterou sua instância para usar uma senha, reverta para a configuração padrão usando os seguintes comandos:

1.    Use o editor vi, ou editor de sua escolha, para acessar o arquivo sshd_config:

vi /etc/ssh/sshd_config

2.    Verifique se a linha a seguir está presente e sem comentários:

PasswordAuthentication no

3.    Reinicie o daemon SSH:

systemctl restart sshd

Observação: certifique-se de ter pares de chaves instalados antes de desativar a autenticação por senha. Isso evita que você perca o acesso via SSH à instância do EC2. Cada usuário precisa inserir suas chaves públicas no caminho ~/.ssh/authorized_keys. Para mais informações sobre logins baseados em chaves, consulte Amazon EC2 key pairs and Linux instances (Pares de chaves do Amazon EC2 e instâncias Linux).

Restringir o acesso de origens desconhecidas

Para instâncias públicas, deixar a porta SSH aberta e irrestrita pode permitir invasões se existirem configurações incorretas ou se houver vulnerabilidades de software inesperadas. Para ajudar a evitar invasões, siga estas práticas recomendadas:

1.    Mantenha o daemon SSH atualizado para a versão mais recente fornecida pelo mantenedor da distribuição Linux. Frequentemente, o daemon SSH recebe atualizações de backport de versões posteriores do provedor de upstream. Para mais informações sobre backport, consulte Correções de segurança de backport no site do Portal do Cliente do Red Hat.

yum -y install openssh-server # for Amazon Linux, RHEL, Centos
apt update && apt install openssh-server # For Ubuntu, Debian

2.    Restrinja seu grupo de segurança para permitir conexões de entrada à porta 22 somente a partir de IPs confiáveis, como IPs de rede corporativa. Para mais informações, consulte Authorize inbound traffic for your Linux instances (Autorizar tráfego de entrada para suas instâncias Linux).

3.    Alguns intrusos podem tentar adivinhar nomes de usuário e senhas ou podem tentar sobrecarregar seu daemon SSH se a porta 22 estiver aberta para o mundo. O utilitário fail2ban monitora seus arquivos de log em busca de tentativas constantes de login na sua instância e, em seguida, bloqueia as tentativas após algumas tentativas malsucedidas. Para instalar fail2ban**:**

Ubuntu:

apt -y install fail2ban

Amazon Linux, CentOS, RHEL:

Instale o repositório EPEL.

Execute os seguintes comandos:

yum -y install fail2ban
systemctl enable fail2ban
systemctl start fail2ban

Para detalhes sobre como configurar fail2ban, consulte Segurança do Linux: Proteger seus sistemas com fail2ban no site da Red Hat.


AWS OFICIAL
AWS OFICIALAtualizada há um ano