Flash kuntoon Wheezy-Chromeen

Chro­men Flash-lii­tän­näi­ses­sä on ikä­vä vi­ka, jo­ka es­tää Flash-si­vu­ja toi­mi­mas­ta De­bian Whee­zys­sä. Sel­vi­tin syyn ja sen, mi­ten Flashin saa taas toi­mi­maan.Kuva: Kuvakaappaus Chromesta.

(Voit halutessasi siirtyä suoraan korjausohjeeseen)

Viime aikoina olen paristakin suusta saanut kuulla, että heidän Debian Wheezyssään ei toimi Flash Chrome-selaimella. Käytännössä tämä ilmenee siten, että kun käyttäjä navigoi sivulle, jossa Flash-liitännäistä tarvittaisiin, lävähtää ruutuun ”Shockwave Flash has crashed” -tietopalkki, eikä sivulla olevia Flash-osia voi tietenkään käyttää.

Lähdin diagnosoinnissani liikkeelle tyhjennä-välimuisti-tyylisillä perustempuilla, mutta kun ongelma ilmeni jopa täysin puhtaalla käyttäjäprofiililla, oli sukellettava syvemmälle. Siispä testiympäristö VirtualBoxiin tulille, ja itse koittamaan.

Päivitetty 10.10.: Flash ei toimi myöskään uudessa 38.0.2125.101-1 -versiossa. Ohjetta ja korjaustyökalua päivitetty.
Päivitetty 17.10.: Vika on korjattu versiossa 38.0.2125.104-1. Suosittelen päivittämään heti uusimpaan versioon. Tämän postauksen ohjetta ei tulee enää seurata, eikä korjausskriptille tarjota enää päivityksiä. Profiilin palauttaminen onnistuu tämän kirjoituksen lopussa olevan ohjeen mukaan.
Jatka lukemista >>

Näin suojaudut Java-aukolta

Oraclen Java 7:ssä ole­va auk­ko on va­ka­va, mut­ta oman ko­neen suo­jaa­mi­nen on help­poa.

Kuva: Java-logo/ Oracle

Viestintäviraston CERT-FI-viranomainen tiedotti eilen Sunin1 Oraclen Javan nollapäivähaavoittuvuudesta:

Java 7:n kaikki versiot sisältävät korjaamattoman haavoittuvuuden.
Haavoittuvuutta tiedetään käytetyn hyväksi kohdistetuissa hyökkäyksissä.
Koska korjausta ei ole, verkon käyttäjät voivat suojautua mahdollisilta
drive-by haittaohjelmatartunnoilta esimerkiksi poistamalla Javan
käytöstä selaimissaan.

Haavoittuvuus on varsin vakava: Java on asennettuna lähes kaikille koneille, eikä haavoittuvuuden hyväksikäyttö vaadi käyttäjän toimenpiteitä. Teoriassa siis Javan käyttäjät ovat jo voineet tietämättään saastuttaa koneensa.

Koska ohjelmistojätti Oracle ei ainakaan kirjoitushetkeen mennessä ole julkaissut korjauspäivitystä, ei aukkoa voi niin vain peittää. On olemassa kuitenkin ratkaisuja, joilla haavoittuvuuden vaikutusta omaan tietoturvaan voi rajoittaa. CERT-FI julkaisi varsin sekavan selityksen asiasta Facebook-sivullaan, joten tässä kirjoituksessa yritän kertoa asian hieman selkeämmin ja kuvien kera. Ohjeet ovat Windowsia tai Linuxia käyttäville Chrome-, Chromium-, Firefox- ja Opera-käyttäjille.

Päivitys 31.8.: Oracle on julkaissut haavoittuvuuden korjaavan päivityksen. Päivitetyn Java 7:n voi ladata Oraclen sivustolta.

Päivitys 1.9.: The Register kertoo, että tietoturvayhtiö Security Explorationsin mukaan Oraclen vasta julkaisemassa Java 7 Update 7 -päivityksessä on myös haavoittuvuus, joten suojautumistoimenpiteet ovat edelleen tarpeen, vaikka haavoittuvuutta ei vielä aktiivisesti hyväksikäytettäisikään.
Päivitys 1.2.2013: Tämä artikkeli saa kovasti Google-osumia! Koska kirjoitus on jo puolisen vuotta vanha, ja käsittelee jo korjattua aukkoa, täytyy ohjeita hieman soveltaa. Pääperiaatteet ovat kuitenkin samat. Saatan kirjoittaa jossain vaiheessa päivitetyn ohjeen, jolloin linkitän sen tästä kirjoituksesta.

Oletko vaarassa?

Vaikka maailmalla huudellaan, että kaikki tietokoneet olisivat yhtäkkiä vaarassa, ei tämä aivan pidä paikkaansa. Vain Oraclen ”virallinen” Java on haavoittuvainen, eikä esimerkiksi avoimen IcedTea-liitännäisen käyttäjien tarvitse ryhtyä mihinkään toimenpiteisiin. Aukko ei myöskään koske Oraclen Javan vanhemman 6-version käyttäjiä.

Jos et tiedä, mikä versio sinulla on käytössä, ota asiasta selvää:

  • Firefox: Vieraile Mozillan Tarkista liitännäisesi -sivulla. Jos luettelosta löytyy Java(TM) Platform SE 7 -alkuinen rivi, käytät haavoittuvaista Javaa, ja toimenpiteitäsi tarvitaan. Sillä, mikä päivitysversio Java 7:stä on käytössä, ei ole merkitystä.
    Haavoittuvainen Java-liitännäinen näkyy Firefoxin liitännäistarkistussivussa tähän tapaan.

    Kuva: Kuvakaappaus Mozillan Tarkista liitännäisesi -sivusta

  • Chrome ja Chromium: Siirry Chromen/ Chromiumin liitännäisten hallintaan syöttämällä chrome://plugins osoitekenttään. Laajenna tietoja valitsemalla sivun oikean yläkulman ”+ Tiedot” -linkki. Siirry Java -kohtaan. Jos Nimi-sarakkeen teksti alkaa ”Java(TM) Platform SE 7”, on käytössäsi haavoittuvainen versio. Tarkalla päivitysversiolla (U-jotakin) ei ole merkitystä.
    Chromen ja Chromiumin liitännäishallintapaneelista vaarallisen Java-liitännäisen tunnistaa tästä.

    Kuva: Kuvakaappaus Chrome-selaimen liitännäishallinnasta.

  • Opera: Siirry Operan Lisäosat -sivulle syöttämällä opera:plugins osoitekenttään. Jos luettelossa on rivi, joka alkaa ”Java(TM) Platform SE 7”, on käytössäsi haavoittuvainen Java-versio.
    Operan liitännäisissä vaarallinen Java 7 näkyy näin.

    Kuva: Kuvakaappaus Operan Liitännäiset-sivusta.

Jos Javan vaarallinen versio on selaimellasi käytössä, voit suojata itsesi muutamallakin tavalla:

  • Jos et tarvitse Javaa, poista se kokonaan (ohje 1).
  • Jos tarvitset Javaa, harkitse nykyisen Java 7:n poistamista ja vanhemman Java 6:n asentamista sen tilalle (ohje 2). Linux-käyttäjät voivat harkita myös esim. IcedTean asentamista (ohje 3).
  • Jos et tarvitse Javaa hetkeen, voit ottaa selaimen Java-liitännäisen pois käytöstä siksi aikaa kun Oracle valmistelee korjauksen siihen (ohje 4).
  • Jos välttämättä tarvitset Javan 7-versiota, on tilanne mutkikkaampi. Operan, Chromen ja Chromiumin käyttäjät voivat asettaa selaimensa toiminnolla Javan käyttöön vain niille sivustoille, joissa se on pakollista (ohje 5). Firefox-käyttäjien pitää käyttää esimerkiksi NoScript-lisäosaa saavuttaakseen saman lopputuloksen.

Riippuen tilanteestasi seuraa jotakin seuraavan kohdan ohjetta.

