Ero sivun ”Epäviralliset pakettivarastot” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(uusi rakenne, väliotsikot, uutta tekstiä)
(vaihtoehdot)
Rivi 44: Rivi 44:
Yhteensopivuuden eräs osaongelma on tukeeko ohjelman tekijä myös vanhoja ohjelman versioita, vai joutuuko aina päivittämään saadakseen tietoturvakorjaukset käyttöönsä.
Yhteensopivuuden eräs osaongelma on tukeeko ohjelman tekijä myös vanhoja ohjelman versioita, vai joutuuko aina päivittämään saadakseen tietoturvakorjaukset käyttöönsä.


Joissakin tapauksissa ohjelman tekijään ei luota kuin osittain: ohjelmaa ei haluta ajaa kuin rajoitetuin oikeuksin tai muuten valvotuissa oloissa. Tällöin ohjelma kannattaa ehdottomasti asentaa lähdekoodista kääntämällä, kolmannen tahon kautta tai vähintään niin että asennuskin tehdään rajoitetulla käyttäjätunnuksella.
Joissakin tapauksissa ohjelman tekijään ei luota kuin osittain: ohjelmaa ei haluta ajaa kuin rajoitetuin oikeuksin tai muuten valvotuissa oloissa. Tällöin ohjelma kannattaa ehdottomasti asentaa lähdekoodista kääntämällä, kolmannen tahon kautta tai vähintään niin että asennuskin tehdään rajoitetulla käyttäjätunnuksella (katso alla).
<!-- esimerkkejä: opera, nvidia -->
<!-- esimerkkejä: opera, nvidia -->


Rivi 68: Rivi 68:


Joskus tällainen ulkopuolinen pakettilähde kehittyy uudeksi, ainakin alkuvaiheessa yhteensopivaksi, itsenäiseksi jakeluksi.
Joskus tällainen ulkopuolinen pakettilähde kehittyy uudeksi, ainakin alkuvaiheessa yhteensopivaksi, itsenäiseksi jakeluksi.
<!-- vrt Ximian, Redhat-kloonit -->


=== Suljettu koodi ===
=== Suljettu koodi ===
Rivi 75: Rivi 76:
Epävapaita ohjelmia, joista osalla on suljettu lähdekoodi, on [[Ubuntu]]ssa osioissa ''restricted'' ja ''multiverse''. [[Debian]]issa niitä on osiossa ''non-free'' ja myös osion ''contrib'' asennusskriptit saattavat asentaa niitä. Joissakin jakeluissa myös osa jakelun itse kehittämistä ohjelmista ovat epävapaita.
Epävapaita ohjelmia, joista osalla on suljettu lähdekoodi, on [[Ubuntu]]ssa osioissa ''restricted'' ja ''multiverse''. [[Debian]]issa niitä on osiossa ''non-free'' ja myös osion ''contrib'' asennusskriptit saattavat asentaa niitä. Joissakin jakeluissa myös osa jakelun itse kehittämistä ohjelmista ovat epävapaita.


<!--
== Vaihtoehdot ==
* Ohjelmantekijä lähteenä (nvidia, opera & co)
 
* debianin contrib
Riippumatta siitä löytyykö allaolevista tilanteeseen sopivaa vaihtoehtoja, vieraista lähteistä ei pidä asentaa mitään ylimääräistä. Jos asennettava ohjelma vaatii muita vieraita paketteja, esimerkiksi ohjelmakirjastoja, kannattaa ehdottomasti varmistaa, ettei niiden asentaminen johda kierteeseen, jossa järjestelmän vakaus ja [[paketinhallintajärjestelmä]]n toimivuus vaarannu.
* muiden contrib
 
* non-free
=== Oman jakelun lähdekoodista kääntäminen ===
* backports
 
* ximian & al-->
Jos haluttu paketti löytyy omasta jakelusta, mutta ei sen siitä versiosta, jota itse käyttää, ratkaisu voi olla kääntää paketti itse. Kääntämällä ohjelma se saadaan käyttämään niitä kirjastoversioita, joita omalla koneella on asennettuna. Näin paketin voi yleensä asentaa ilman toisen jakeluversion kirjastoja.
 
