Serie RHCSA: Sicurezza di SSH, Impostazione del Nome Host e Abilitazione dei Servizi di Rete – Parte 8

Come amministratore di sistema, spesso dovrai accedere a sistemi remoti per eseguire una varietà di compiti di amministrazione utilizzando un emulatore di terminale. Raramente starai di fronte a un terminale reale (fisico), quindi devi configurare un modo per accedere in remoto ai macchine che ti verrà chiesto di gestire.

Infatti, potrebbe essere l’ultima cosa che dovrai fare di fronte a un terminale fisico. Per ragioni di sicurezza, utilizzare Telnet per questo scopo non è una buona idea, poiché tutto il traffico passa attraverso il filo in testo semplice non crittografato.

Inoltre, in questo articolo rivedremo anche come configurare i servizi di rete per avviarsi automaticamente all’avvio e impareremo come impostare la risoluzione di rete e nome host in modo statico o dinamico.

RHCSA: Secure SSH and Enable Network Services – Part 8

Installazione e Sicurezza della Comunicazione SSH

Per poter accedere in remoto a un RHEL 7 box utilizzando SSH, dovrai installare i pacchetti openssh, openssh-clients e openssh-servers. Il seguente comando non solo installerà il programma di accesso remoto, ma anche lo strumento di trasferimento di file sicuro, nonché l’utilità di copia di file remoto:

# yum update && yum install openssh openssh-clients openssh-servers

Nota che è una buona idea installare i corrispondenti server poiché potresti voler utilizzare la stessa macchina sia come client che come server in un momento o nell’altro.

Dopo l’installazione, ci sono un paio di cose di base che devi tenere in considerazione se vuoi proteggere l’accesso remoto al tuo server SSH. Le seguenti impostazioni dovrebbero essere presenti nel file /etc/ssh/sshd_config.

1. Cambia la porta su cui il demone sshd ascolterà da 22 (il valore predefinito) a una porta alta (2000 o superiore), ma prima assicurati che la porta scelta non sia in uso.

Per esempio, supponiamo che tu scelga la porta 2500. Utilizza netstat per verificare se la porta scelta è in uso o meno:

# netstat -npltu | grep 2500

Se netstat non restituisce nulla, puoi utilizzare in modo sicuro la porta 2500 per sshd, e dovresti modificare l’impostazione della porta nel file di configurazione come segue:

Port 2500

2. Consenti solo protocollo 2:

Protocol 2

3. Configura il timeout di autenticazione a 2 minuti, non consentire l’accesso root e limitare al minimo l’elenco degli utenti autorizzati a effettuare il login tramite ssh:

LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Se possibile, utilizza l’autenticazione basata su chiave anziché quella basata su password:

PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Questo presuppone che tu abbia già creato una coppia di chiavi con il tuo nome utente sulla tua macchina client e l’abbia copiata sul tuo server come spiegato qui.

  1. Abilita il Login SSH Senza Password

Configurazione della Rete e Risoluzione dei Nomi

1. Ogni amministratore di sistema dovrebbe essere ben informato sui seguenti file di configurazione a livello di sistema:

  1. Il file /etc/hosts viene utilizzato per risolvere i nomi <—> IP nelle reti di piccole dimensioni.

Ogni riga nel file /etc/hosts ha la seguente struttura:

IP address - Hostname - FQDN

Per esempio,

192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. Il file /etc/resolv.conf specifica gli indirizzi IP dei server DNS e il dominio di ricerca, che viene utilizzato per completare un nome di query dato con un nome di dominio pienamente qualificato quando non viene fornito un suffisso di dominio.

In circostanze normali, non è necessario modificare questo file in quanto è gestito dal sistema. Tuttavia, nel caso in cui si desideri modificare i server DNS, si consiglia di attenersi alla seguente struttura in ogni riga:

nameserver - IP address

Per esempio,

nameserver 8.8.8.8

3. Il file /etc/host.conf specifica i metodi e l’ordine con cui vengono risolti i nomi host all’interno di una rete. In altre parole, indica al risolutore di nomi quali servizi utilizzare e in che ordine.

Anche se questo file ha diverse opzioni, la configurazione più comune e di base include una riga come segue:

order bind,hosts

Che indica che il risolutore dovrebbe prima cercare nei nameserver specificati in resolv.conf e poi nel file /etc/hosts per la risoluzione dei nomi.

4. Il file /etc/sysconfig/network contiene informazioni sul routing e sull’host globale per tutte le interfacce di rete. I seguenti valori possono essere utilizzati:

NETWORKING=yes|no
HOSTNAME=value

Dove il valore dovrebbe essere il Fully Qualified Domain Name (FQDN).

GATEWAY=XXX.XXX.XXX.XXX

Dove XXX.XXX.XXX.XXX è l’indirizzo IP del gateway della rete.

GATEWAYDEV=value

In una macchina con più NIC, valore è il dispositivo gateway, come enp0s3.

5. File all’interno di /etc/sysconfig/network-scripts (file di configurazione degli adattatori di rete).

All’interno della directory menzionata in precedenza, troverai diversi file di testo normale denominati

ifcfg-name

Dove il nome è il nome della NIC come restituito da ip link show:

Check Network Link Status

Ad esempio:

Network Files

Oltre all’interfaccia loopback, puoi aspettarti una configurazione simile per le tue NIC. Nota che alcune variabili, se impostate, sovrascriveranno quelle presenti in /etc/sysconfig/network per questa particolare interfaccia. Ogni riga è commentata per chiarimento in questo articolo ma nel file effettivo dovresti evitare i commenti:

HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Impostazione dei nomi host

In Red Hat Enterprise Linux 7, il comando hostnamectl viene utilizzato sia per interrogare che per impostare il nome host del sistema.

Per visualizzare il nome host attuale, digita:

# hostnamectl status
Check System Hostname

Per cambiare il nome host, usa

# hostnamectl set-hostname [new hostname]

Ad esempio,

# hostnamectl set-hostname cinderella

Perché i cambiamenti abbiano effetto, sarà necessario riavviare il demone hostnamed (in questo modo non sarà necessario disconnettersi e riconnettersi nuovamente per applicare la modifica):

# systemctl restart systemd-hostnamed
Set System Hostname

Inoltre, RHEL 7 include anche l’utilità nmcli che può essere utilizzata per lo stesso scopo. Per visualizzare il nome host, esegui:

# nmcli general hostname

e per cambiarlo:

# nmcli general hostname [new hostname]

Ad esempio,

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

Avvio dei servizi di rete all’avvio

Per concludere, vediamo come possiamo garantire che i servizi di rete vengano avviati automaticamente all’avvio. In parole semplici, ciò viene fatto creando symlink a determinati file specificati nella sezione [Install] dei file di configurazione del servizio.

Nel caso di firewalld (/usr/lib/systemd/system/firewalld.service):

[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Per abilitare il servizio:

# systemctl enable firewalld

D’altra parte, disabilitare firewalld comporta la rimozione dei symlink:

# systemctl disable firewalld
Enable Service at System Boot

Conclusione

In questo articolo abbiamo riassunto come installare e proteggere le connessioni tramite SSH su un server RHEL, come cambiarne il nome e infine come garantire che i servizi di rete vengano avviati all’avvio. Se noti che un certo servizio non è riuscito ad avviarsi correttamente, puoi utilizzare systemctl status -l [servizio] e journalctl -xn per risolvere i problemi.

Sentiti libero di farci sapere cosa pensi di questo articolo utilizzando il modulo dei commenti qui sotto. Le domande sono anche benvenute. Non vediamo l’ora di sentirti!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/