Ratkaisuohjeet

1. Javan poistaminen

  • Windows-käyttäjät: Javan voi poistaa avaamalla Ohjauspaneelin Ohjelmat » Ohjelmat ja toiminnot -ikkunan, valitsemalla Java 7 Update 6 -rivin (tai vastaavan), valitsemalla Poista asennus ja seuraamalla ohjeita.
  • Linux-käyttäjät: Java 7:ää ei vaikuttaisi olevan Ubuntun tai Debianin pakettivarastoissa. Muissa jakeluissa näin voi olla, ja poistaminen tapahtuu jakelun ohjeiden mukaan. Jos Java on asennettu paketinhallinnan ohi Oraclen ohjeiden mukaan, täytyy Javan kansio poistaa. Jos selaimille on luotu omat kopiot Java-pluginista (ei siis symbolisia linkkejä), tulee nämä myös poistaa. Lisätietoja on Oraclen sivustolla.

Varmista lopuksi, että Java on varmasti poistettu. Helpoiten sen voit tarkistaa samalla tavalla kuin aluksi tarkistit sen version – tässä tapauksessa Java-liitännäistä ei pitäisi olla listattuna lainkaan.

2. Java 6:n asentaminen

Poista aluksi Java 7 edellisen ohjeen mukaisesti. Asenna sitten Java 6:

  • Windows- ja useimmat Linux-käyttäjät: Lataa Java 6 Oraclen verkkosivustolta (Windows, Linux), ja suorita sen asennusohjelma.
  • Osa Linux-käyttäjistä: Jos jakelusi pakettivarastossa on Java 6 saatavilla, se kannattaa tietenkin asentaa ensisijaisesti normaalien pakettienhallintatyökalujen kautta. Esimerkiksi Debian Squeezessa paketti löytyy nimellä sun-java6-plugin.

Varmista lopuksi, että oikea versio on varmasti selaimessa käytössä. Tarkistaminen tapahtuu kirjoitukseni alun ohjeiden mukaan.

3. IcedTean asentaminen

Poista aluksi Java 7 ohjeen 1 mukaan. Asenna sitten IcedTea:

Avoimen lähdekoodin OpenJDK-ympäristöön perustuvan IcedTea-selainliitännäisen voi asentaa useimpiin Linux-jakeluihin, ja joissakin se on jo valmiiksi asennettuna. Ubuntussa paketti on icedtea-7-plugin ja Debianissa icedtea6-plugin. Paketti asennetaan jakelun oman pakettienhallinnan kautta.

Varmista lopuksi, että IcedTea on varmasti selaimessa käytössä. Tarkistaminen tapahtuu kirjoitukseni alun ohjeiden mukaan.

4. Java-liitännäisen käytöstä poistaminen

Liitännäisen käytöstä poistaminen on selainkohtaista:

  • Firefox: Avaa selaimen Lisäosien hallinta -sivu kirjoittamalla osoiteriville about:addons. Siirry sivun osioon Liitännäiset, ja klikkaa kohdassa ”Java(TM) Platform SE 7 …” olevaa Poista käytöstä -painiketta.
  • Chrome ja Chromium: Avaa selaimen Laajennukset-sivu kirjoittamalla osoiteriville chrome://plugins. Etsi luettelosta Java-liitännäinen ja klikkaa sen tietojen lopussa olevaa Poista käytöstä -linkkiä.
  • Opera: Avaa selaimen Lisäosat-sivu kirjoittamalla osoiteriville opera:plugins. Klikkaa ”Java(TM) Platform SE 7 …” -rivin otsikon Poista käytöstä -linkkiä.

5. Java-liitännäisen käytön rajoittaminen

Jos uusinta Javaa välttämättä tarvitaan jollakin tietyllä sivulla, kannattaa selain säätää niin, että Java sallitaan vain tietyille sivuille:

  • Chrome ja Chromium: Siirry Sisältöasetukset-dialogiin kirjoittamalla osoiteriville chrome://chrome/settings/content, ja vaihda Laajennukset-asetus valintaan Estä kaikki. Lisää sitten Javaa tarvitsevat sivustot Hallinnoi poikkeuksia… -dialogissa.
  • Opera: Avaa Asetukset-ikkuna valitsemalla Opera-valikon Asetukset-alivalikosta toiminto Asetukset…. Lisäasetukset-välilehden Sisältö-osiossa poista valinta kohdasta Lisäosat käytössä, ja hyväksy muutokset. Mene sitten sivustolle, joka vaatii Javan, ja valitse kontekstivalikon (klikkaa hiiren 2. painikkeella sivua) toiminto Muokkaa sivustokohtaisia asetuksia…. Valitse aukeavan dialogin Sisältö-välilehden Lisäosat käytössä -valintalaatikko, ja hyväksy muutos OK-painikkeella.


1) Kuka muistaa vielä Innotekin VirtualBoxin?

NFS4 ja kadonneiden omistajanimien arvoitus

Kuvan KServer-Fuku­shima oik­kui­li verk­ko­kan­si­oi­den­sa kans­sa, kun idmapd käyt­ti vää­rää verk­ko­ni­meä. Lop­pu hy­vin, kaik­ki hy­vin: yli tun­nin ih­met­te­le­mi­sen ja yh­den kon­fi­gu­raa­tio­ri­vin muut­ta­mi­sen jäl­keen hom­ma toi­mii taas.

Kuva: Riku Eskelinen/ CC BY-SA 3.0

Kotonani työasemakoneet tuovat kotikansiot NFS4-tiedostopalvelimeltani, KServer-Mythbusterilta. Tänään kuitenkin kiinnitin huomiota KServer-Fukushima-ykköstyöasemakonettani (Debian squeeze) käyttäessäni, ettei kotikansioni ollut aivan kunnossa.

Pikaisella tarkistuksella (ls -ld ~) selvisi, että kotikansion omistajaksi oli merkitty nobody:nogroup oman käyttäjä- ja ryhmätunnukseni sijaan. Koska uudelleenkäynnistys yleensä auttaa kaikkeen, komensin1:

$ sudo service nfs-common restart
$ sudo mount -a -t nfs4 -o remount

Komennot suorittuivat ilman sen ihmeellisempiä virheilmoituksia, mutta ongelma pysyi samana: NFS-asiakas oli vahvasti sitä mieltä, että kotikansiot omistaa ei-kukaan. Siispä NFS-palvelimeni kimppuun.

NFS-jaoissa on oletuksena käytössä niin kutsuttu root_squash, jossa asiakkaan ilmoittamat root-käyttäjän oikeudet muunnetaan lennossa asetetun anonyymikäyttäjän ja -ryhmän (asetusoptiot anonuid ja anongid, oletuksena nobody:nogroup) oikeuksiksi. Tietoturvan kannalta asetus on hyvä pitää päällä, ja näin toki kaikilla jaoillani asia onkin. Musiikki- ja videojakojen osalta käytän vielä valintaa all_squash, jolloin kaikki käyttäjät voivat vapaasti kirjoitella ja lukea näitä kansioita.

Kun kerran kotikansiollekin omistajaksi näkyivät NFS-anonyymikäyttäjä ja -ryhmä, päätin tarkistaa, etten vahingossakaan ollut laittanut kotikansioille all_squash:ia päälle. NFS-verkkojaothan määritellään tiedostossa /etc/exports, ja siellä kotikansioiden osalta jako-optiot olivat kunnossa:

/export/homes   <koneet>(rw,sync,insecure,no_subtree_check)

OK, vika siis ei ollut palvelimessa, joten jatkoin selvittelyä Fukushiman osalta.

