Det är viktigt för administratörer att kunna ansluta till en fjärrdator. Avskärmade servrar har sällan permanenta tangentbord och skärmar - men de är anslutna till nätverket.
9.2.1. Säker fjärrinloggning: SSH
Protokollet SSH (Secure SHell) togs fram med säkerhet och pålitlighet i åtanke. Anslutningar med SSH är säkra; användaren är autentiserad och all data utbyts krypeterat.
SSH erbjuder två filöverföringstjänster. scp
är ett kommandoradsverktyg som kan användas liknande kommandot cp
förutom att sökvägar till en annan maskin inleds med maskinens namn, följt av kolon.
$
scp fil maskin:/tmp/
sftp
är ett interaktivt kommando som liknar ftp
. sftp
kan överföra flera filer i en enda session, och det är möjligt att manipulera fjärrfiler med det (ta bort, byta namn, ändra behörigheter och så vidare).
Debian använder OpenSSH, en fri version av SSH underhållen av projektet OpenBSD
(ett fritt operativsystem baserat på BSD-kärnan, fokuserat på säkerhet) och en gren av den ursprungliga SSH-programvaran utvecklad av företaget SSH Communications Security Corp, Finnland. Företaget utvecklade ursprungligen SSH som fri programvara, beslöt sig eventuellt att fortsätta utvecklingen under en sluten licens. OpenBSD-projektet skapade sedan OpenSSH för att bevara en fri version av SSH.
OpenSSH är uppdelat i två paket: klientdelen finns i paketet openssh-client och serverdelen i openssh-server. Metapaketet ssh beror på båda delar och underlättar installationen av dem (apt install ssh
).
9.2.1.1. Nyckelbasera autentisering
Varje gång någon loggar in över SSH, frågar fjärrservern efter ett lösenord för att autentisera användaren. Det kan vara problematiskt om du vill automatisera en anslutning eller om du använder ett verktyg som återkommande kräver anslutningar till SSH. Därför erbjuder SSH ett nyckelbaserad autentiseringssystem.
Användaren genererar ett nyckepar på klientmaskinen med ssh-keygen -t rsa
; den öppna nyckeln lagras i ~/.ssh/id_rsa.pub
, medan motsvarande privata nyckel lagras i ~/.ssh/id_rsa
. TAnvändaren använder sedan ssh-copy-id server
för att lägga till deras öppna nyckel i filen ~/.ssh/authorized_keys
på servern. Om den privata nyckeln inte var skyddad av ett ”lösenord” då den skapades kommer inloggningar till servern att fungera utan lösenord. Annars måste den privata nyckeln dekrypteras varje gång genom att skriva in lösenordet. Lyckligtvis låter ssh-agent
oss undvika att skriva in lösenordet igen och igen genom att spara de privata nycklarna i minnet. För det använder du ssh-add
(en gång per arbetssession) förutsatt att sessionen redan är associerade med en funktionell instans av ssh-agent
. Debian activates it by default in graphical sessions, but this can be deactivated by changing /etc/X11/Xsession.options
. For a console session, you can manually start it with eval $(ssh-agent)
.
9.2.1.2. Använda X11-fjärrprogram
SSH-protokollet gör det möjligt att vidarebefordra grafiskt innehåll (”X11-session”, namngiven från det mest välanvända grafiksystemet i Unix); servern håller då reda på en dedikerad kanal för denna data. Det innebär att ett grafiskt program som fjärrexekveras kan visas på X.org-servern lokalt, och att hela sessionen (inmatning och visning) är säker. Eftersom denna egenskap låter fjärrprogram komma åt det lokala systemet är det inaktiverat som standard. Du kan aktivera det genom att ange X11Forwarding yes
i serverns konfigurationsfil (/etc/ssh/sshd_config
). Slutligen måste användare också begära den genom att lägga till flaggan -X
kommandoraden för ssh
.
9.2.1.3. 'Skapa krypterade tunnlar med portvidarebefordring
Flaggorna
-R
och
-L
gör att
ssh
kan skapa ”krypterade tunnlar” mellan två maskiner och på ett säkert sätt vidarebefodra en lokal TCP-port (se sidopanelen
TILLBAKA TILL GRUNDERNA TCP/UDP) till en en fjärrmaskine och vice versa.
ssh -L 8000:server:25 mellanhand
etablerar en SSH-session med värden
mellanhand och lyssnar på lokala porten 8000 ( se
Figur 9.3, ”Vidarebefordra en lokal port med SSH”). För varje anslutning etablerad på denna på denna port, kommer
ssh
att starta en anslutning från datorn
mellanhand till port 25 på
server, och kommer att binda samman alla anslutningar tillsammans.
ssh -R 8000:server:25 mellanhand
etablerar också en SSH-session till datorn
mellanhand, men på denna maskin lyssnar
ssh
till port 8000 (se
Figur 9.4, ”Vidarebefordra en fjärrport med SSH”). Varje anslutning etablerad på denna port kommer också att få
ssh
att öppna en anslutning från den lokal maskinen till port 75 på
server, och att binda ihop anslutningarna.
I båda fallen sker anslutningarna över port 25 på värden server som passerar genom SSH-tunneln etablerade mellan den lokala maskinen och maskinen mellanhand. I det första fallet är ingången till tunneln lokal port 8000, och datan flyttar mot maskinen mellanhand innan den riktas mot server på det ”publika” nätvärket. i det andra fallet har indata och utdata för tunneln kastats om; ingången är port 8000 på maskinen mellanhand, utgång är på den lokala värden och datan vidarebefordras till server server. I praktiken är servern antingen den lokala maskinen eller mellanhanden. På det sättet säkrar SSH anslutningen från en sida till en annan.
9.2.2. Använda grafiska fjärrskrivbord
VNC (Virtual Network Computing) tillåter fjärråtkomst till grafiska skrivbord.
Detta verktyg används mest för teknisk assistans; administratören kan se felen som användare möter, och visa dem den rätta åtgärden utan att vara fysiskt närvarande.
First, the user must authorize sharing their session. The GNOME graphical desktop environment from Jessie onward includes that option in its configuration panel (contrary to previous versions of Debian, where the user had to install and run vino
). KDE Plasma still requires using krfb
to allow sharing an existing session over VNC. For other graphical desktop environments, the x11vnc
command (from the Debian package of the same name) serves the same purpose; you can make it available to the user with an explicit icon.
When the graphical session is made available by VNC, the administrator must connect to it with a VNC client. GNOME has vinagre
and remmina
for that, while the KDE project provides krdc
(in the menu at → → ). There are other VNC clients that use the command line, such as xvnc4viewer
in the Debian package of the same name. Once connected, the administrator can see what is going on, work on the machine remotely, and show the user how to proceed.
VNC fungerar också för mobilanvändare eller anställda som då och då behöver logga in hemifrån för att kunna komma åt ett fjärrskrivbord liknande det de använder på jobbet. Konfigurationen för en sådan tjänst är komplicerad: först installerar du paketet vnc4server, ändrar konfigurationen för fönsterhanteraren att acceptera XDMCP Query
-begäran (för gdm3
kan det utföras genom att lägga till Enable=true
avsnittet “xdmcp” i filen /etc/gdm3/daemon.conf
). Slutligen, starta VNC-servern med inetd
så att en sessione startas automatiskt när användare försöker att logga in. Du kan till exempel lägga till denna rad i /etc/inetd.conf
:
5950 stream tcp nowait nobody.tty /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 16 securitytypes=none
Att dirigera om inkommande anslutningar till fönsterhanteraren löser autentiseringsproblemet, eftersom endast använda lokala konton kommer att gå vidare förbi gdm3
-inloggningskärmen (eller motsvarande kdm
, xdm
, och så vidare). Eftersom denna åtgärd möjliggör samtidiga inloggningar utan problem (förutsatt att servern är kraftig nog), kan den även användas för att få hela skrivbord för mobilanvändare (eller för mindre kraftiga skrivbordssystem, konfigurerade som tunna klienter). Användare loggar helt enkelt in till servern med vncviewer server:50
, eftersom porten som används är 5950.