Amministratore Linux - Gestione remota
Quando parliamo di gestione remota in CentOS come amministratore, esploreremo due metodi:
- Gestione della console
- Gestione GUI
Gestione della console remota
Gestione della console remota significa eseguire attività di amministrazione dalla riga di comando tramite un servizio come ssh. Per utilizzare CentOS Linux in modo efficace, come amministratore, dovrai essere esperto con la riga di comando. Il cuore di Linux è stato progettato per essere utilizzato dalla console. Ancora oggi, alcuni amministratori di sistema preferiscono la potenza del comando e risparmiano denaro sull'hardware eseguendo box Linux essenziali senza terminale fisico e senza GUI installata.
Gestione GUI remota
La gestione della GUI remota viene solitamente eseguita in due modi: una X-Session remota o un protocollo a livello di applicazione GUI come VNC. Ognuno ha i suoi punti di forza e i suoi svantaggi. Tuttavia, per la maggior parte, VNC è la scelta migliore per l'amministrazione. Consente il controllo grafico da altri sistemi operativi come Windows o OS X che non supportano nativamente il protocollo X Windows.
L'uso di X Session remote è nativo sia per i Window-Manager di X-Window che per i DesktopManager in esecuzione su X. Tuttavia, l'intera architettura di X Session viene utilizzata principalmente con Linux. Non tutti gli amministratori di sistema avranno a disposizione un laptop Linux per stabilire una sessione X remota. Pertanto, è più comune utilizzare una versione adattata di VNC Server.
I maggiori svantaggi di VNC sono: VNC non supporta nativamente un ambiente multiutente come le sessioni X remote. Quindi, per l'accesso GUI agli utenti finali, le sessioni XS remote sarebbero la scelta migliore. Tuttavia, ci occupiamo principalmente di amministrare un server CentOS da remoto.
Discuteremo della configurazione di VNC per più amministratori rispetto a poche centinaia di utenti finali con sessioni X remote.
Gettare le basi per la sicurezza con SSH per l'accesso alla console remota
ssh o Secure Shellè ora lo standard per l'amministrazione remota di qualsiasi server Linux. SSH, a differenza di telnet, utilizza TLS per l'autenticità e la crittografia end-to-end delle comunicazioni. Se configurato correttamente, un amministratore può essere abbastanza sicuro che sia la propria password che il server siano attendibili in remoto.
Prima di configurare SSH, parliamo un po 'della sicurezza di base e dell'accesso meno comune. Quando SSH è in esecuzione sulla sua porta predefinita 22; prima piuttosto che tardi, si verificheranno attacchi di dizionario a forza bruta contro nomi utente e password comuni. Questo viene solo con il territorio. Indipendentemente dal numero di host che aggiungi ai tuoi file di negazione, arriveranno quotidianamente da indirizzi IP diversi.
Con alcune regole comuni, puoi semplicemente fare dei passi proattivi e lasciare che i cattivi perdano tempo. Di seguito sono riportate alcune regole di sicurezza da seguire utilizzando SSH per l'amministrazione remota su un server di produzione:
Non utilizzare mai un nome utente o una password comuni. I nomi utente sul sistema non devono essere quelli predefiniti del sistema o associati all'indirizzo e-mail dell'azienda come:[email protected]
L'accesso root o l'accesso amministrativo non dovrebbe essere consentito tramite SSH. Usa un nome utente univoco e su per eseguire il root o un account di amministrazione una volta autenticato tramite SSH.
La politica delle password è un must: password utente SSH complesse come: "Questo & IS & a & GUD & P @ ssW0rd & 24 & me". Modificare le password ogni pochi mesi per eliminare la suscettibilità agli attacchi di forza bruta incrementali.
Disabilita gli account abbandonati o inutilizzati per lunghi periodi. Se un responsabile delle assunzioni ha un messaggio vocale che afferma che non farà interviste per un mese; ad esempio, ciò può portare a persone esperte di tecnologia con molto tempo a disposizione.
Guarda i tuoi registri ogni giorno. In qualità di amministratore di sistema, dedica almeno 30-40 minuti ogni mattina alla revisione dei registri di sistema e di sicurezza. Se richiesto, fai sapere a tutti che non hai il tempo di non essere proattivo. Questa pratica aiuterà a isolare i segnali di allarme prima che un problema si presenti agli utenti finali e ai profitti dell'azienda.
Note On Linux Security- Chiunque sia interessato all'amministrazione Linux dovrebbe perseguire attivamente le notizie e le tecnologie attuali sulla sicurezza informatica. Mentre per lo più sentiamo parlare di altri sistemi operativi compromessi, una macchina Linux insicura è un tesoro ricercato per i criminali informatici. Con la potenza di Linux su una connessione Internet ad alta velocità, un criminale informatico esperto può utilizzare Linux per sfruttare gli attacchi su altri sistemi operativi.
Installa e configura SSH per l'accesso remoto
Step 1 - Installa il server SSH e tutti i pacchetti dipendenti.
[[email protected]]# yum -y install openssh-server
'Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: repos.centos.net
* extras: repos.dfw.centos.com
* updates: centos.centos.com
Resolving Dependencies
--> Running transaction check
---> Package openssh-server.x86_64 0:6.6.1p1-33.el7_3 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
Step 2 - Fai un uso regolare sicuro da aggiungere per l'accesso alla shell.
[[email protected] ~]# useradd choozer
[[email protected] ~]# usermod -c "Remote Access" -d /home/choozer -g users -G
wheel -a choozer
Note- Abbiamo aggiunto il nuovo utente al gruppo wheel abilitando la possibilità di eseguire su in root una volta che l'accesso SSH è stato autenticato. Abbiamo anche utilizzato un nome utente che non può essere trovato negli elenchi di parole comuni. In questo modo, il nostro account non verrà bloccato quando SSH viene attaccato.
Il file contenente le impostazioni di configurazione per il server sshd è / etc / ssh / sshd_config .
Le parti che vogliamo modificare inizialmente sono:
LoginGraceTime 60m
PermitRootLogin no
Step 3- Ricarica il demone SSH sshd .
[[email protected]]# systemctl reload sshd
È consigliabile impostare il periodo di grazia per il logout a 60 minuti. Alcune attività di amministrazione complesse possono superare il valore predefinito di 2 minuti. Non c'è davvero niente di più frustrante che avere il timeout della sessione SSH durante la configurazione o la ricerca delle modifiche.
Step 4 - Proviamo ad accedere utilizzando le credenziali di root.
bash-3.2# ssh centos.vmnet.local
[email protected]'s password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
Step 5- Non possiamo più accedere da remoto tramite ssh con le credenziali di root . Quindi accediamo al nostro account utente non privilegiato e su nell'account root .
bash-3.2# ssh [email protected]
[email protected]'s password:
[[email protected] ~]$ su root
Password:
[[email protected] choozer]#
Step 6- Infine, assicuriamoci che il servizio SSHD venga caricato all'avvio e firewalld consenta connessioni SSH esterne.
[[email protected]]# systemctl enable sshd
[[email protected]]# firewall-cmd --permanent --add-service=ssh
success
[[email protected]]# firewall-cmd --reload
success
[[email protected]]#
SSH è ora configurato e pronto per l'amministrazione remota. A seconda del confine aziendale, potrebbe essere necessario configurare il dispositivo per il filtraggio dei pacchetti per consentire l'amministrazione remota SSH al di fuori della LAN aziendale.
Configurare VNC per l'amministrazione CentOS remota
Ci sono alcuni modi per abilitare l'amministrazione CentOS remota tramite VNC su CentOS 6-7. Il modo più semplice, ma più limitante è semplicemente usare un pacchetto chiamato vino .Vinoè un'applicazione di connessione desktop di rete virtuale per Linux progettata attorno alla piattaforma desktop Gnome. Quindi, si presume che l'installazione sia stata completata con Gnome Desktop. Se Gnome Desktop non è stato installato, fallo prima di continuare. Vino verrà installato con un'installazione GUI di Gnome per impostazione predefinita.
Per configurare la condivisione dello schermo con Vino sotto Gnome, vogliamo andare nelle Preferenze di Sistema di CentOS per la condivisione dello schermo.
Applications->System Tools->Settings->Sharing
Note per la configurazione della condivisione desktop VNC -
Disable New Connections must ask for access- Questa opzione richiederà l'accesso fisico per confermare ogni connessione. Questa opzione impedirà l'amministrazione remota a meno che qualcuno non si trovi sul desktop fisico.
Enable Require a password- Questo è separato dalla password utente. Controllerà l'accesso al desktop virtuale e richiederà comunque la password dell'utente per accedere a un desktop bloccato (questo è un bene per la sicurezza).
Forward UP&P Ports: If available leave disabled- L'inoltro delle porte UP&P invierà richieste Universal Plug and Play per un dispositivo di livello 3 per consentire automaticamente le connessioni VNC all'host. Non lo vogliamo.
Assicurati che vino sia in ascolto sulla porta VNC 5900.
[[email protected]]# netstat -antup | grep vino
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 4873/vino-server
tcp6 0 0 :::5900 :::* LISTEN 4873/vino-server
[[email protected]]#
Configuriamo ora il nostro firewall per consentire le connessioni VNC in entrata.
[[email protected]]# firewall-cmd --permanent --add-port=5900/tcp
success
[[email protected]]# firewall-cmd --reload
success
[[email protected] rdc]#
Infine, come puoi vedere, siamo in grado di connettere la nostra CentOS Box e amministrarla con un client VNC su Windows o OS X.
È altrettanto importante obbedire alle stesse regole per VNC che abbiamo stabilito per SSH. Proprio come SSH, VNC viene continuamente scansionato su intervalli IP e testato per password deboli. Vale anche la pena notare che lasciare il login CentOS predefinito abilitato con un timeout della console aiuta con la sicurezza VNC remota. Poiché un utente malintenzionato avrà bisogno del VNC e della password utente, assicurati che la password di condivisione dello schermo sia diversa e altrettanto difficile da indovinare quanto la password dell'utente.
Dopo aver inserito la password di condivisione dello schermo VNC, è necessario immettere anche la password utente per accedere a un desktop bloccato.
Security Note- Per impostazione predefinita, VNC non è un protocollo crittografato. Quindi, la connessione VNC dovrebbe essere sottoposta a tunneling tramite SSH per la crittografia.
Configurazione del tunnel SSH tramite VNC
L'impostazione di un tunnel SSH fornirà un livello di crittografia SSH per eseguire il tunneling della connessione VNC. Un'altra grande caratteristica è che utilizza la compressione SSH per aggiungere un altro livello di compressione agli aggiornamenti dello schermo della GUI VNC. Più sicuro e veloce è sempre una buona cosa quando si ha a che fare con l'amministrazione dei server CentOS!
Quindi dal tuo client che avvierà la connessione VNC, configuriamo un tunnel SSH remoto. In questa dimostrazione, stiamo usando OS X. Per prima cosa abbiamo bisogno di sudo -s per eseguire il root .
bash-3.2# sudo -s
password:
Inserisci la password dell'utente e ora dovremmo avere la shell di root con un # prompt -
bash-3.2#
Ora creiamo il nostro tunnel SSH .
ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
Rompiamo questo comando -
ssh - Esegue l'utilità ssh locale
-f - ssh dovrebbe essere eseguito in background dopo che l'attività è stata completata
[email protected] - Utente ssh remoto sul server CentOS che ospita i servizi VNC
-L 2200:192.168.1.143:5900 - Crea il nostro tunnel [Porta locale]: [host remoto]: [porta remota del servizio VNC]
-N dice a ssh che non vogliamo eseguire un comando sul sistema remoto
bash-3.2# ssh -f [email protected] -L 2200:192.168.1.143:5900 -N
[email protected]'s password:
Dopo aver inserito con successo la password dell'utente ssh remoto, viene creato il nostro tunnel ssh . Ora per la parte interessante! Per connetterci puntiamo il nostro client VNC al localhost sulla porta del nostro tunnel, in questo caso la porta 2200. Di seguito è riportata la configurazione sul client VNC di Mac Laptop -
E infine, la nostra connessione desktop VNC remota!
La cosa interessante del tunneling SSH è che può essere utilizzato per quasi tutti i protocolli. I tunnel SSH sono comunemente usati per bypassare il filtraggio delle porte di ingresso e uscita da un ISP, oltre a ingannare IDS / IPS a livello di applicazione eludendo il monitoraggio di altri livelli di sessione.
Il tuo ISP può filtrare la porta 5900 per account non aziendali ma consentire SSH sulla porta 22 (o uno potrebbe eseguire SSH su qualsiasi porta se la porta 22 è filtrata).
IPS e IDS a livello di applicazione esaminano il payload. Ad esempio, un overflow del buffer comune o SQL Injection. La crittografia SSH end-to-end crittograferà i dati a livello di applicazione.
SSH Tunneling è un ottimo strumento nella casella degli strumenti di un amministratore Linux per fare le cose. Tuttavia, in qualità di amministratore, desideriamo esplorare il blocco della disponibilità di utenti con privilegi minori che hanno accesso al tunneling SSH.
Administration Security Note- Limitare il tunneling SSH è qualcosa che richiede una riflessione da parte di un amministratore. Valutare il motivo per cui gli utenti necessitano del tunneling SSH in primo luogo; di cosa hanno bisogno gli utenti di tunneling; insieme alla probabilità di rischio pratica e all'impatto nel caso peggiore.
Questo è un argomento avanzato che si estende al di fuori del regno di un primer di livello intermedio. La ricerca su questo argomento è consigliata a coloro che desiderano raggiungere i vertici dell'amministrazione CentOS Linux.
Usa il tunnel SSH per X-Windows remoto
Il design di X-Windows in Linux è davvero accurato rispetto a quello di Windows. Se vogliamo controllare un Linux box remoto da un altro Linux boxm possiamo sfruttare i meccanismi integrati in X.
X-Windows (spesso chiamato semplicemente "X"), fornisce il meccanismo per visualizzare le finestre dell'applicazione originate da una macchina Linux alla porzione di visualizzazione di X su un'altra macchina Linux. Quindi tramite SSH possiamo richiedere che un'applicazione X-Windows venga inoltrata al display di un'altra macchina Linux nel mondo!
Per eseguire un'applicazione X in remoto tramite un tunnel ssh, è sufficiente eseguire un singolo comando:
[[email protected]]# ssh -X [email protected]
The syntax is - ssh -X [utente] @ [host] e l'host deve eseguire ssh con un utente valido.
Di seguito è riportato uno screenshot di GIMP in esecuzione su una workstation Ubuntu attraverso un tunnel ssh XWindows remoto.
È piuttosto semplice eseguire applicazioni in remoto da un altro server o workstation Linux. È anche possibile avviare un'intera X-Session e disporre dell'intero ambiente desktop da remoto tramite alcuni metodi.
XDMCP
Pacchetti software headless come NX
Configurazione di schermi e desktop alternativi in X e desktop manager come Gnome o KDE
Questo metodo è più comunemente usato per i server headless senza display fisico e supera davvero l'ambito di un primer di livello intermedio. Tuttavia, è bene conoscere le opzioni disponibili.