Käyttäjätunnusten koneidenvälinen mäppäily tapahtuu NFS4:ssa (ainakin Debianissa) rpc.idmapd:illa, joka kuuluu aiemmin uudelleenkäynnistettyyn nfs-common -pakettiin. Jotta idmapd:ia käytettäisiin, pitää asiakaskoneen /etc/default/nfs-common -tiedostossa se olla kytkettynä päälle. Kun kyseisen tiedoston avasin, ei NEED_IDMAPD=-kohdassa ollut määritelty mitään. Asetustiedoston mukaan tällöin käytetään automaattista tunnistusta, mutta ajattelin muuttaa tämän varmuuden vuoksi muotoon NEED_IDMAPD=yes.

Päätin tässä välissä rebootata Fukushiman, ja katsoa mitä tapahtuu. Noin minuutti myöhemmin2 päädyin raapimaan päätäni uudelleen, sillä asetusmuutos ei tuottanut toivottua tulosta. Tässä vaiheessa päätin vilkaista /var/log/syslog:ia, jota kahlaamalla löytyikin johtolanka:

May 17 14:55:11 kserver-fukushima rpc.idmapd[1161]: nss_getpwnam: name ’<käyttäjänimi>@kserver.dy.fi’ does not map into domain ’localdomain’

Kotiverkossani käytän verkkonimenä kserver.dy.fi:ä, ja kaikkien verkkoon tulevien koneiden pitäisi saada tietää tämä DHCP-vastauksen mukana. Olisiko sitten niin, että Fukushima jättäisi jostain syystä DHCP:n kertoman verkkonimen huomiotta, ja päätyisi jonkinlaisen oletusasetuksen kautta käyttämään localdomain:ia?

$ dnsdomainname
kserver.dy.fi

Ei, kyllä kone tietää olevansa kserver.dy.fi-verkossa. Tässä vaiheessa jouduin turvautumaan Googleen, jota kautta päädyin selaamaan RHEL:n postituslistan ketjua. Eräs viesti alkoi sanoin:


/etc/idmapd.conf is configured the same way on both the NFSv4 Server & Client correct?

/etc/idmapd.conf, vai? Katsotaanpa, mitä Fukushiman tiedosto tietää:

[General]

Verbosity = 0
Pipefs-Directory = /var/lib/nfs/rpc_pipefs
Domain = localdomain

[Mapping]

Nobody-User = nobody
Nobody-Group = nogroup

Kas niin, löytyihän se syyllinen lopultakin. Domain-rivi muotoon Domain = kserver.dy.fi, reboottaus, ja kas:

$ ls -ldh ~
drwx—— 261 <käyttäjänimeni> <ryhmänimeni> 36K 17.5. 15:05 /home/<käyttäjänimeni>

Näin helposti ja mukavasti tämäkin asia saatiin kuntoon.


1) Tässä ensin käynnistetään NFS-jakojen oheispalvelut uudelleen, ja sen jälkeen liitetään kaikki fstab:in nfs4-muotoiset liitospisteet uudelleen.
2) Niin, Debian buuttaa huomattavasti Ubuntua nopeammin sekä ylös että alas, ainakin itselläni.

Joomla 1.7.3 ja valikkokatastrofi

Kuva: Broken Glass Swoosh,
davetoaster; CC-BY-2.0

Käytän Joomla-julkaisujärjestelmää monilla hallitsemillani verkkosivuilla. Ohjelmiston uusimpaan vakaaseen 1.7 -sarjaan julkaistiin tietoturvapäivitys, joka nosti versionumeron 1.7.3:een. Asennus aiheutti kuitenkin harmaita hiuksia.
Tällaiset perus-Joomla-päivitykset ovat yleensä melko simppeleitä asentaa: päivityspaketti koneelle, paketin purku ja vanhojen tiedostojen korvaus paketin tiedostoilla palvelimella. Tämäkin päivitys vaikutti ensi-istumalta toimivan kunnolla, mutta lähempi tarkastelu paljasti melkoisen ongelman.

Valikkomoduulit näyttivät mitä sattuu: sivusto näytti välillä muun kuin nykyisen sivun valikkorivin alavalikoita, ja toisinaan jätti alivalikot tyystin näyttämättä. Ajattelin, että jostain syystä päivitys on muuttanut jotain valikkomoduulien oletusasetusta, ja aikani räknättyäni valikoita tulin siihen lopputulokseen, että vika ei ole valikkomoduulien asetuksissa.