Monimutkaisempi paketti saattaa kääntämiseenkin vaatia tiettyjä kirjastoversioita, jolloin osaamista vaaditaan toimivan kokonaisuuden aikaansaamiseksi. Yhteensopivuusongelmia voi olla muitakin, esimerkiksi jokin käytäntö on saattanut muuttua.
 
Jakelun omia työkaluja kannattaa käyttää ja paketti kääntää oikeaksi paketiksi. Tämä sujuu usein hyvinkin helposti, Debianissa helpoimmassa tapauksessa (kun oikeat lähdekoodivarastot on laitettu pakettilähteisiin):
apt-get build-dep paketti
apt-get --compile source paketti
dpkg --install paketti_versio.deb
 
Näin paketti on paketinhallinnan piirissä. Versionumero on kuitenkin suurempi kuin ''stablen'' tietoturvapäivityksissä (jos paketti ylipäänsä löytyy sieltä), joten päivitykset on asennettava itse, korjatusta versiosta samalla tavalla kääntäen.
 
=== Vieraasta lähdekoodista kääntäminen ===
 
Perinteinen tapa asentaa uusia ohjelmia unixeihin on [[kääntäminen|kääntää]] ne [[lähdekoodi]]sta. Nykyiset standardit ja työkalut helpottavat ohjelmien kirjoittamista yhteensopivasti ja GNU/Linux on varteenotettava ympäristö Unix-maailmassa. Tästä syystä ohjelmat kääntyvät ja toimivat yleensä ilman suurempia ongelmia ainakin useimmissa PC-ympäristöissä.
 
Hyvinkäyttäytyvä ohjelma asentuu oletuksena hakemiston /usr/local (tai mahdollisesti /opt), jossa se ei häiritse paketinhallinnan piirissä olevia ohjelmia. Ohjelmasta voi myös kohtuullisen helposti tehdä oman distron paketin (mahdollisesti jopa pelkällä make-käskyn valitsimella) tai sen voi asentaa [[CheckInstall]]-työkalulla tai vastaavalla, jolloin sen poistaminen myöhemmin on helppoa.
 
Lähdekoodista käännettäessä yhteensopivuusongelmat ovat vähäisempiä kuin valmiiksi käänettyä ohjelmaa asennettaessa, mutta niitä voi esiintyä. Samaten tietoturvaongelmat ovat yleensä pienemmät, mutta julkisestikin esillä olevaan koodiin voi piilottaa troijanhevosia ja koodi voi olla huonolaatuista.
 
Ongelmien arviointi vaatii osaamista, mutta ainakin www-käyttöön tarkoitettuja pieniä skriptikielisiä ohjelmia tai ohjelmanpätkiä tulee varoa: niitä on helppo kirjoittaa ymmärtämättä käytettyä kieltä kovin syvällisesti ja niistä löytyy usein tietoturva-aukkoja.
 
Tietoturva-aukot itsekäännetyissä ohjelmissa korjataan kääntämällä ohjelma uudestaan korjatusta lähdekoodista ja asentamalla tämä uusi versio vanhan tilalle. Tietoturvapääivityksen tarve on huomattava itse seuraamalla sopivia sähköpostilistoja tms.
 
=== Vaihtoehto omasta jakelusta ===
 
Jollei keksi helppoa ja turvallista tapaa asentaa jokin kaivattu paketti, kannattaa miettiä onko sen tarve todellinen; ehkä omasta jakelusta löytyisi riittävän hyvä korvike? Ehkä haluttu ohjelma löytyykin eri nimellä? Löytyykö haluttu versio lähdekoodina omalle jakelulle sovitettuna?
 
Jos tarve syntyy toisen epävirallisesta lähteestä asennettavan paketin riippuvuuksista kannattaa miettiä erityisen vakavasti, ovatko riippuvuudet oikein määritelty. Ehkä kaivattu paketti löytyykin eri nimellä omasta jakelusta? Ehkä alkuperäisen paketin saisi asennettua helpomminkin? Pääsisikö riippuvuudesta kääntämällä jokin osa uudestaan? Vieraiden kirjastojen asentaminen oman jakelun vastaavien tilalle tai rinnalle aikaansaa helposti monimutkaisia ongelmia. Alkuperäistä ongelmaa kannattaa vielä miettiä tarkkaan.


== Vaihtoehdot ==
=== Asentaminen eri käyttäjänä ===
 
Jos välttämättä haluaa asentaa ohjelman, jonka laatuun tai tietoturvaan ei luota, sen asennusskriptejä ei kannata ajaa ylläpito-oikeuksin. Tätä tarvetta varten voi luoda eri käyttäjän ja ohjelmaa varten oman hakemiston, joka luovutetaan tämän käyttäjän omistukseen. Tyypillinen hakemisto on /opt/mikälieohjelma.
 
Asennusohjelma ajetaan vartavasten luodulla tunnuksella ja asennushakemistoksi määrätään tämä äsken luotu. Asennuksen jälkeen poistetaan mahdolliset suid- tai sgid-oikeudet ja hakemistorakenne kaikkinensa siirretään rootin omistukseen. Haluttaessa johonkin ohjelmahakemistoon (esimerkiksi /opt/bin) tehdään [[symbolinen linkki|symlinkit]] ohjelmatiedostoon tai kirjoitetaan yksinkertainen skripti, joka käynnistää ohjelman. Varmistetaan, että ohjelmahakemisto ei löydy ainakaan rootin [[PATH]]-muuttujasta.
 
Joskus asennusohjelma tarkistaa joko se ajetan rootin oikeuksin eikä suostu jatkamaan tavallisena käyttäjänä, olettaen etteivät tavallisen käyttäjän oikeudet riitä ohjelman asentamiseen. Jos asennusohjelma on [[skripti]] (katso [[Bash-skriptaus]]), tämä tarkistus saattaa olla helposti löydettävissä ja poistettavissa. Muussa tapauksessa tarkistuksesta pääsee käyttämällä ohjelmaa [[fakeroot]] tai vastaavaa. Pahimmassa tapauksessa asennusohjelma on ajettava [[chroot]]-ympäristössä (jos sitä vielä haluaa ajaa).


* [[Lähdekoodi]]sta [[kääntäminen]]
Jos näihin erikoistoimiin ei halua ryhtyä, mutta haluaa asentaa kyseisen ohjelman, yksi tapa on ottaa täysi varmuuskopio DVD:lle kaikesta, minkä muuttamiseen asennusohjelman oikeudet tulevat riittämään. Varmistetaan, ettei koneella tehdä muuta (anacron, toiset käyttäjät tms.), asennetaan ohjelma, käynnistetään kone live-CD:ltä ja verrataan DVD:llä olevaa varmuuskopiota koneen nykytilaan.
* Asentaminen eri käyttäjänä
* Vaihtoehto omasta jakelusta


Epäviralliset pakettilähteet saattavat aiheuttaa järjestelmän päivityksen epäonnistumisen, mikäli epäviralliset paketit ovat ristiriidassa järjestelmän virallisten tai toisten epävirallisten pakettilähteiden pakettien kanssa. Tällaisia tapauksia voi torjua minimoimalla epävirallisten pakettilähteiden määrän sekä poistamalla häiriötä aiheuttavat paketit päivitysprosessin ajaksi.
== Varoitusmerkintä ==


Epäviralliset pakettilähteet ovat joskus välttämättömiä, mutta tällöin on mietittävä tarkkaan, mitä ja minkälaisia paketteja pakettilähde tarjoaa ja voiko sen ylläpitäjään luottaa. Tässä wikissä epävirallisista pakettilähteistä pyritään varoittamaan tällaisella laatikolla:
Tässä wikissä epävirallisista pakettilähteistä pyritään varoittamaan tällaisella laatikolla:
{{Epävirallinen pakettilähde}}
{{Epävirallinen pakettilähde}}




[[Luokka:Tietoturva]]
[[Luokka:Tietoturva]]

Versio 6. helmikuuta 2008 kello 15.04

Jakelupaketin omasta paketinhallinnasta ei aina löydy kaikkia tarvittavia ohjelmia, jolloin ratkaisuksi tarjotaan usein epävirallisen pakettilähteen käyttämistä. Vieraiden pakettien asentaminen saattaa kuitenkin vaarantaa tietoturvaa tai järjestelmän toimintaa.

Edut

Koska pakettilähteen paketit ovat paketinhallinnan haluamassa muodossa, mahdollisesti suoraan käytettävänä pakettiarkistona, niiden käyttäminen on helppoa suoraan normaalista paketinhallinnasta. Riippuvuuksista ja päivityksistä pidetään mahdollisesti huolta kuten jakelun omienkin pakettien kohdalla.

Jos pakettilähteen ylläpitäjät huolehtivat tietoturvasta, lähde on sopivassa muodossa ja se on lisättynä lähdelistaan, tietoturvapäivitykset asentuvat puoliautomaattisesti.

Näilä perusteilla epävirallisen pakettilähteen käyttäminen on käytännöllisempää ja turvallisempaa kuin vastaavan paketin asentaminen lähdekoodista tai muuten paketinhallinnan ohi – kunhan pakettilähteen ylläpitäjät huolehtivat tietoturvasta ja tekevät paketin jakelun käytäntöjen mukaan.

Vaarat

Epäyhteensopivuus

Jos pakettilähteen ylläpitäjä tekee paketteja useammalle jakelulle, kaikkien tuettujen jakeluiden tuntemus ei välttämättä ole riittävän hyvä eikä aika välttämättä riitä pakettien räätälöintiin. Tällöin kiusaus on suuri olettaa jakeluiden käyttäytyvän oman jakelun lailla ja pienet eroavaisuudet voivatkin rikkoa paketin toiminnan.

Tavallisimmat epäyhteensopivuusongelmat ovat eri ohjelmakirjastojen, niiden eri versioiden tai versioiden erilaisen numeroinnin käyttö. Tämä saattaa aiheuttaa riippuvuusongelmia (vrt DLL hell). Pahimmassa tapauksessa jakelun oma ohjelmakirjasto korvaantuu epävirallisen pakettilähteen epäyhteensopivalla versiolla.

Väärillä oletuksilla tehty paketti saattaa rikkoa tiedostoja, joita asennusskriptit yrittävät muokata, tai kokonaan korvata tiedostoja omilla versioilla. Tähän on jakeluilla tarkkaan mietityt käytännöt, joista ulkopuolinen paketoija ei välttämättä ole riittävästi tietoinen. Paketoija ei myöskään tiedä mahdollisista uusista erikoisjärjestelyistä.

Epäviralliset pakettilähteet saattavat myös aiheuttaa järjestelmän päivityksen epäonnistumisen, mikäli epäviralliset paketit tai näiden rriippuvuudet ovat ristiriidassa järjestelmän virallisten tai toisten epävirallisten pakettilähteiden pakettien kanssa.

Huono ylläpito

Pakettilähteen ylläpitäjät eivät välttämättä huolehdi tietoturvasta yhtä tarkkaan kuin oma jakelu. Mahdollisesti tietoturvakorjaukset tehdään uusiin versioihin, jotka eivät sovi vanhempaan jakelun versioon. Näin tietoturvakorjaukset jäävät asentamatta tai vieras paketti pakottaa päivittämään muuten hyvin toimivaa jakelua uuteen.

Pahimmassa tapauksessa itse paketti on huonosti tehty, niin että se asentuessaan rikkoo järjestelmän. Asennusskriptit voivat yleensä vapaasti muuttaa järjestelmää ja pieni kirjoitusvirhe saattaa olla kohtalokas.

Yleensä, kun pakettilähde lisätään paketinhallintajärjestelmään, tästä lähteestä saatetaan asentaa mitä tahansa paketteja, ei pelkästään sitä, jonka takia lähde lisättiin. Tämä suurentaa ongelmia entisestään, ellei muitten pakettien asentamista tästä lähteestä erikseen estetä.

Tietoturvaongelmat

Sen lisäksi, että paketti sisältää ylläpitäjän (rootin) oikeuksin ajettavaa ohjelmakoodia, johon on helppo tarkoituksella upottaa haittaohjelmia, paketti voi sisältää tahattomia tietoturva-aukkoja.

Ei siis riitä, että luottaa paketoijan ja pakettilähteen ylläpitäjän hyvään tahtoon. Myös tietoturvaosaaminen ja viitseliäisyys sekä itse palvelimen tietoturvataso ovat ratkaisevia. Myös pakettien mahdollisten tietoturva-aukkojen korjaaminen ja pakettien päivittäminen pitää olla kunnossa, jottei tietoturva vaarantuisi.

