Quali sono le best practice per accedere in modo sicuro alla mia istanza EC2 Linux tramite SSH evitando accessi non autorizzati?

5 minuti di lettura
0

Desidero accedere alla mia istanza Amazon Elastic Compute Cloud (Amazon EC2) tramite SSH. Quali sono le best practice per garantire la sicurezza della mia istanza ed evitare accessi non autorizzati durante l’utilizzo di SSH?

Risoluzione

Adotta le seguenti best practice per proteggere le tue istanze quando usi SSH. Per i passaggi che coinvolgono comandi, assicurati di eseguire comandi con privilegi di root. Esegui il comando sudo -i per diventare l'utente root.

Utilizza la Gestione sessione di AWS Systems Manager per l'accesso tramite shell (interprete di comandi) alle istanze EC2

La Gestione sessione consente agli utenti di AWS IAM (Identity and Access Management) di accedere alle tue istanze con competenze di crittografia e registrazione. Il traffico di Systems Manager passa attraverso l’endpoint di Systems Manager, il che consente un accesso facile e sicuro alle istanze private senza aprire le porte in entrata. Per ulteriori informazioni sulla Gestione di sessione, consulta Nuovo – Gestione sessione di AWS Systems Manager per l’accesso shell (interprete di comandi) alle istanze EC2.

Utilizza EC2 Instance Connect per l'accesso tramite shell (interprete di comandi) alle istanze EC2

Amazon EC2 Instance Connect ti consente di connetterti alle tue istanze Linux tramite Secure Shell (SSH) utilizzando ruoli e policy IAM. Per ulteriori informazioni su EC2 Instance Connect, consulta la pagina Connessione a un'istanza Linux tramite EC2 Instance Connect.

**Nota:**EC2 Instance Connect è supportato nelle seguenti distribuzioni:

  • Amazon Linux 2 (qualsiasi versione)
  • Ubuntu 16.04 o versioni successive

Non consentire all'utente root di utilizzare un terminale SSH

Per impostazione predefinita, le AMI fornite da Amazon e la maggior parte dei fornitori del Marketplace AWS non consentono all'utente root di accedere da un terminale SSH. Se la tua istanza consente l’accesso all'utente root, puoi negarlo seguendo i passaggi seguenti.

1.    Aggiungi un***** (asterisco) al campo della password nel file /etc/shadow per invalidare la password dell'utente root:

Modifica il file con il comandovipw -s.

La prima riga è in genere la riga dell'utente root. Cambia la riga dell'utente root come segue:

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

2.    Modifica il file di configurazione del daemon SSH usando un editor come l'editor vi:

vi /etc/ssh/sshd_config

Assicurati che la riga seguente sia presente e non commentata. Questa riga nega l'autorizzazione di login all'utente root.

PermitRootLogin no

3.    Riavvia il daemon SSH:

systemctl restart sshd

Per informazioni su altri parametri dell'opzione PermitRootLogin, consulta sshd_config su OpenBSD.

Assicurati che tutti gli utenti effettuino il login con una coppia di chiavi SSH, quindi disattiva l'autenticazione tramite password

La configurazione predefinita per le AMI fornite da Amazon prevede il login con una coppia di chiavi SSH, mentre l'autenticazione tramite password è disattivata. Questo perché l'uso di password espone l'istanza a rischi per la sicurezza, come gli attacchi di forza bruta. Password deboli possono essere decifrate per ottenere l’accesso.

Quindi, se hai modificato la tua istanza per consentire l’uso di password, torna alla configurazione predefinita utilizzando i seguenti comandi:

1.    Usa l'editor vi, o editor di tua scelta, per accedere al file sshd_config:

vi /etc/ssh/sshd_config

2.    Verifica che la riga seguente sia presente e non commentata:

PasswordAuthentication no

3.    Riavvia il daemon SSH:

systemctl restart sshd

**Nota:**Assicurati che delle coppie di chiavi siano installate prima di disattivare l'autenticazione tramite password. Ciò ti eviterà di perdere l'accesso tramite SSH all'istanza EC2. Ogni utente deve inserire le proprie chiavi pubbliche nel percorso ~/.ssh/authorized_keys. Per ulteriori informazioni sui login basati su chiavi, consulta Coppie di chiavi Amazon EC2 e istanze Linux.

Limita l'accesso da origini sconosciute

Nel caso di istanze pubbliche, lasciare la porta SSH aperta e senza restrizioni potrebbe consentire intrusioni in presenza di configurazioni errate o di vulnerabilità inattese del software. Per prevenire le intrusioni, segui queste best practice:

1.    Mantieni il daemon SSH aggiornato all'ultima versione fornita dalla persona responsabile della manutenzione della tua distribuzione Linux. Il daemon SSH è spesso aggiornato tramite backporting dalle versioni successive rilasciate dal fornitore upstream. Per ulteriori informazioni sul backporting, consulta la pagina Correzioni di sicurezza in backporting sul sito Web del portale clienti Red Hat.

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

2.    Limita il tuo gruppo di sicurezza in modo da consentire la connessione in entrata alla porta 22 solo a IP affidabili, come gli IP delle reti aziendali. Per ulteriori informazioni, consulta Autorizzazione del traffico in entrata per le istanze Linux.

3.    Se la porta 22 fosse aperta a tutti, degli intrusi potrebbero cercare di indovinare i nomi utente e le password, o tentare di sovraccaricare il daemon SSH. L'utilità fail2ban monitora i file di log per rilevare i tentativi di accesso continui all'istanza; dopo alcuni tentativi falliti, li blocca. Per installare fail2ban**: **

Ubuntu:

apt -y install fail2ban

**Amazon Linux, CentOS, RHEL: **

Installa il repository EPEL.

Esegui i seguenti comandi:

yum -y install fail2ban
systemctl enable fail2ban
systemctl start fail2ban

Per dettagli su come configurare fail2ban, vedi Sicurezza Linux: proteggi i tuoi sistemi con fail2ban sul sito Web di Red Hat.


AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa