|
|
| Terminal server lösningar, uppdaterad [2003-06-07] |

Hur fungerar det? Det är ett program som delar ut ett gränssnitt för fjärr manövrering. Programmet består av en serverdel och en klientdel.
Några exempel på enklare terminalserver lösningar som används i dag är VNC och PC anywhere.
Lösningen består av en server, som delar den tunna delen av applikationer, d.v.s gränssnittet till en port för åtkommst av en klient. Klientdelen är installerad på den maskin man arbetar vid.
När man kopplar ihop klientdelen med serverdelen över t.ex ett nätverk ser det ut som om man arbetar vid serverdatorn.
Från första början var denna typ av lösning tänkt som hjälpmedel vid fjärrövervakning men har i dag fått ett mycket vidare användningsområde.
Några av de mest populära öppna terminalserverlösningarna består av paketeringar av VNC, SSH, NIS (Cendio Systems ThinLinc) och en del kringkomponenter för ljud och nedladdning
av drivrutiner m.m.
Nedan följer mer utförliga beskrivningar av några olika terminalserver lösningar.
|
| TightVNC + OpenSSH + NIS |
Den här kombinationen kan skapa en stabil och säker terminalserver miljö. VNC
står för Virtual Network Computing och är ursprungligen skapad av AT&T för nätverksövervakning.
TightVNC är en förbättrad version av standard VNC och har fler funktioner.
Jag beskriver här en installation av TightVNC i UNIX/Linux miljö med SSH som tunnel för krypterad kommunikation. TigghtVNC har ingen inbyggd
användar kontroll, därför lägger vi till tjänsten NIS som är ett användar verifierings system i UNIX.
TightVNC - Installation och konfiguration
För att installera tightvnc kan man göra på två
sätt, antingen den lätta vägen med de installationspaket
som förljer med distributionen eller genom att ladda hem
källkoden och kompilera samt installera den.
Om man väljer att ladda hem koden, gör du på
följande sätt för att installera den. Börja med att
ladda hem tightvnc. Kopiera filen till en tillfällig katalog t.ex /tmp.
Packa upp filen med antingen ett grafiskt verktyg som ark eller packa
upp den i konsolen med kommandot tar -xzf tightvnc-1.2.8_unixsrc.tar.gz.
Gå till den nyss uppackade katalogen med konsolfönstret och skriv ./configure --prefix=/usr && make.
Om kompileringen gick bra och alla beroenden var uppfyllda, gå
över till administrationsläge med konsolfönstret; skriv su följt av ditt root lösenord. Skriv sedan make install och tightvnc installeras på din dator.
Nu har du tightvnc installerat. I installationen har du en server och
en klient. Servern kan konfigureras på ett flertal olika
sätt lite beroende på hur distributören av ditt
linuxsytem valt att göra.
En vanlig konfiguration är att vncservern kör sin process med en dedikerad användare på en viss port. I kommande konfiguration har man skapat en användare som heter vncuser. För att konfigurera serverdelen ingår följande filer.
/etc/sysconfig/vncservers
/etc/X11/xinit/xinitrc
/home/vncuser/.vnc/passwd
/home/vncuser/.vnc/xstartup (anropar /etc/X11/xinit/xinitrc)
Vi börjar med att dedikera en användare till vncservern. Detta gör vi i filen /etc/sysconfig/vncservers. Öppna filen som administratör och lägg till raden 1:vncuser.
För att förstå logiken behövs lite information om
hur X (fönsterservern) fungerar i Linux. I korthet kan vi
säga att till skillnad från windows där
fönsterhanteringen är ett med operativsystemet, är Linux
fönsterhantering avskild från systemet. Fönstersystemet
är som vilket annat program som hellst och inte
nödvändigt för att systemet skall fungera. Detta
gör att vi i Linux kan skapa så många olika
fönster mot vårt system som datorn klarar av att driva. I
regel när man startar upp sitt linuxsystem med grafiskt stöd
(X), så startas en X fönster server på
port 0.
Nu kommer vi till kontentan, X är ett ramverk av servrar
för olika grafikkort och andra ändamål, som kan startas
efter behov och arbeta parallelt på olika portar. I TightVNC
paketet ingår just en sådan X server som passar
ändamålet att fjärrstyra ett skrivbord.
Eftersom nu Xserver port 0 oftast är upptagen av den lokala Xservern på datorn anger vi port nummer 1.
Det vi talar om här är att vncservern skall starta med denna
användares profil med en ny Xserver på port 1. För
varje ny server som startas upp tilldelas eller tilldelar man
nästa efterföljande plats med 2,3,4 osv. Denna plats
läggs då till VNC:s standard port 5900. Det leder till att
för varje ny vncserver man startar, ökas även
portnummret.
Hoppas det gick att förstå %)
Innan du startar upp vncservern behöver du skapa ett
vnclösenord för den profil du valt att dedikera till servern.
Detta gör man med ett program som följer med TightVNC. Logga
in i Linux med din vncuser. Använd konsolfönstret och skriv
kommandot vncpasswd för att skapa ett vnclösenord. Tips!
Skriv upp lösenordet så du inte glömmer det. Skulle du
göra det tar du bara bort raden med den användare
lösenordet är borta för, i filen /home/vncuser/.vnc/passwd och gör om proceduren.
Om du använder en senare version av KDE fungerar inte vnc
direkt. Det beror på att man valt att ändra på ett
bibliotek i QT som KDE använder, där rendering av vissa
fonter lagts ut att belasta Xservern. Detta kräver att den Xserver
man kör, klarar av denna typ av fontrendering. Detta stöds
inte av vncservern än. Det går dock att ladda hem en
uppdatering från QT som löser detta problemet, med viss
försämring av renderingen hos andra servrar som kör
parallellt.
För att försäkra oss om att det blir den
fönsterhanteraren vi vill använda till tightvnc öppnar
vi filen /home/vncuser/.vnc/xstartup och markerar bort den rad som säger: exec /etc/X11/xinit/xinitrc
och lägg till en ny rad där det står exec startgnome
för att starta gnome. Om du inte berörs av problemet som
beskrevs när det gäller KDE kan du istället ange exec
startkde om du vill starta KDE.
När du kommit så här långt är din server
redo att startas upp. Det är dock vissa saker man bör
tänka på innan man startar servern. TightVNC har ingen
inbyggd säkerhet. När den startar är den öppen
för alla. Detta gör att man brukar kapsla in processen bakom
en brandvägg om man ansluter över internet, lägga till
NIS om man vill authentisera användare på ett
intranät/extranät samt en ssh tunnel för att kryptera
och skydda anslutningen till servern.
För att kunna prova servern kan det vara en bra ide att blockera
all trafik utifrån in till din dator. Det kan du enkelt göra
genom att lägga till regler i dina /etc/hosts.deny och /etc/hosts.allow script.
Du blockerar all trafik utifrån genom att skriva in följande regel i hosts.deny:
ALL:PARANOID
ALL:ALL
och i hosts.allow:
ALL:127.0.0.1
När detta är gjort är det bra att skriva upp
ändringen man gjorde i hosts filerna så man slipper problem
när säkerheten är implementerad (det kommer mer om detta
senare).
Nu är det dags att prova. Starta vncservern med kommandot service vncserver start i ditt konsolfönster.
Om du ser en rad som ser ut ungefär:
Starting VNC server: 1:vncuser [ OK ]
Prova installationen med klienten på port 5901. Klienten startas
med kommandot vncviewer 127.0.0.1:1 (1 för port 5901) och skriv in
ditt vnclösenord.
Tada! (i de flesta fall :o)
Nu till nästa steg... Installera OpenSSH servern för
krypterad kommunikation med din maskin och konfiguration efter dina
behov.
Det är på samma sätt med denna installationen som med
TightVNC. Man kan antingen använda de installationsverktyg som
följer med distributionen eller installera för hand. Om du
installerar för hand kan du ladda ner OpenSSH först.
OpenSSH är beroende av Zlib, OpenSSL och som tillval PAM.
Zlib:
http://www.gzip.org/zlib/
OpenSSL 0.9.6 eller nyare version:
http://www.openssl.org/
OpenSSH kan dra nytta av Pluggable Authentication Modules (PAM) on ditt system
stöder det. PAM är standard i Redhat, Mandrake, Debian Linux, Solaris och
HP-UX 11.
Bra att ha. Om ditt operativsystem stöder /dev/random, borde du konfigurera
OpenSSL så att det använder det. OpenSSH litar på OpenSSL's direkt support av
/dev/random. Annars får du nöja dig med ssh-rand-helper, som
är en sämre lösning än en bra
kärnbaserad lösning.
PAM:
http://www.kernel.org/pub/linux/libs/pam/
För övrigt, att installera görs på samma sätt
som med TightVNC. Konfigurera, bygg och installera. Logga in som
administratör och skriv kommandot:
./configure --prefix=/usr &&
make &&
make install
Detta bygger och installerar OpenSSH på ditt system. Läs
INSTALL filen som följer med pakete/t/en för detaljerad
information.
När OpenSSH är installerat startar du sshdemonen med kommandot service sshd start i konsolfönstret.
Starten ser ut ungefär:
Starting sshd: [ OK ]
Nu är sshservern startad och det är dags för ett prov med vncklienten via en säker koppling mot din maskin.
Om du vill begränsa access till din maskin, förslår jag
att du installerar ett filter eller brandvägg (iptables) så
att du kan blockera inkommande trafik via port 5901 till din vncserver.
I samma brandvägg/filter öppnar du för inkommande trafik
via port 22 (ssh).
När detta är gjort kan du tryggt markera bort reglerna du tidigare lade till i hosts.deny och hosts.allow filerna.
Nu har du en skyddad vnc-miljö.
Är du en våghals gör du detta utan brandvägg.
För att prova en krypterad tunnel till din maskin. Sätt dig
vid en annan maskin som är ansluten till samma nät som den
maskin du installerat vncservern och sshservern på. Se till att
ssh fungerar på denna maskin och att en vncviewer finns
installerad. Öppna en nytt konsolfönster och skriv kommandot ssh -L 5902:localhost:5901 vncuser@vncserverhost.intranet.se (loggar in med ssh som vncuser på den maskin serverinstallationen är gjord).
Skriv ditt Linux lösenord för vncuser användaren. OBS! Det är skillnad på vnclösen och linuxlösen. Ditt linuxlösenord använder du för att logga in i Linux.
Du har just skapat en krypterad tunnel till din vncserverhost.
Nu är det dags att använda din vncklient för att ansluta
till den krypterade tunneln. I ssh kommandot använde vi den
smått kryptiska syntaxen 5902:localhost:5901. Detta kommandot
talar om för ssh att vi vill göra en port forward via ssh.
Med andra ord vi ansluter ssh mot port 22, sshservern binder sig vidare
mot port 5901 innanför brandväggen och gör en forward av
denna porten till din klientdator som en lokal port 5902.
När detta är gjort verkar det som att vncservern snurrar
på klienten, alltså samma maskin som du ansluter
ifrån.
Öppna ytterligare ett konsolförnster och skriv vncviewer localhost:2 ...
Skriv in ditt vncserverlösenord :o)
Det finns många parametrar man kan leka med för att öka
prestandan i överföringen. Själv brukar jag använda
kommandot vncviewer -encodings "copyrect hextile" -compresslevel 7 localhost:2
TightVNC har en liten meny. Man får fram den genom att trycka på F8.
Fortsättning följer....
Om du tycker att någon särskild information borde ligga här, skicka gärna dina synpunkter.
|
|
| Sverige öppnas: |
Statskontoret har tillsammans med AMS, Linköpings Universitet, Naturvårdsverket, Region Västra Götaland, RSV, Rikspolis Styrelsen, Statens Veterinärmedicinska Anstalt, Stockholms Läns Landsting och Vägverket gjort en utredning om öppna alternativ inom offentliga sektorn -  |
|