Ricerca nel sito web

Serie RHCSA: protezione di SSH, impostazione del nome host e abilitazione dei servizi di rete - Parte 8


In qualità di amministratore di sistema dovrai spesso accedere a sistemi remoti per eseguire una serie di attività amministrative utilizzando un emulatore di terminale. Raramente ti siederai davanti ad un terminale reale (fisico), quindi dovrai impostare un modo per accedere da remoto alle macchine che ti verrà chiesto di gestire.

In effetti, questa potrebbe essere l'ultima cosa che dovrai fare davanti a un terminale fisico. Per motivi di sicurezza, utilizzare Telnet per questo scopo non è una buona idea, poiché tutto il traffico passa attraverso la rete sotto forma di testo semplice e non crittografato.

Inoltre, in questo articolo esamineremo anche come configurare i servizi di rete per l'avvio automatico all'avvio e impareremo come impostare la risoluzione della rete e del nome host in modo statico o dinamico.

Installazione e protezione della comunicazione SSH

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


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

Tieni presente che è una buona idea installare le controparti server poiché potresti voler utilizzare la stessa macchina sia come client che come server prima o poi.

Dopo l'installazione, ci sono un paio di cose fondamentali che devi tenere in considerazione se desideri 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 sarà in ascolto da 22 (il valore predefinito) a una porta alta (2000 o superiore), ma prima assicurati che la porta scelta non sia utilizzata.

Ad esempio, supponiamo che tu scelga la porta 2500. Utilizzare netstat per verificare se la porta scelta viene utilizzata o meno:


netstat -npltu | grep 2500

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


Port 2500

2. Consenti solo il protocollo 2:


Protocol 2

3. Configura il timeout di autenticazione su 2 minuti, non consentire gli accessi root e limita al minimo l'elenco degli utenti a cui è consentito accedere tramite ssh:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

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


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

Ciò presuppone che tu abbia già creato una coppia di chiavi con il tuo nome utente sul tuo computer client e che tu l'abbia copiata sul tuo server come spiegato qui.

  1. Abilita l'accesso senza password SSH

Configurazione della rete e risoluzione dei nomi

1. Ogni amministratore di sistema dovrebbe conoscere bene i seguenti file di configurazione a livello di sistema:

  1. /etc/hosts viene utilizzato per risolvere i nomi <--->IP nelle piccole reti.

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. /etc/resolv.conf specifica gli indirizzi IP dei server DNS e il dominio di ricerca, che viene utilizzato per completare un determinato nome di query in un nome di dominio completo quando non viene fornito alcun suffisso di dominio.

In circostanze normali, non è necessario modificare questo file poiché è gestito dal sistema. Tuttavia, se desideri modificare i server DNS, tieni presente che devi attenersi alla seguente struttura in ogni riga:


nameserver - IP address

Per esempio,


nameserver 8.8.8.8

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

Sebbene questo file abbia diverse opzioni, la configurazione più comune e di base include una riga come segue:


order bind,hosts

Ciò 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. /etc/sysconfig/network contiene informazioni sul routing e sull'host globale per tutte le interfacce di rete. Possono essere utilizzati i seguenti valori:


NETWORKING=yes|no
HOSTNAME=value

Dove il valore deve essere il nome di dominio completo (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Dove XXX.XXX.XXX.XXX è l'indirizzo IP del gateway di rete.


GATEWAYDEV=value

In una macchina con più schede NIC, valore è il dispositivo gateway, ad esempio 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 semplice denominati.


ifcfg-name

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

Per esempio:

A parte l'interfaccia loopback, puoi aspettarti una configurazione simile per le tue schede NIC. Tieni presente che alcune variabili, se impostate, sovrascriveranno quelle presenti in /etc/sysconfig/network per questa particolare interfaccia. Ogni riga è commentata per chiarimenti in questo articolo ma nel file vero e proprio dovresti evitare 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 corrente, digitare:


hostnamectl status

Per cambiare il nome host, utilizzare


hostnamectl set-hostname [new hostname]

Per esempio,


hostnamectl set-hostname cinderella

Affinché le modifiche abbiano effetto dovrai riavviare il demone hostname (in questo modo non dovrai disconnetterti e ricollegarti per applicare la modifica):


systemctl restart systemd-hostnamed

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


nmcli general hostname

e per cambiarlo:


nmcli general hostname [new hostname]

Per esempio,


nmcli general hostname rhel7

Avvio dei servizi di rete all'avvio

Per concludere, vediamo come possiamo garantire che i servizi di rete vengano avviati automaticamente all'avvio. In termini semplici, ciò avviene creando collegamenti simbolici a determinati file specificati nella sezione [Installa] 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 dà diritto alla rimozione dei collegamenti simbolici:


systemctl disable firewalld

Conclusione

In questo articolo abbiamo riepilogato come installare e proteggere le connessioni tramite SSH ad un server RHEL, come cambiarne il nome e infine come garantire che i servizi di rete siano avviati su stivale. Se noti che un determinato servizio non è stato avviato correttamente, puoi utilizzare systemctl status -l [service] e journalctl -xn per risolverlo.

Sentiti libero di farci sapere cosa ne pensi di questo articolo utilizzando il modulo di commento qui sotto. Anche le domande sono benvenute. Restiamo in attesa della vostra risposta!