Erityyppiset epäviralliset lähteet

Ohjelmantekijä

Usein ohjelman tekijä itse paketoi ohjelmansa eri jakeluille. Tällöin huolenaiheena lienee lähinnä paketin yhteensopivuus: jos ohjelmaa uskaltaa käyttää, tekijään luultavasti luottaa, ainakin hyvän tahdon suhteen. Tietoturvakorjaukset lähetetän ohjelman tekijälle, jotta hän voisi liittää ne tuleviin versioihin ja ovat siten luultavasti saatavissa tällaisesta lähteestä.

Yhteensopivuuden eräs osaongelma on tukeeko ohjelman tekijä myös vanhoja ohjelman versioita, vai joutuuko aina päivittämään saadakseen tietoturvakorjaukset käyttöönsä.

Joissakin tapauksissa ohjelman tekijään ei luota kuin osittain: ohjelmaa ei haluta ajaa kuin rajoitetuin oikeuksin tai muuten valvotuissa oloissa. Tällöin ohjelma kannattaa ehdottomasti asentaa lähdekoodista kääntämällä, kolmannen tahon kautta tai vähintään niin että asennuskin tehdään rajoitetulla käyttäjätunnuksella (katso alla).

Backports

Koska Debianin vakaa julkaisu usein on vanha, jotkut Debian-kehittäjät loivat epävirallisen pakettilähteen, josta tarjotaan ohjelmien uudempia versioita paketoituina tähän vanhaan jakeluun. Tällainen järjestely takaa varmemmin yhteensopivat paketit kuin ulkopuolisen tahon paketoimat uudemmat versiot. Testaus on kuitenkin vähäisempää kuin virallisten pakettien osalta ja sikäli kuin sovittaminen vanhaan jakeluun on vaikeaa, tämä voi aiheuttaa ongelmia myös itse paketeissa.

Myös Ubuntulla on backports-järjestely.

Uudemmat ohjelmaversiot saattavat sekoittaa järjestelmän päivitystä, koska ne eivät välttämättä sujuvasti korvaannu uuden julkaisun uusilla paketeilla. Epävirallinen asema saattaa myös vaikuttaa tietoturvapäivityksiin ja yleiseen pakettien laatuun.

Backports-paketteja ei yllämainittujen ongelmien takia kannata asentaa kuin niiden ohjelmien osalta, joissa tosiaan kaipaa uudempaa versiota.

"contrib", "universe"

Monella jakelulla on siihen kiinteästi kuuluvien pakettien lisäksi laajempi pakettivarasto, jossa on vähemmän huolellisesti testattua ohjelmistoa, joita ei muodollisesti tueta, mahdollisesti myös pakettivarasto, joihin käyttäjät voivat lisätä itse tekemiään paketteja. Tätä pakettivarastoa asennuslähteisiin lisättäessä kannattaa selvittää sen asema ja miten pitkälle siihen kannattaa luottaa.

Debianissa contrib tarkoittaa, että paketit riippuvat ei-vapaista osista. Koska Debian on vapaa käyttöjärjestelmä, contrib-paketit eivät voi virallisesti olla sen osa, vaikka ne muuten käsitelläänkin samalla tavalla kuin virallisia paketteja. contrib-paketteja käytettäessä kannattaa pitää mielessä, että niiden asentaminen saattaa tuoda koneelle kolmannen osapuolen suljettua koodia (tämä selviää paketin riippuvuuksia ja asennusskriptejä tutkimalla, usein jo paketin kuvauksesta).

Ulkopuoliset tahot

Myös kokonaan ulkopuoliset saattavat tarjota pakettilähteitä, esimerkiksi niin, että niitä on tarvittu sisäiseen käyttöön ja myöhemmin keksitty tarjota myös yleiseen jakoon. Tällaisen pakettivlähteen luotettavuutta on arvioitava tapaus tapaukselta.

Joskus tällainen ulkopuolinen pakettilähde kehittyy uudeksi, ainakin alkuvaiheessa yhteensopivaksi, itsenäiseksi jakeluksi.

Suljettu koodi