Ehkäpä sivupohjassa on tapahtunut jotain, ja valikot siksi näyttävät väärältä? Ei, sama ongelma toistui jokaisella yrittämälläni pohjalla. Myöskään valikkomoduulin sijoittelun vaihtaminen ei ongelmaa korjannut.

Tällä asetuksella valikot lähtivät
toimimaan.

Kuva: Kuvakaappaus Joomla-hallinta-
paneelistani. Klikkaa suurentaaksesi.

Aikani sekalaisia valintoja kokeiltuani huomasin kuitenkin, että aina silloin tällöin tehdessäni jotain muutosta valikkojen jumi vaihtaa muotoaan. Mutta eihän tämän pitäisi olla välimuistiasia, valikoiden välimuistitushan on pois käytöstä.

Kokeeksi otin sivuston asetuksista globaalin välimuistin pois käytöstä, ja katso: valikot ryhtyivät jälleen yhteistyöhön. Huono ratkaisu pitkällä tähtäimellä, mutta ainakin sivustot toimivat järkevästi.

Mikäli olet törmännyt tähän samaan ongelmaan, kerro ihmeessä kommenteissa asiasta ja siitä, miten valikkosekamelskan ratkaisit.

Elisa aikaansa edellä!

Elisasta ei aina löydy vain hyvää kirjoitettavaa, mutta tänään Elisa yllätti ilmoittamalla (automaattitekstiviestillä) aivan puskista että ”Ilmoittamanne häiriö — on korjattu 17.11.2010.–”. Kun tiedustelin Elisalta aiemmin aikataulua, vastaus oli:

— Arvio korjaus aikataulusta [sic] on vuoden loppuun mennessä —

Vuotta on vielä 44 päivää jäljellä, ja Elisa sai (oman ilmoituksensa mukaan) vian korjattua! 100M nettinihän nousi 20M:sta 50M:aan jo marraskuun alussa, enkä ole aivan varma, kestikö Elisalla kaksi viikkoa saada tekstiviesti liikkeelle (ei kovin mairittelevaa teleoperaattorille) vai onko ongelma laisinkaan poistunut.

Pyysin Elisaa kertomaan minulle nopeuksia, joihin pitäisi olla satamegaisenprosenttisen tyytyväinen, jotta voin sitten niitä lähteä vertailemaan toteutuneeseen nopeuteen.

Sen jälkeen jääkin enää korvausten neuvottelu. Aion ehdottaa Elisalle korvauspolitiikkaa siten, että maksan vain siitä, mikä on toteutunut. Koska nopeus nousi jonkin verran kuun alussa, menee laskutoimitus hieman aiempaa spekulaatiotani monimutkaisemmaksi. Koska Elisa tuskin suostuu lyömään kylmää käteistä pöytään, voisi paikallaan olla järjestely, jossa esim. seuraavan puolen vuoden kuukausimaksuista vähennettäisiin siivuissa se, mitä Elisa ”velkaa” jää. Mutta detaljeista tappelun aika on myöhemmin.

Jotta postaukseni ei menisi aivan Elisan pilkkaamiseksi, on sanottava, että yleisesti ottaen olen Elisaan, ja varsinkin heidän asiakaspalveluunsa, varsin tyytyväinen. Heille ei sentään tarvitse puolustella käyttöjärjestelmävalintojaan.

Mikään ei ole IT-maailmassa koskaan täydellistä, mutta niin kauan kuin parannusta tapahtuu, voin olla tyytyväinen. Kun muutkin operaattorit ottaisivat jatkuvan parannuksen tavoitteekseen, voisi Elisalle löytyä haastajiakin.
DISCLAIMER: En oikeasti tiedä Elisan tavoitteista ja suunnitelmista tuon taivaallista, ja esitän tässä vain valittuja omia mielipiteitäni. Jos olet eri mieltä, voit mielipiteesi ilmaista esim. kommenteilla.