Condivisione della tecnologia

Cloud Computing [Fase 1 (29)] Accesso e controllo remoto

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Gestione remota SSH

1.1.protocollo ssh (secureshell).

  • è un protocollo di canale sicuro
  • I dati di comunicazione sono crittografati per le funzioni di gestione remota
  • Il protocollo SSH crittografa la trasmissione dei dati tra le parti comunicanti, inclusa la password utente inserita al momento del login.
  • Un protocollo di sicurezza basato sul livello di applicazione e sul livello di trasporto.
  • Client SSH<--------------------------------->Server SSH
    La trasmissione dei dati è crittografata per impedire la fuga di informazioni
    Il trasferimento dei dati è compresso, il che aumenta la velocità di trasferimento

1.2、openssh

Nome del servizio: sshd
Programma principale del server: /usr/sbin/sshd
File di configurazione del server: /etc/ssh/sshd config

Client SSH: Putty, Xshell, CRT, MobaXterm, FinalShell
Server SSH: OpenSSH

Server SSH: per impostazione predefinita viene utilizzata la porta TCP 22 e la versione del protocollo di sicurezza è sshv2. Oltre a 2, ce n'è anche 1 (con scappatoie).

Il server ssh comprende principalmente due funzioni di servizio: collegamento remoto ssh e servizio sftp.

Funzione: il servizio SSHD utilizza il protocollo SSH per eseguire il controllo remoto o trasferire file tra computer.
Rispetto all'utilizzo precedente di Telnet per trasferire file, è molto più sicuro perché Telnet utilizza la trasmissione di testo in chiaro mentre SSH utilizza la trasmissione crittografata.

OpenSSH è un progetto software open source che implementa il protocollo SSH ed è adatto a vari sistemi operativi UNIX e Linux. Il sistema Centos 7 dispone di pacchetti software relativi a openssh installati per impostazione predefinita e il servizio sshd viene aggiunto per l'avvio automatico all'avvio.