Mikäli jonkin ohjelmapaketin lähdekoodi ei ole saatavilla, ohjelman turvallisuutta vakaus- tai tietoturvamielessä on vaikea kenenkään muun kuin tekijän arvioida (paitsi sikäli kuin huomataan puutteita). Näin suljettua koodia asennettaessa on vielä tarkemmin otettava huomiota epävirallisia paketteja koskevat riskit.

Epävapaita ohjelmia, joista osalla on suljettu lähdekoodi, on Ubuntussa osioissa restricted ja multiverse. Debianissa niitä on osiossa non-free ja myös osion contrib asennusskriptit saattavat asentaa niitä. Joissakin jakeluissa myös osa jakelun itse kehittämistä ohjelmista ovat epävapaita.

Vaihtoehdot

Riippumatta siitä löytyykö allaolevista tilanteeseen sopivaa vaihtoehtoja, vieraista lähteistä ei pidä asentaa mitään ylimääräistä. Jos asennettava ohjelma vaatii muita vieraita paketteja, esimerkiksi ohjelmakirjastoja, kannattaa ehdottomasti varmistaa, ettei niiden asentaminen johda kierteeseen, jossa järjestelmän vakaus ja paketinhallintajärjestelmän toimivuus vaarannu.

Oman jakelun lähdekoodista kääntäminen

Jos haluttu paketti löytyy omasta jakelusta, mutta ei sen siitä versiosta, jota itse käyttää, ratkaisu voi olla kääntää paketti itse. Kääntämällä ohjelma se saadaan käyttämään niitä kirjastoversioita, joita omalla koneella on asennettuna. Näin paketin voi yleensä asentaa ilman toisen jakeluversion kirjastoja.

Monimutkaisempi paketti saattaa kääntämiseenkin vaatia tiettyjä kirjastoversioita, jolloin osaamista vaaditaan toimivan kokonaisuuden aikaansaamiseksi. Yhteensopivuusongelmia voi olla muitakin, esimerkiksi jokin käytäntö on saattanut muuttua.

Jakelun omia työkaluja kannattaa käyttää ja paketti kääntää oikeaksi paketiksi. Tämä sujuu usein hyvinkin helposti, Debianissa helpoimmassa tapauksessa (kun oikeat lähdekoodivarastot on laitettu pakettilähteisiin):

apt-get build-dep paketti
apt-get --compile source paketti
dpkg --install paketti_versio.deb

Näin paketti on paketinhallinnan piirissä. Versionumero on kuitenkin suurempi kuin stablen tietoturvapäivityksissä (jos paketti ylipäänsä löytyy sieltä), joten päivitykset on asennettava itse, korjatusta versiosta samalla tavalla kääntäen.

Vieraasta lähdekoodista kääntäminen

Perinteinen tapa asentaa uusia ohjelmia unixeihin on kääntää ne lähdekoodista. Nykyiset standardit ja työkalut helpottavat ohjelmien kirjoittamista yhteensopivasti ja GNU/Linux on varteenotettava ympäristö Unix-maailmassa. Tästä syystä ohjelmat kääntyvät ja toimivat yleensä ilman suurempia ongelmia ainakin useimmissa PC-ympäristöissä.

Hyvinkäyttäytyvä ohjelma asentuu oletuksena hakemiston /usr/local (tai mahdollisesti /opt), jossa se ei häiritse paketinhallinnan piirissä olevia ohjelmia. Ohjelmasta voi myös kohtuullisen helposti tehdä oman distron paketin (mahdollisesti jopa pelkällä make-käskyn valitsimella) tai sen voi asentaa CheckInstall-työkalulla tai vastaavalla, jolloin sen poistaminen myöhemmin on helppoa.

Lähdekoodista käännettäessä yhteensopivuusongelmat ovat vähäisempiä kuin valmiiksi käänettyä ohjelmaa asennettaessa, mutta niitä voi esiintyä. Samaten tietoturvaongelmat ovat yleensä pienemmät, mutta julkisestikin esillä olevaan koodiin voi piilottaa troijanhevosia ja koodi voi olla huonolaatuista.

