X2go
X2Go
Autorid: Martin Lehari, Riho Hiiepuu, Kaarel Kont-Kontson
Mis on x2go?
x2go on vabavaraline terminal serveri projekt. x2go võimaldab ka jooksutada erinevaid operatsiooni süsteeme virtuaal masinatena. Näiteks: windows, linuxi erinevad distrod, MacOS.
x2go võimaldab ka luua õhukesi kliente väike seadete jaoks nagu pihuarvutid ja mobiil telefonid (millel on vastav tugi olemas).
Käesoleva töö raames sai kasutatud op. süsteemina Debian GNU/Linux 5.0.7 (Lenny) 32bit versiooni. Katsetatud sai ka Ubuntu serveri ja desktopi väljalaskeid. Kuna X2Go tarkvara on mõeldud toimima ainult puhta Debiani peal, siis osade pakettide paigaldamine ebaõnnestus.
Installeerimine
Eeldused
Toimiv võrguühendus, staatiline IP!
x2go Server
Kõigepealt impordime süsteemi x2go repositooriumi GPG võtmed
gpg --keyserver wwwkeys.eu.pgp.net --recv-keys C509840B96F89133 gpg -a --export C509840B96F89133 | apt-key add -
Seejärel lisame x2go repositooriumi aadressi sources.list faili
echo "deb http://x2go.obviously-nice.de/deb/ lenny main" >> /etc/apt/sources.list
PS! Sama asja võib teha ka mõne tekstiredaktoriga, aga sedasi ridade lisamine on lihtsalt kiirem.
Kõige lõpuks uuendame pakkide nimistu
aptitude update
Nüüd kus serveri paigalduseks on kõik eeldused loodud, võime vajalike pakkide paigaldusega jätkata. Esimese hooga paigaldatakse x2go serveri pakid koos SSH failisüsteemi ja PostgreSQL serveriga.
aptitude install x2goserver x2gosessionadministration x2gokdebindings sshfs postgresql
Kui serverisse on paigaldatud ainult baasüsteem, siis lisanduvad paigaldatavate pakettide nimistusse veel mitmed sõltuvused (sh. xorg).
Võimaldame kõigil kasutajatel süsteemi sisse logida
echo "%users ALL=(ALL) NOPASSWD: /usr/bin/x2gopgwrapper " >> /etc/sudoers
Impordime vajaliku andmebaasi
cd /usr/lib/x2go/script/ ./x2gocreatebase.sh
Kõige esimene veateade (dropdb: database removal failed: ERROR: database "x2go_sessions" does not exist) on normaalne ja ei tasu lasta ennast sellest heidutada.
Määrame /dev/fuse failile korrektsed õigused
chown root:fuse /dev/fuse chmod 660 /dev/fuse
LDAP server
Järgmisena paigaldame lokaalse LDAP serveri (vajalik kasutajate autentimiseks).
aptitude install x2goldaptools x2gouseradministration x2gohostadministration x2gosystemadministration x2gogroupadministration x2gomail
LDAP'i paigaldusskriptid hakkavad küsima küsimusi. Vastamiseks võid kasutada vaikeväärtuseid, kuna hilisemad x2go paigaldusskriptid teevad vajalikud seadistused ise ära.
Järgmiseks täiendame hosts faili serveri IP aadressi ja hostname'iga
echo "<serveri_ip> <serveri_hostname>.local <serveri_hostname>" >> /etc/hosts
Genereerime LDAP'i konfiguratsiooni
cd /usr/share/x2goldaptools/config/ ./genconf <LDAP URI> <organisatsiooni_nimi> <riigi_kood> <domeeni_nimi> <netbios_nimi>
Antud töö kirjutamiseks kasutatud testsüsteemi parameetrid olid näiteks sellised:
./genconf x2goserver x2goserver.local ee x2gogroup x2goserver
X2Go Thin Client
Kuna kõik kasud on tehtud root kasutaja all, siis võib ennast logida sisse roodina kohe või kasutada sudo enne igat käsku.
sudo -i
Esiteks on meil vaja DHCP serverit, TFTP server (atftp), NFS kernel server ja debootstrap
aptitude install dhcp3-server atftpd nfs-kernel-server debootstrap
Järgmiseks loome kausta kliendi jaoks
mkdir /opt/x2gothinclient
Kasutame debootstrap-i et laadida alla Debian Lenny süsteem
debootstrap --arch i386 lenny /opt/x2gothinclient/ http://ftp2.de.debian.org/debian
Teha koopia resolv.conf failist kliendi faili süsteemi jaoks.
cp /etc/resolv.conf /opt/x2gothinclient/etc/resolv.conf
Luua uus interfaces fail kliendi op systeemi jaoks kaustas /opt/x2gothinclient/etc/network/interfaces ja sinna ssisestada:
auto lo iface lo inet loopback
Tekitame uued kirjed kliendi hostname ja hosts faili.
echo x2gothinclient >> /opt/x2gothinclient/etc/hostname echo "127.0.0.1 localhost" >> /opt/x2gothinclient/etc/hosts
Määrame ära x2goserveri
echo "ip_address domeeni_nimi nimi" >> /opt/x2gothinclient/etc/hosts
NB!!!! Järgmine osa toimub CHROOT keskkonnas, ole hästi ettevaatlik!
Siseneme chroot keskkonda
chroot /opt/x2gothinclient /bin/bash