Ero sivun ”Ubuntun live-CD:n mukauttaminen” versioiden välillä
(→Mukauttaminen: kaunistaminen) |
(→Etäpelastuslevy: etäpelastus) |
||
Rivi 106: | Rivi 106: | ||
===Etäpelastuslevy=== | ===Etäpelastuslevy=== | ||
ssh- | Mikäli pelastettavan koneen luo ei pääse fyysisesti, mutta se on liitetty verkkoon, on mahdollisuus käyttää etäpelastusta. Tässä neuvotaan Live-CD:n mukauttaminen automaattiseksi etäkäyttölevyksi, joka avaa tarvittavat palvelut etäkäyttöä varten ja muodostaa palomuurin ohittavat tunnelit. | ||
Tätä käyttääksesi tarvitset: | |||
* tunnukset kiinteällä hostnamelle varustetulle palvelimelle | |||
* live-cd: avattuna mukauttamista varten (sivun alussa ohjeet) | |||
* oman julkisen ssh-avaimesi (voit luoda ssh-keygenillä) | |||
Annetaan seuraavat komennot chrootissa, joka asetettiin sivun alun ohjeiden mukaan. Asennetaan ssh-palvelin ja autossh. Autossh on universessä, joten ota se käyttöön ennen tätä. | |||
apt-get install openssh-server autossh | apt-get install openssh-server autossh | ||
Muodostetaan liverompulle ssh-avain. Anna ohjelman tallentaa tiedostot oletussijainteihin. | |||
ssh-keygen | ssh-keygen | ||
Kopioi <tt>~/.ssh/authorized_keys</tt> -tiedostoon oman julkisen avaimesi rivi. Se löytyy usein kotikoneesi tiedostosta <tt>~/.ssh/id_rsa.pub</tt> tai <tt>~/.ssh/id_dsa.pub</tt>. | |||
Jotta pääset käyttämään kaksisuuntaista tunnelia, tarvitset myös toisensuuntaisen avaimenvaihdon. Kopioi liverompun tiedosto <tt>~/.ssh/id_rsa.pub</tt> käyttämäsi palvelimen kotihakemistosi tiedoston <tt>~/.ssh/authorized_keys</tt> loppuun. Tällöin liverompun käyttäjä pääsee myös kirjautumaan käyttämällesi palvelimellei. Tässä on siis potentiaalinen tietoturva-aukko myös tähän suuntaan. Sen välttämisestä on lopussa ohjeita. | |||
Muokataan tiedostoa <tt>/etc/rc.local</tt> ja lisätään ennen riviä <tt>exit 0</tt> seuraavat rivit. Korvaa sana <tt>tunnus@hostname</tt> käyttämäsi palvelimen tiedoilla ja numerot <tt>8020</tt> ja <tt>8022</tt> käyttämilläsi palvelimen vapailla porteilla. Ensin mainittua porttia seuraavaksi suuremman portin on myös oltava vapaana, jotta tunneli toimisi. | |||
export AUTOSSH_GATETIME=0 | export AUTOSSH_GATETIME=0 | ||
export AUTOSSH_POLL=60 | export AUTOSSH_POLL=60 | ||
autossh -M | autossh -M 8020 -qf -4Ng -R 8022:127.0.0.1:22 tunnus@hostname | ||
Jotta palvelimen rivi tallentuu liverompun <tt>known-hosts</tt>-tiedostoon, täytyy yhdistää yhden kerran ja sanoa 'yes'. Sisälle pitäisi päästä ilman salasanaa, jos kaikki on kunnossa. | |||
ssh -4 tunnus@hostname | |||
Tähän tietoturvasta | |||
==EXTRAA== | ==EXTRAA== |
Versio 9. heinäkuuta 2008 kello 23.55
Ubuntun Live-CD on melko helposti mukautettavissa omaan käyttöön. Ubuntun liverompussa käytetään muokkaamattomia paketteja, joita voi asennetaa ja poistaa apt:llä kuten missä tahansa järjestelmässä.
Mukauttamisen tekee työlääksi kaksinkertainen kääriminen levykuviin. CD-imagen sisällä on squashfs:llä pakattu juuriosio. Lisäksi tietoa on kääritty mm. initrd:n sisään. Tässä ohjeessa neuvotaan kääreiden availu siten, että levytilaa kuluu niin vähän kuin mahdollista ja toki myös kääriminen takaisin valmiiksi levykuvaksi.
Lähteenä tässä ohjeessa on käytetty osoitteesta https://help.ubuntu.com/community/LiveCDCustomization löytyvää mukautusohjetta. Tässä ohjeessa käytetään lähdeartikkelista poiketen kopioinnin sijaan unionfs-moniliitoksia ja esitellään etäpelastuslevyn tekemistä.
Avaaminen mukauttamista varten
Oletetaan, että käytettävissäsi on Ubuntun levykuva. Tämä ohje on kirjoitettu Ubuntu Desktop-levyä silmällä pitäen, tosin ohje toiminee myös muihin casperia käyttäviin levyihin.
Liitetään kaikki levyt muokkausoikeuksin
Keksi jokin paikka, jossa mukautusvaiheen väliaikaiset tiedostot säilytetään. Luo paikkaan hakemisto, esimerkiksi ubuntu-live ja siirry sinne. Suorita seuraavat komennot:
mkdir -p live live-ro live-rw squashfs squashfs-ro squashfs-rw mount -o loop ALKUPERÄINEN_ISO live-ro mount -t unionfs -o dirs=live-rw:live-ro=ro none live mount -o loop -t squashfs live-ro/casper/filesystem.squashfs squashfs-ro/ mount -t unionfs -o dirs=squashfs-rw:squashfs-ro=ro none squashfs
Komentojen seurauksena syntyy muokkausoikeuksilla varustetut hakemistot live ja squashfs. Hakemistossa live on varsinaisen liverompun juurihakemisto – eli se, joka näkyy, kun rompun laittaa koneeseen. Hakemistossa squashfs puolestaan on rompulta bootatun järjestelmän juurihakemisto, Esimerkiksi asennetut ohjelmat sijaitsevat squashfs-hakemistossa.
Seuraavaksi valmistellaan verkkoyhteydet ja chroot-ympäristö, jotta päästäisiin muokkaamaan liveromppua livenä. :-) Komennot ajetaan samasta hakemistosta kuin ylläolevat.
cp /etc/resolv.conf squashfs/etc/ mount --bind /dev/ squashfs/dev chroot squashfs
Nyt eteen avautuva komentotulkki on live-cd:llä. Siellä on valmiina tarvittavat perusohjelmistot mm. komentotulkin käyttöä varten.
Valmistellaan vielä ympäristöä lisäämällä välttämättömät pseudotiedostojärjestelmät ja asetetaan pari ympäristömuuttujaa välttämään ongelmia. Localen asettamisella pyritään välttämään mm. omasta koneesta periytyvien localeiden sivuvaikutukset.
mount -t proc none /proc mount -t sysfs none /sys export HOME=/root export LC_ALL=C
Nyt ympäristö on valmis käytettäväksi ja voit siirtyä kohtaan mukauttaminen.
Paketointi uudeksi levykuvaksi
Lisätietoja lähteenä olevan oppaan kohdasta Cleanup.
Oletetaan, että olet vielä chrootin sisällä. Jos olet ehtinyt jo poistumaan, palaa takaisin.
Poistetaan tarpeettomat tiedostot ja poistutaan chroot-ympäristöstä:
apt-get clean rm -rf /tmp/* rm /root/.bash_history rm /etc/resolv.conf umount /proc umount /sys exit
Irroitetaan vielä dev-tiedostojärjestelmä chrootin ulkopuolelta:
umount squashfs/dev
Nyt tehdään rutiinitoimenpiteitä, kuten päivitetään pakettilistaukset ja kapseloidaan squashfs-levykuva uudestaan. Viimeisin rivi vie eniten aikaa, koska se pakkaa juurihakemiston tiedostot squashfs-levykuvaksi cd:n levykuvan sisään.
chmod +w live/casper/filesystem.manifest chroot squashfs dpkg-query -W --showformat='${Package} ${Version}\n' >live/casper/filesystem.manifest cp live/casper/filesystem.manifest live/casper/filesystem.manifest-desktop sed -i '/ubiquity/d' live/casper/filesystem.manifest-desktop rm live/casper/filesystem.squashfs mksquashfs squashfs live/casper/filesystem.squashfs -nolzma
Saatoit ihmettelit yllä, että miten levykuva voidaan noin vain poistaa, vaikka se on vielä liitettynä. Tämä onnistuu, koska vanha squashfs on mountattu live-ro-hakemistosta, eikä live-hakemistosta. Kyseessä on siis käytännössä eri tiedosto, vaikka jakavatkin saman levysijainnin.
Tässä vaiheessa voit muokata levyn nimen haluamaksesi tiedostosta live/README.diskdefines.
Lopuksi muodostetaan md5-summat uudestaan.
rm live/md5sum.txt (cd live && find . -type f -print0 | xargs -0 md5sum > md5sum.txt)
Nyt luodaan lopulta uusi levykuva. Muokkaa halutessasi mkisofs:n -V-parametrin määrittelemää levynnimeä ja uuden levykuvan tiedostonnimeä.
cd live mkisofs -r -V "ZouppenRoot" -cache-inodes -J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot- info-table -o ../UUSI_ISO.iso . cd ..
Irroitetaan mukauttamisen aikaiset tiedostojärjestelmät:
umount live squashfs squashfs-ro live-ro
Valmista tuli! Lopuksi levyllesi jäi notkumaan vajaan gigatavun verran väliaikaisia tiedostoja. Hakemistossa live-rw on muutokset alkuperäiseen liveromppuun verrattuna (eniten tilaa vie uusi squashfs-levykuva). Hakemistossa squashfs-rw sen sijaan on muutokset valmiin live-ympäristön tiedostojärjestelmässä. Voit säilyttää ne myöhempiä muokkauksia varten tai tuhota heti. Mikäli säilytät ne, voit ottaa ympäristön käyttöön täsmälleen samoilla komennoilla, jotka voit näppärästi kasata vaikka skriptiksi.
Mukauttaminen
Mikäli tarvitset lisää tilaa Live-CD:lle, voit poistaa tarpeettomia paketteja. Jotta pystyt polttamaan levyn tavalliselle rompulle, ei lopullisen levykuvan koko saa kasvaa 700 megatavun yli.
Paketit kannattaa poistaa käyttäen purgea, jolloin myös asetustiedostot poistuvat. Esimerkiksi näin:
apt-get remove --purge openoffice.org-core gimp gimp-data
Hyvän käsityksen kunkin paketin tilan kulutuksesta saa tällaisella virityksellä:
dpkg-query -W --showformat='${Installed-Size} ${Package}\n' | sort -nr | less
Voit muokata tarvittaessa /etc/apt/sources.list -tiedostoa esimerkiksi ottamalla käyttöön universe-paketit. Voit samalla päivittää järjestelmän uusimpaan versioon:
apt-get update apt-get dist-upgrade
Etäpelastuslevy
Mikäli pelastettavan koneen luo ei pääse fyysisesti, mutta se on liitetty verkkoon, on mahdollisuus käyttää etäpelastusta. Tässä neuvotaan Live-CD:n mukauttaminen automaattiseksi etäkäyttölevyksi, joka avaa tarvittavat palvelut etäkäyttöä varten ja muodostaa palomuurin ohittavat tunnelit.
Tätä käyttääksesi tarvitset:
- tunnukset kiinteällä hostnamelle varustetulle palvelimelle
- live-cd: avattuna mukauttamista varten (sivun alussa ohjeet)
- oman julkisen ssh-avaimesi (voit luoda ssh-keygenillä)
Annetaan seuraavat komennot chrootissa, joka asetettiin sivun alun ohjeiden mukaan. Asennetaan ssh-palvelin ja autossh. Autossh on universessä, joten ota se käyttöön ennen tätä.
apt-get install openssh-server autossh
Muodostetaan liverompulle ssh-avain. Anna ohjelman tallentaa tiedostot oletussijainteihin.
ssh-keygen
Kopioi ~/.ssh/authorized_keys -tiedostoon oman julkisen avaimesi rivi. Se löytyy usein kotikoneesi tiedostosta ~/.ssh/id_rsa.pub tai ~/.ssh/id_dsa.pub.
Jotta pääset käyttämään kaksisuuntaista tunnelia, tarvitset myös toisensuuntaisen avaimenvaihdon. Kopioi liverompun tiedosto ~/.ssh/id_rsa.pub käyttämäsi palvelimen kotihakemistosi tiedoston ~/.ssh/authorized_keys loppuun. Tällöin liverompun käyttäjä pääsee myös kirjautumaan käyttämällesi palvelimellei. Tässä on siis potentiaalinen tietoturva-aukko myös tähän suuntaan. Sen välttämisestä on lopussa ohjeita.
Muokataan tiedostoa /etc/rc.local ja lisätään ennen riviä exit 0 seuraavat rivit. Korvaa sana tunnus@hostname käyttämäsi palvelimen tiedoilla ja numerot 8020 ja 8022 käyttämilläsi palvelimen vapailla porteilla. Ensin mainittua porttia seuraavaksi suuremman portin on myös oltava vapaana, jotta tunneli toimisi.
export AUTOSSH_GATETIME=0 export AUTOSSH_POLL=60 autossh -M 8020 -qf -4Ng -R 8022:127.0.0.1:22 tunnus@hostname
Jotta palvelimen rivi tallentuu liverompun known-hosts-tiedostoon, täytyy yhdistää yhden kerran ja sanoa 'yes'. Sisälle pitäisi päästä ilman salasanaa, jos kaikki on kunnossa.
ssh -4 tunnus@hostname
Tähän tietoturvasta
EXTRAA
kuvan muokkaus, toimii vaikka valittaa
ppmtolss16 '#ffffff=7' < ~joell/kuvia/ubunturootkit-splash.ppm > live/isolinux/splash.rle cat ~joell/kuvia/ubunturootkit-splash.pcx > live/isolinux/splash.pcx
turhien kielten poisto alkulistasta
live/isolinux/langlist