Ongelmien arviointi vaatii osaamista, mutta ainakin www-käyttöön tarkoitettuja pieniä skriptikielisiä ohjelmia tai ohjelmanpätkiä tulee varoa: niitä on helppo kirjoittaa ymmärtämättä käytettyä kieltä kovin syvällisesti ja niistä löytyy usein tietoturva-aukkoja.

Tietoturva-aukot itsekäännetyissä ohjelmissa korjataan kääntämällä ohjelma uudestaan korjatusta lähdekoodista ja asentamalla tämä uusi versio vanhan tilalle. Tietoturvapääivityksen tarve on huomattava itse seuraamalla sopivia sähköpostilistoja tms.

Vaihtoehto omasta jakelusta

Jollei keksi helppoa ja turvallista tapaa asentaa jokin kaivattu paketti, kannattaa miettiä onko sen tarve todellinen; ehkä omasta jakelusta löytyisi riittävän hyvä korvike? Ehkä haluttu ohjelma löytyykin eri nimellä? Löytyykö haluttu versio lähdekoodina omalle jakelulle sovitettuna?

Jos tarve syntyy toisen epävirallisesta lähteestä asennettavan paketin riippuvuuksista kannattaa miettiä erityisen vakavasti, ovatko riippuvuudet oikein määritelty. Ehkä kaivattu paketti löytyykin eri nimellä omasta jakelusta? Ehkä alkuperäisen paketin saisi asennettua helpomminkin? Pääsisikö riippuvuudesta kääntämällä jokin osa uudestaan? Vieraiden kirjastojen asentaminen oman jakelun vastaavien tilalle tai rinnalle aikaansaa helposti monimutkaisia ongelmia. Alkuperäistä ongelmaa kannattaa vielä miettiä tarkkaan.

Asentaminen eri käyttäjänä

Jos välttämättä haluaa asentaa ohjelman, jonka laatuun tai tietoturvaan ei luota, sen asennusskriptejä ei kannata ajaa ylläpito-oikeuksin. Tätä tarvetta varten voi luoda eri käyttäjän ja ohjelmaa varten oman hakemiston, joka luovutetaan tämän käyttäjän omistukseen. Tyypillinen hakemisto on /opt/mikälieohjelma.

Asennusohjelma ajetaan vartavasten luodulla tunnuksella ja asennushakemistoksi määrätään tämä äsken luotu. Asennuksen jälkeen poistetaan mahdolliset suid- tai sgid-oikeudet ja hakemistorakenne kaikkinensa siirretään rootin omistukseen. Haluttaessa johonkin ohjelmahakemistoon (esimerkiksi /opt/bin) tehdään symlinkit ohjelmatiedostoon tai kirjoitetaan yksinkertainen skripti, joka käynnistää ohjelman. Varmistetaan, että ohjelmahakemisto ei löydy ainakaan rootin PATH-muuttujasta.

Joskus asennusohjelma tarkistaa joko se ajetan rootin oikeuksin eikä suostu jatkamaan tavallisena käyttäjänä, olettaen etteivät tavallisen käyttäjän oikeudet riitä ohjelman asentamiseen. Jos asennusohjelma on skripti (katso Bash-skriptaus), tämä tarkistus saattaa olla helposti löydettävissä ja poistettavissa. Muussa tapauksessa tarkistuksesta pääsee käyttämällä ohjelmaa fakeroot tai vastaavaa. Pahimmassa tapauksessa asennusohjelma on ajettava chroot-ympäristössä (jos sitä vielä haluaa ajaa).

Jos näihin erikoistoimiin ei halua ryhtyä, mutta haluaa asentaa kyseisen ohjelman, yksi tapa on ottaa täysi varmuuskopio DVD:lle kaikesta, minkä muuttamiseen asennusohjelman oikeudet tulevat riittämään. Varmistetaan, ettei koneella tehdä muuta (anacron, toiset käyttäjät tms.), asennetaan ohjelma, käynnistetään kone live-CD:ltä ja verrataan DVD:llä olevaa varmuuskopiota koneen nykytilaan.

Varoitusmerkintä

Tässä wikissä epävirallisista pakettilähteistä pyritään varoittamaan tällaisella laatikolla:

Kolmannen osapuolen pakettivarastoissa on riskinsä! Asennettavat paketit ja niiden skriptit voivat tehdä järjestelmässä mitä tahansa.