Epäviralliset pakettivarastot

Linux.fista
Versio hetkellä 5. helmikuuta 2008 kello 16.52 – tehnyt LP (keskustelu | muokkaukset) (uusi rakenne, väliotsikot, uutta tekstiä)
Siirry navigaatioon Siirry hakuun

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.

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

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.

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:

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