[Tuttavia, la versione 7 presenta problemi e vulnerabilità e deve essere aggiornata. L'ultima versione è attualmente la 9.8]

Visualizza versione:comando ssh -V


Esegui il comando "systemctl start sshd" per avviare il servizio sshd

Sia ssh_config che sshd_config sono file di configurazione per il server ssh. La differenza tra i due è che il primo è un file di configurazione per il client e il secondo è un file di configurazione per il server.

SSH viene utilizzato fondamentalmente per gestire in remoto i sistemi Linux. Il motivo è molto semplice: metodi di trasmissione come Telnet e FTP trasmettono le informazioni di autenticazione dell'utente in testo non crittografato, il che è intrinsecamente pericoloso e comporta il rischio di intercettazioni della rete. SSH (Secure Shell) è attualmente più affidabile.
È un protocollo progettato per fornire sicurezza per sessioni di accesso remoto e altri servizi di rete. L'uso del protocollo SSH può prevenire efficacemente la fuga di informazioni durante la gestione remota. Tutti i dati trasmessi possono essere crittografati tramite SSH e si possono anche prevenire lo spoofing DNS e lo spoofing IP.
 

1.3. Metodo di accesso remoto SSH

1.3.1. Metodo di accesso uno
ssh [nome utente host remoto] @[nome host o indirizzo IP del server remoto] -p porta

Se vuoi usare il nome utentelisiL'identità connessa all'indirizzo IP è192.168.1.100server e il servizio SSH del server viene eseguito sulla porta22, dovresti usare il seguente comando:

当在 Linux 主机上远程连接另一台 Linux 主机时,如当前所登录的用户是 root 的话,当连接另一台主机时也是用 root 用户登录时,可以直接使用 ssh   IP,端口默认即可,如果端口不是默认的情况下,需要使用-p 指定端口。

allegato

mappatura dell'host

1.3.2 Metodo di accesso due
ssh -l [nome utente host remoto] [nome host o indirizzo IP del server remoto] -p porta
-l: opzione -l, specifica il nome di accesso.
-p: opzione -p, specifica la porta di accesso (quando la porta del server non è quella predefinita, è necessario utilizzare -p per specificare la porta per accedere)

(non molto utilizzato)

Interrogazione sulla chiave pubblica

Interrogazione sul cliente

Il server interroga la propria chiave pubblica

Nota: il sistema non salva le informazioni dell'host remoto quando si accede al server per la prima volta. Per confermare l'identità dell'host, all'utente verrà chiesto se continuare la connessione. Immettere sì e quindi accedere in. A questo punto, il sistema scriverà le informazioni sul server remoto in $HOME nella directory home dell'utente, la prossima volta che accedi, poiché le informazioni sull'host vengono salvate, non ti verranno richieste nuovamente. .

OpenSSH controllerà la chiave pubblica la prossima volta che accederai allo stesso computer. Se le chiavi pubbliche sono diverse, OpenSSH emetterà un avviso per proteggerti da attacchi come il DNS Hijack.
Soluzione
1. Quando si accede all'host remoto tramite ssh, aggiungere l'opzione "-o StrictHostKeyChecking=no", come segue:

ssh -o StrictHostKeyChecking=no 192.168.xxx.xxx

2. Un modo per rimuovere completamente questo messaggio è modificare la configurazione nel file /etc/ssh/ssh_config (o $HOME/.ssh/config) e aggiungere le seguenti due righe di configurazione:
Controllo StrictHostKey no
File host noti utente /dev/null

Ma è meglio non aggiungere

2. Configurazione e gestione del servizio

Server di configurazione generale

vim /etc/ssh/sshd_config

La porta deve essere cambiata per evitare che altri la rompano violentemente.

ListenAddress imposta l'indirizzo IP associato al server SSHD, 0.0.0.0 significa ascoltare tutti gli indirizzi
Suggerimento per la sicurezza: se l'host non necessita dell'accesso SSH dalla rete pubblica, è possibile modificare l'indirizzo di ascolto con l'indirizzo della rete interna. Questo valore può essere scritto come indirizzo IP locale o tutti gli indirizzi, ovvero 0.0.0.0 rappresenta tutti IP.

Quando qualcuno accede al sistema utilizzando SSH, SSH registrerà le informazioni. Il tipo di informazioni da registrare è AUTHPRIV. Il registro del servizio sshd è archiviato in: /var/log/secure.

In generale, per determinare se l'origine del client è normale e legittima, verrà utilizzato il DNS per verificare il nome host del client. Tuttavia, di solito durante l'interconnessione all'interno della intranet, questa base è impostata su no, quindi la velocità di connessione lo farà essere più veloce.
Nota: disabilitare la risoluzione inversa DNS per migliorare la velocità di risposta del server

Oltre ad alcune configurazioni di sicurezza e ottimizzazione della sicurezza

PermettiRootLogin Se consentire l'accesso root, l'impostazione predefinita è consentita, ma si consiglia di impostarla su no.Un server dell'ambiente di produzione reale non consente all'account root di accedere direttamente., solo gli utenti ordinari possono accedere. È necessario utilizzare l'utente root e quindi passare all'utente root.

Autenticazione tramite password
Ovviamente è richiesta la verifica della password, quindi puoi scrivere sì qui oppure impostarla su no. Sui server di produzione reali, in base ai diversi requisiti del livello di sicurezza, alcune impostazioni non richiedono l'accesso tramite password ed è possibile accedere tramite l'autenticazione chiave.

PermettiPasswordVuote NO
Indica se consentire l'accesso agli utenti con password vuote. L'impostazione predefinita è no. L'accesso con password vuote non è consentito.

PrintLastLog sì
Visualizza le informazioni dell'ultimo accesso! L'impostazione predefinita è sì

MaxAuthTries 6
Specifica il numero massimo di autenticazioni consentite per connessione. Il valore predefinito è 6.
Se il numero di autenticazioni non riuscite supera la metà di questo valore, la connessione verrà interrotta forzatamente e verranno generati ulteriori messaggi di registro degli errori.
Predefinito 3 volte

Abilita il modulo pam

Commento

Lista in bianco e nero

ConsentiUtenti
Quando desideri consentire o vietare l'accesso solo a determinati utenti, puoi utilizzare la configurazione ConsentiUsers o DenyUsers. L'utilizzo dei due è simile (fai attenzione a non utilizzarli contemporaneamente).
ConfiguraAllowUsers
Ad esempio, se solo gli utenti zhangsan e wangwu possono accedere ad altri utenti (lisi).

aggiungere a
Consenti utenti [email protected] wangwu

3. Accedi utilizzando la chiave

Diviso in 3 fasi:

Il client genera la chiave (chiave pubblica e chiave privata) nel client Xshell;

Inserisci la chiave pubblica nel file ~/.ssh/authorized_key del server Linux;

Configurare il client ssh (client Xshell) per accedere utilizzando una chiave

3.1. Accesso con chiave in xshell

1. Per prima cosa generare la chiave pubblica nello strumento xshell

Regola la lunghezza di 2048, basta fare il passaggio successivo, puoi impostare il nome e la password

Al termine della generazione, ci sarà una chiave pubblica, salvala

file che terminano con pub

Quindi apri la nostra macchina Linux

Passa alla directory ~/.shh (è necessario eseguire ssh per la prima volta senza password, altrimenti potrebbe non esserci alcun file .shh)

Carica la chiave pubblica

Naturalmente è necessario anche cambiarlo nel nome standard Authorized_Keys

Genera il backup della chiave privata

Accesso senza password

accesso riuscito

3.1.1 Il processo di accesso tramite una chiave

3.2 Genera chiave di accesso su Linux

Preparare un trampolino di lancio

L'opzione "-t" del comando ssh-keygen viene utilizzata per specificare il tipo di algoritmo per generare chiavi pubbliche e private.

Copia ssh-id [email protected]

utilizzossh-copy-idattrezzo: Questo gestirà automaticamente il processo di copia della chiave pubblica. Questo comando gestirà automaticamente la copia del tuoid_rsa.pubIl contenuto della chiave pubblica viene aggiunto al server remoto~/.ssh/authorized_keysnel fascicolo.

 inserire la password: Poiché è la prima volta che ti connetti a un server remoto in questo modo, ti potrebbe essere chiesto di inserire la password dell'utente root remoto.

Accedi tramite Springboard 79 19

eseguire l'accesso [email protected]

Modifica autorizzazioni

vim /etc/ssh/sshd_config

Sulle linee 17, 43, 65

Riavvia il servizio sshd

riprova

Specificare porta, successo

4. Aggiorna il server Linux all'ultima versione di openssh9.8

Il contenuto viene migrato nelle risorse file

L'algoritmo di firma DSA è disabilitato per impostazione predefinita

Preparazione dei file

si apre il sito ufficialeOpenSSH: Note di rilascio

Poiché openssh9.8p1 ​​richiede che la versione di openssl sia maggiore o uguale a 1.1.1, openssl deve essere aggiornato e installato.

Sito ufficialeRilascia OpenSSL 1.1.1v · openssl/openssl · GitHub