Ero sivun ”Epäviralliset pakettivarastot” versioiden välillä
Siirry navigaatioon
Siirry hakuun
LP (keskustelu | muokkaukset) (uusi rakenne, väliotsikot, uutta tekstiä) |
LP (keskustelu | muokkaukset) (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 == | |||
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ä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. | |||
== | === 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). | |||
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: | |||
{{Epävirallinen pakettilähde}} | {{Epävirallinen pakettilähde}} | ||
[[Luokka:Tietoturva]] | [[Luokka:Tietoturva]] |