Yhteistoiminta, yhdistys ja tulevaisuus – atlas.kapsi.fi

Jesse Hulkko / 28. syyskuuta 2014

Santtu lupaili edellisessä blogipostissa Atlassianin ohjelmistoja Kapsin tarjoamaa yhteis- ja yhteisötoimintaportaalina kaikkine projekti- ja ohjelmistospesifisine höystöineen. Tarve saada Kapsilaiset mukaan toimintaan muokkaamaan ja kommentoimaan sisältöä realisoituikin yllättävän nopeasti ja ensiversio yhteisöportaalista on auki yhdistyksen jäsenille nyt. Aloitimme Confluence-ryhmätyöympäristön turvin ja muut osa-alueet täydentyvät syksyn edetessä. Aluksi liikkeelle lähdetään lähinnä Kapsiin itseensä liittyvin projektein. Myöhemmin jäsenet voivat saada käyttöönsä omia työtiloja projekteilleen sekä mahdollisuuden liittää wiki- ja projektiympäristöön myös kapsin ulkopuolisia käyttäjiä.

Projektin ensimmäisen vaiheen vauhdittava voimana toimi kesän aikana alkanut pohdinta yhdistyksen tulevaisuudesta ja toiminnan eteenpäin viemisestä. Pohdinta muuttui kirjoitelmaksi ja kirjoitelma jaloistui kokonaisuudeksi, joka oli valmis yhdistyksen aktiivisten toimihenkilöiden kommenteille noin viikko sitten. Hyvin nopeasti kävi selväksi, että kirjoitusharjoitus ei välttämättä mennyt asiasisällöltään aivan metsään ja siitä syntyi hyvää keskustelua ja jatkomietintää toimariporukan sisällä.

Näin vaalikokouksen alla on väistämätöntä, että yhdistyksen tulevaisuutta koskevat visiot ja pohdinnat tulevat väistämättä vaikuttamaan siihen, mistä vaalikokouksessa keskustellaan. Tästä syystä on ensiarvoisen tärkeää, että kaikilla yhdistyksen jäsenillä on mahdollisuus omalta osaltaan osallistua tähän keskusteluun ja tuoda ajatukset esille, vaikka itse kokoukseen ei pääsisikään osallistumaan.

Pidemmittä puheitta, kirjautumaan pääsee Kapsin käyttäjänimellä ja salasanalla: atlas.kapsi.fi

Kommentteja toivotaan ensialkuun nyt erityisesti artikkeliin Kapsin Visio ja Strategia vuodesta 2015 tulevaisuuteen.

[Edit: Typo korjattu.]

Ylläpidon säätöviikonloppu 4/2014

Santtu Pajukanta / 21. syyskuuta 2014

Tänä viikonloppuna vietettiin Kirkkonummen perämetsissä jälleen ylläpidon säätöviikonloppua. Joukossa oli mukana useita uusia säätäjiä – allekirjoittanut mukaan luettuna – ja viikonlopun aikana rakenneltiin useita siistejä uusia palveluita, kuten Teamspeak-palvelinta, Renki-itsepalveluportaalia, Atlassianin tiimityöohjelmistoja ja Edegal-kuvagalleriaa. Taustapuolella muun muassa päivitettiin varmuuskopiointipalvelin Turskan ohjelmistoa ja prototyypattiin Kapsin tulevaa tallennusinfrastruktuuria.

Radioaktiivisten ratkaisujen käsittely vaatii asianmukaiset suojavarusteet.

Radioaktiivisten ratkaisujen käsittely vaatii asianmukaiset suojavarusteet.

Siinä missä muut säätöviikonlopun projektit ovat tulevaisuuteen katsovia pitkäaikaisia kehitysprojekteja, Kapsin avoin Teamspeak-palvelin on kaikkien käytettävissä alkaen tästä hetkestä. Teamspeak on erityisesti pelaajien suosiossa oleva reaaliaikainen äänikeskusteluohjelmisto. Tarvitset Teamspeakin käyttöön vain kuulokkeet, mikrofonin sekä ilmaisen Teamspeak-asiakasohjelman. Kapsin Teamspeak-palvelimen löydät osoitteesta teamspeak.kapsi.fi, ja sen salasana on kapsionparas. Väliaikaisia huoneita voi palvelimelle tehdä kuka tahansa, ja pysyviä huoneita voi pyytää Teamspeakissa roikkuvilta ylläpitäjiltä.

Atlassianin tiimityöohjelmistot Confluence, Jira ja Stash tuodaan jäsenten käyttöön talven 2014–2015 aikana. Confluence on kehittynyt ja helppokäyttöinen wiki, Jira on erityisesti ohjelmistoprojektien käyttöön kehitetty tiketöintijärjestelmä ja Stash on hieman Githubin ja Bitbucketin tyyppinen web-pohjainen hallintakäyttöliittymä Git-versionhallintajärjestelmälle. Confluencea, Jiraa ja Stashia voivat jäsenet käyttää niin julkisille kuin yksityisillekin projekteilleen – oli kyse sitten avoimen lähdekoodin ohjelmistoprojektista, roolipeliporukan pelikertomuswikistä tai vaikka hääjärjestelyistä.

Renki on kunnianhimoinen hanke, jonka tarkoituksena on tarjota jäsenille web-pohjainen itsepalveluportaali erikseen pyydettävien jäsenpalveluiden hallintaan. Nykyään esimerkiksi tietokannat ja nimipalvelut täytyy pyytää sähköpostitse ylläpidolta, mutta Rengin käyttöönoton jälkeen tämä käy näppärästi helppokäyttöisellä web-lomakkeella. Tarkoituksena on myös automatisoida ne ylläpitoprosessit, jotka ovat helposti automatisoitavissa, jolloin pyyntöjen läpimenoajat lyhenevät tuntuvasti nykyisestä.

Edegal on web-pohjainen kuvagalleriaohjelmisto, jonka prototyypin rakentelin juhannuksena 2013 cosplay- ja animetapahtumia dokumentoivaa Anikin kuva-arkistoa varten. Edegal on suunniteltu alusta asti tarjoamaan mahdollisimman nopea käyttökokemus, ja mielestäni olen tässä onnistunut: albumien ja kuvien latautumista ei todellakaan tarvitse odotella. Pidemmän tähtäimen tavoitteena on tarjota kuvagallerioita Kapsin jäsenille helposti asennettavana jäsenpalveluna. Edegal on tällä hetkellä vielä varsin aikaisessa kehitysvaiheessa, mutta esimakua saa tutustumalla esimerkiksi Anikin uuteen kuva-arkistoon tai Insomnian galleriaan. Rämäpäisimmät voivat lukea ohjeet ja sukeltaa koodiin GitHubissa.

Toimia tietoturvan edistämiseksi

Henri Salo / 22. toukokuuta 2014

Teemme Kapsin ylläpidossa monenlaisia tehtäviä jäsenten sekä muiden Internetin käyttäjien tietoturvan parantamiseksi. Pyrimme aktiivisesti seuraamaan tietoturvamaailman tapahtumia sekä vähentämään järjestelmiin kohdistuvia riskejä. Asiasta on ollut usein keskustelua irkissä ja monet jäsenet ovat olleet kiitollisia palvelusta, mutta tämä tulee silti välillä yllätyksenä Kapsilaisille.

Visualisaatiota verkkoliikenteen häirinnästä.

Visualisaatiota verkkoliikenteen häirinnästä.

Aihetta käsitellessä on hyvä tiedostaa yhdistyksen Linux-järjestelmien tietoturvan olevan oma kokonaisuutensa eikä alla kuvatut ongelmat vaaranna Kapsin järjestelmien luotettavuutta, vaan aiheuttavat harmia yksittäisille jäsenille tai muille Internetin käyttäjille. Alla joitain esimerkkejä toimistamme jäsenten tunnusten ja tietojen suojaamiseksi sekä muiden Internetin käyttäjien tietoturvan parantamiseksi.

Puhdistamme jäsenten saastuneita sivustoja yhdessä jäsenten kanssa. Teemme usein tietomurroista raportteja CERT-FI:lle sekä rikosilmoituksen poliisille. Osassa tapauksista rikoksen tekijä saadaan kiinni ja tekijä päätyy asiasta vastuuseen. Joka tapauksissa informaatio päätyy viranomaisten statistiikkaan ja antaa parempaa kuvaa yleisesti tietoturvamurroista ja niiden määrästä esimerkiksi Viestintäviraston käyttöön.

Viimeisimmät tietomurrot ovat koskeneet FileZillan saastuneita versioita, joista myös tiedotettiin jäsenistöä. Usean jäsenen tunnukselle kirjauduttiin ulkomailta pyrkimyksenä kerätä hyökkääjälle virtuaalirahaa Kapsin resursseilla. Kaiken kaikkiaan kyseessä oli varsin järjestäytynyt haitallinen toiminta, johon reagoimme tapauskohtaisesti mahdollisimman pikaisesti.

Ilmoitamme Kapsin järjestelmään päässeitä haitallisia tiedostoja esimerkiksi ClamAV-projektille, jotta muutkin tätä haittaohjelman torjuntasovellusta käyttävät laitteet havaitsevat samoja ongelmia tulevaisuudessa. ClamAV tekee yhteistyötä lukuisien muidenkin toimijoiden, kuten esimerkiksi F-Secure ja FireEye -firmojen kanssa.

Muistutamme jäseniä päivittämättömistä www-sivustoalustoista, joissa on tunnettuja tietoturvahaavoittuvuuksia. Tätä varten kehitetään aktiivisesti open-source työkalua, jolla on Kapsin ympäristössä lähetetty yli 10 000 muistutussähköpostia jäsenille vuoden 2011 jälkeen. Päivittämättömiin www-sivustoihin murtaudutaan usein ja niitä käytetään pääasiassa roskapostittamiseen, tiedonkeruuseen tai muuhun haitalliseen toimintaan. Usein murrettu sivusto on hyökkääjälle jalansija yhdistyksen järjestelmiin minkä pyrimme estämään proaktiivisesti.

Ilmoitamme jäsenille myös keskeneräisiä asennuksista, jotka hyökkääjä voisi halutessaan asentaa loppuun ja joissain tapauksissa tämän jälkeen ajaa mielivaltaista haitallista koodia Kapsin palvelimilla.

Ilmoitamme ja vaihdamme julkisuuteen vuotaneita salasanoja sekä testaamme Kapsin jäsenten tunnuksien salasanoja heikkojen varalta ja pyydämme vaihtamaan ne tarvittaessa parempaan. Päivitimme palveluita Heartbleed-haavoittuvuuden osalta jo ennen virallista korjausta.

Useat Kapsin toimihenkilöt toimivat myös työssään tietoturvaroolissa.

Ylläpidon ylläpitoviikonloppu 5/2013

Jon Ekberg / 8. joulukuuta 2013

Itsenäisyyspäivän pidentämä viikonloppu alkoi torstai-illalla kun ensimmäiset ylläpitäjät saapuivat kokouspaikalle. Mukana oli toinen ylläpidon uusista jäsenistä, joka pikaisen tutustumiskierroksen jälkeen oli jo täydellä vauhdilla lyhentämässä ylläpidon tikettijonoa. Muutamaa tuntia myöhemmin homma sujui kuin vanhalta tekijältä, joten voitaneen todeta valinnan osuneen kohdilleen.

Ensimmäinen suuri ihmettelynaihe löytyi sopasta joka syntyi yhdistämällä PostgreSQL, OpenIndiana, ZFS sekä pakallinen 15k SAS-levyjä. Levyjen suorituskyky ei tuntunut missään vaiheessa nousevan odotetulle tasolle, ja syitä etsittiin sekä possusta, kerneleistä sekä levyohjaimista.

Kapsi WEB2.0 -prototyyppi nostettiin pystyyn ja pistettiin kovaan syyniin. Prototyypin on tarkoitus havainnollistaa usealle palvelimelle hajautetun webpalvelimen hyötyjä ja haasteita. Järjestelmää ponnistettiin Apachen JMeterillä ja varmuuden vuoksi ylläpito laittoi huput päähän ja opettelivat dossaamaan.

Vihreähatut dossaavat

Vihreähatut dossaavat

Toinen prototyyppi joka viikonlopun aikana saatiin ajoon oli Kapsi SQL2.0. Kyseisessä järjestelyssä PostgreSQL sijoitettiin virtualisoidulle testipalvelimelle ja kantaa moukaroitiiin pgbenchillä kunnes pullonkaulat tulivat esille. Sama konsepti toistettiin myös mariadb:lle. Virtualisoidut tietokantapalvelimet eivät performoineet vielä halutulla tavalla ja erinäköisten konseptien testailuja jatketaan tulevaisuudessa.

Ylläpidon toinen uusi jäsen osoitti suurta innostusta karttapalveluita kohtaan ja suoritti muiden speksausten oheessa päivityksen yhdistyksen jäsenkartalle joka jo muutenkin oli päivityksen tarpeessa. Tulevaisuudessa lienee mahdollista nähdä myös muita päivityksiä karttapalveluiden osalta.

Lauantai-yöllä suoritettiin suunniteltu huoltokatko Siialle jonka jälkeen 10GE -yhteydet kättelivät onnistuneesti.

Viikonlopun aikana ehdittiin myös konseptoimaan potentiaalisia tulevaisuuden suunnitelmia, joista varmasti tullaan kirjoittamaan tulevaisuudessa enemmän kunhan toteuttamiskelpoiset ideat saadaan eroteltua esiin.

Ylimääräisen kokouksen päätöksistä ja taustoista

Olli Vainio / 29. marraskuuta 2013

Ylimääräistä kokousta edeltävänä aikana hallitus sai useita kyselyjä liittyen yhdistyksen tilanteeseen ja että olemmeko huomioineet asioita x, y ja z liittyen tilanteesen. Ajattelin tässä blogauksessa hieman selventää taustoja tilanteeseen, miksi kokouskutsussa ehdotettiin mitä ehdotettiin.

Aivan aluksi päätöksistä.

Yhdistyksen kokouksessa päätettiin olla keräämättä ylimääräistä jäsenmaksua tälle vuodelle kun hallitus veti esityksensä pois kokouksen aikana. Jäsenmaksut vuodelle 2014 päätettiin suoraan hallituksen pohjaesityksen mukaisesti eli 40 euroa henkilöjäseniltä ja 70 euroa yhteisöjäseniltä sisältäen arvonlisäveron 24 %. Päätettiin myös valittaa verottajan päätöksestä oikaisulautakuntaan.

Kaikki jotka ovat lukeenee aiemmat blogaukseni tästä verottajatilanteesta ymmärtenevät jo, että kyseessähän ei tosiaan ollut pelkkä arvonlisäverovelvollisuus, vaan tulkinta ettei Kapsi ole yleishyödyllinen. Tämä johtaa ALV-velvollisuuden lisäksi yhteisöverojen maksuun verotettavasta tuloksesta.

Kokouskutsussa oli ehkä asia tuotu hieman epäselvästi ilmi, mutta kun kokouskutsua tehtiin niin oli vielä tilanne jossa olisi kaikki verot tulleet 25.11.–23.12. maksuun. Lisäksi maksuun meni nyt veroasiantuntijan lasku Kapsin vastineen laatimisesta verottajalle. Jouduimme toimimaan oletuksella, että tämä on tilanne kun kutsua tehtiin ja tämän oletuksen pohjalta tuo 10 euron lisämaksuehdotus laitettiin kokouskutsuun. Jos emme olisi näin tehneet niin olisimme selkeästi riskeeranneet yhdistyksen hetkellisellä maksukyvyttömyydellä.

Saimme kuitenkin sovittua verottajan ja toisen laskuttajan kanssa ratkaisuja, jotka ostavat meille sen verran aikaa, että yhdistyksen normaalilla kassavirralla kaikki saadaan maksettua normaalisti ja siten hallitus päätti kokouksessa vetää esityksensä pois. Järjestelyt aiheuttavat marginaalisia korkokuluja, mutta tämä on paljon pienempi paha meidän mielestämme kuin jäseniltä ylimääräisen maksun kerääminen. Tapa hoitaa asia on ehkä ollut hieman hämmentävä jäsenistön perspektiivistä, mutta en näe miten olisimme voineet toimia minkään muun oletuksen mukaan. Lisäksi kokous oli pakko saada pidettyä, että meillä on aikaa ennen vuodenvaihdetta toimia päätösten mukaan.

Sitten korotetusta jäsenmaksusta.

Monet kysyivät ennen kokousta, että tietäähän hallitus, että hankintojen arvonlisäverot voi myöskin vähentää. Kyllä tämä on täysin tiedossa. Tilanne on kuitenkin se, että kaikkia veroja ei saada vähennettyä ja siten efektiivisesti kuluja tulee enemmän suhteessa tuloihin aiempaan tilanteeseen verraten. Lisäksi ensi vuodelle aiheutuu valituksesta laki- ja muista asiantuntijakuluista havaittava määrä. Pyrimme myös pitämään isomman marginaalin ensi vuoden taloudessa jos tulee vielä uusia yllätyksiä verottajan suunnasta niin ei ole heti ongelmia niiden myötä.

Monet ovat kysyneet myös, että miksei meillä ollu budjettia hoitaa näitä velvoitteita. On selvää, että olisi hyvä olla pelivaraa taloudessa ja Kapsilla onkin. Kuitenkin jos miettii, että juuri ennen verottajan ensimmäistä yhteydenottoa 3.10. olimme investoineet verkkolaitteistoihin ja kahteen uuteen palvelimeen niin ajoitus oli vähän epämieluisa. Taloudessa oli pelivaraa tiedossa olevien menojen ja maltillisten yllätysten varalle. Alla hieman aikajana niin saa käsitystä miten nopeasti kaikki tapahtui.

to 3.10.: Sain puhelinsoiton verottajalta jossa lyhyesti kävi ilmi, että ovat tämmöistä päätöstä tekemässä.

ma 7.10.: Saimme varsinaisen kirjeen verottajalta, mutta olimme saaneet tekstin haltuun jo aiemmin verotoimistosta pyytämällä. Tiedossa, että selvitys tulee olla jätetty 17.10. mennessä.

ma 7.10.: Jätimme pyynnön lisäajan saamisesta selvityspyynnön vastaukseen.

pe 11.10.: Saamme tiedon, että pyyntö lisäajasta on hylätty.

to 17.10.: Jätämme vastineen selvityspyyntöön.

ma 28.10.: Saamme ilmoituksen missä todetaan, että Kapsi ei ole enää yleishyödyllinen.

to 31.10.: Verotuspäätös mistä käy ilmi maksettavat summat ja eräpäivät.

ma 25.11.: Alkuperäinen eräpäivä yhteisöveroille.

Kuten aikajanasta voinee huomata, tuli kovin ns. puskista.

Toivottavasti tämä blogi selventää suurelle osalle kuvioita siitä miten asiat ovat, olivat ja miksi mitäkin tehtiin. Lisää kysymksyä voi esittää kommenteissa ja yritän niihin parhaani mukaan vastata.

Verottajan päätöksen seurauksia

Olli Vainio / 6. marraskuuta 2013

Olen aiemmin kahdesti blogannut tästä verottajan selvityspyynnöstä ja päätöksestä. Olemme nyt päättäneet julkaista myös tuon alkuperäisen päätöksen ja se löytyy tästä.

Tämän päätöksen seurauksena olemme nyt suorittaneet hallituksessa hieman talousarviointia. Hallitus on päättänyt kutsua kokoon ylimääräisen yhdistyksen kokouksen jonka kutsut lähetetään piakkoin. Tässä kokouksessa hallitus tulee ehdottamaan kokoukselle, että vuodelta 2013 kerätään jäseniltä ylimääräinen 10 euron jäsenmaksu ja 2014 jäsenmaksu(sisältäen alv 24%) olisi 40 euroa henkilöjäsenille, 70 euroa yhteisöjäsenille ja 250 euroa kannatusjäsenille.

Nämä maksut ovat välttämättömiä toiminnan jatkuvuuden turvaamiseksi. Tavoitteena on saada yhdistys stabiiliin tilaan taloudellisesti huomioiden uuden tilanteen. Vaalikokouksessa 2014 loppupuolella lienee hyvinkin selkeä kuva jo tämän uuden realiteetin kanssa toimimisesta ja lopullisesta kuluvaikutuksesta. Tällöin luonnollisesti tilanteen salliessa yhdistyksen kokous voi myös alentaa jäsenmaksua niin halutessaan.

Hallitus vastaa mielellään lisätiedusteluihin ja kysymyksiin aiheesta.

LISÄYS: Päätimme myös julkaista päätöstä edeltäneen selvityspyynnön ja se löytyy tästä.

Verottajalta päätös

Olli Vainio / 29. lokakuuta 2013

Eilen vastaanotimme verottajalta päätöksen liittyen aiemmassa blogauksessa kerrottuihin asioihin.

Verottaja selvityksistämme huolimatta on tehnyt nyt tulkinnan, että Kapsi ei olisi yleishyödyllinen ja ovat päättäneet myöskin lisätä Kapsin ALV-rekisteriin viranomaisaloitteisesti. Yhdistyksen hallituksen käsityksen mukaan verottajan ratkaisu on virheellinen ja siitä tullaan valittamaan.

Blogaan asiasta lisää jahka asia taas etenee.

Verottajalta postia

Olli Vainio / 3. lokakuuta 2013

Mietin tovin blogaanko tästä, mutta olen avoimuuden nimissä päättänyt, että jo tässä vaiheessa otan asian esille.

Verottaja lähestyi Kapsin hallitusta postitse tänään ja pyysi selvityksen Kapsin vuoden 2012 toiminnasta. Tämän hetkisen tulkinan mukaan verottaja on tehnyt oletuksen, että Kapsi ei olisi yleishyödyllinen ja että Kapsin kaikki toiminta olisi elinkeinotoimintaa ja siten verotettavaa. Lienee sanomattakin selvää, että tällä linjauksella olisi vahvat vaikutuksen yhdistyksen toimintaan.

Tulemme selvittämään asiaa verottajan kanssa ja tarvittaessa vääntämään asiasta korkeimmassa hallinto-oikeudessa asti. Tarkempia yksityiskohtia tiedotetaan tilanteen edetessä.

Kapsin toimarimiitti syyskuussa 2013

Jesse Hulkko / 2. lokakuuta 2013

Kapsin toimihenkilöt ovat kokoontuneet muutaman viime vuoden aikana säännöllisen epäsäännöllisesti käymään läpi yhdistyksen toiminnan tilaa, suunnittelemaan tulevaisuutta ja tekemään pieniä säätörupeamia saunan, ruuan ja hyvän seuran merkeissä. Edellisestä toimareiden kokoustuksesta on vierähtänyt jo jopa luvattoman kauan. Monet asiat kaipaavat kipeästi huomiota, mielipiteitä ja keskustelua.

DSCF3048

 Toimarit säätötunnelmissa. Kuva: Jarkko Vääräniemi

Tämänkertaisen toimarimiitin paikkana toimi Technopolis Vantaalla. Agendana esille nousi erityisesti ylläpidotoiminnan tila, ylläpidon henkilösidonnaisen tietotaidon saattaminen paremmin muiden ylläpitäjien tietoon, tulevaisuuden mahdolliset palvelukonseptit sekä yleiset yhdistyksen toimihenkilöstön organisoitumiseen liittyvät seikat. Ohessa säädettiin tekniikkaa, vaihdettiin kuulumisia sekä nähtiin myös harvemmin fyysisesti havainnoitavissa olevia toimareita.

Kapsin kaltaisen yhdistyksen tärkeintä pääomaa on henkilöiden tietotaito yhdistyksen toiminnan kannalta merkityksellisestä teknologiasta. Tämän tietotaidon saattaminen mahdollisimman laajan joukon tietoon palvelee ylläpitotoiminnan jatkuvuuden turvaamisen tavoitteita sekä edesauttaa ylläpitäjien yleistä teknistä osaamista. Uutena asiana tulee kiinnittää erityistä huomiota myös yleisluontoisen tietotaidon saattamiseksi yhdistyspiirin ja toimariporukan ulkopuolelle. Tällä edistetään yleistä tietotekniikan osaamista, joka on myös yksi yhdistyksen toiminnan keskeisistä tavoitteista.

IMG_0292

Odottelemassa paluukyytiin nousua, erota kapsilaiset? Kuva: Olli Vainio

 

Muita esille tulleita visioita olivat muun muassa selkeä helppokäyttöisen, salatun varmistus- ja tiedonjakopalvelun saaminen yhdistyksen jäsenistön käyttöön. Tavoitteena on löytää ratkaisu, joka mahdollistaisi jokaiselle jäsenelle kunnollisen laitteiden varmennuksen Kapsin levytilaan sekä mahdollisuuden tietojen jakamiseen helposti laajemmalle yleisölle. Eri varmennuspalveluratkaisuja kartoitetaan. Varmennusten lisäksi myös muita Kapsin jäsenpalvelukonseptiin sopivia valmiita palvelukokonaisuuksia etsitään. Yhdistyksen omaan ohjelmistokehitykseen käytettävät resurssit eivät nykyisin harrastajavoimin tule riittämään erityisten palvelukokonaisuuksien tekemiseen harrastajavoimin.

IMG_0311

Tämän blogin muodostuminen paluulennolla. Kuva: Olli Vainio

Kapsin omista ohjelmistoprojekteista tapetilla oli myös Sikteeri, yhdistyksen jäsenhallinta, jonka prosesseja hiottiin sekä joitain uusia ominaisuuksia taidettiin jopa keretä koodata toimarimiitin aikana. Luonnollisesti sopivassa rinnakkaisajossa saunomisen kanssa. Myös Sikteeri-projekti kaipaisi lisää resursseja, jotta kahvia saataisiin muutettua koodiksi toisinaan hieman vauhdikkaammin.

Kapsi kehittyy säätö säädöltä, miitti miitiltä ja sauna saunalta aina vain paremmaksi. Tästä on siis kovin hyvä jatkaa kohti uusia haasteita.

Linux – HA – grsec – BFS – Kapsi – ???

Jesse Hulkko / 30. elokuuta 2013

$ uname -a
Linux lakka 3.2.46-grbfs-kapsi #1 SMP Wed Jun 5 19:48:35 EEST 2013 x86_64 GNU/Linux

Niin mistä puhe?

Ydin eli kerneli (engl. kernel) on tietokoneen käyttöjärjestelmän alin osa, joka mahdollistaa kaikkien muiden tietokoneen ohjelmien toiminnan. ( Wikipedia )

Mikäli olet sinut Kapsin tarjoamien palveluiden kanssa oletan, että tiedät vähintäänkin pääpiirteissään mistä tässä kaikessa on kyse. Nyt vajotaan ihan vähäisesti pintaa syvemmälle niihin periaatteisiin ja perusteisiin, jotka ovat olleet Kapsin Linux-käyttöjärjestelmäytimen kasauksen ja konfiguraation pohjana.

Yleistä Kapsin kerneliarkkitehtuurista

Ensimmäinen huomionarvoinen seikka Kapsin järjestelmiä tarkastellessa on se, että vaikka käytössä on pääosin Debian-distribuution mukaisia järjestelmiä, käytetty käyttöjärjestelmäydin ei ole Debian-projektin tarjoama. Kapsin ylläpito on varsin varhaisessa vaiheessa yhdistyksen historiaa alkanut ylläpitää omaa versiota Linux-kernelin käännöksestä. Tämä ei tarkoita sitä, että käytössä olisi  mitenkään suuresti normaalista Linux-ytimestä eroava versio, vaan pikemminkin lähtökohdiltaan Kapsin käyttämän laitteiston sekä tarpeiden mukaan säädetty versio kulloinkin vakaaksi todetusta ”vanilla”-versiosta.

Ymmärtääksemme nykyisen tilanteen kunnolla, täytyy tarkastelussa palata historiassa taaksepäin, aikaan vuosia ennen kuin itse liityin tähän kirjavaan joukkoon ylläpitäjiä, joiden prioriteetti on pitää Kapsin järjestelmät turvassa ja toimivina. Kapsin historia alkoi vuonna 2003.

Linux 2.6 joulukuussa 2003 lisäsi XFS- ja JFS-tiedostojärjestelmät, sisälsi uudet ALSA-ääni- ja syöttölaitteiden ajuritNPTL-säikeistyksen tuen ja tehosti käyttöä suurissa järjestelmissä.

Linux 2.6 oli Kapsin ensimmäisten toimintavuosien ajan ”uusi juttu”. Mentiin Debianinkin käyttämän 2.4-sarjan voimin hyvin pitkään. Nykyään  käytössä on vielä 3.2-sarjan kerneli, jota päivitetään eteenpäin käytännössä Kapsin käyttämien patchien sekä muun mahdollisen tarpeen mukaisesti.

Kernelin päivitykset ovat yhdistyksen toimintojen kannalta aika voimakkaasti käyttäjille näkyviä operaatioita ja aiheuttavat varsinkin shellipalveluihin ikävän käyttökatkon. Tästä syystä toimivaa ja turvallista kerneliversiota pyritään ajamaan mahdollisimman pitkään.

Kapsin käyttämät kernelipatchit

Kapsin kernelin suunnittelussa on otettu huomioon useita erityisesti yhdistyksen toimintaa koskettavia tekijöitä. Haasteina on ollut erityisesti tietoturva, suorituskyky sekä järjestelmien vakaus pitkänkin yhtäjaksoisen päälläolon jälkeen.

Käydään hieman läpi Kapsin käyttämiä patcheja sekä niiden taustoja ja osuutta kokonaisuudessa.

HA-patch

Kapsin historian alkuaikoina käytetyistä spesiaalisäädöistä tiedän vain sen verran, että käytössä oli jo tuolloin niinsanottu HA-patch. Nimi ei viittaa ”High Availabilityyn” kuten äkkiseltään voisi kuvitella, vaan patchin tekijöiden sukunimien ensimmäisiin kirjaimiin. Patchin kirjoitti Jaakko Heusala, yhdistyksen alkuvuosien puheenjohtaja ja ylläpitäjä usean vuoden ajalta. Jaakko osasi kertoa kommenteissa tämän historiasta sekä nimeämisestä, joten lainaan Jaakkoa tähän: 

”Tuo HA-pätsin nimi tulee ”huoh access limit” lyhennyksestä, koska käytin silloin nimimerkkiä huoh. Osittain se ehkä viittasi myös siihen fiilikseen, että oli etsitty toimivaa ratkaisua simppeliin ongelmaan maailmalta kuitenkaan hyvää ratkaisua löytämättä ja se pätsi oli vähän sellainen tulos ”nyt se kernelin koodi tänne, korjaan sen itse!” (Kernelin muokkaaminen oli melkeinpä niitä viimeisiä juttuja joita halusin ruveta tekeen silloin.)”

HA-patch on pohjimmiltaan hyvin yksinkertainen. Sen tarkoitus on pitää käyttäjien tiedostot piilossa toisilta käyttäjiltä chmod-määreistä riippumatta. Tämä on käyttäjille näkyvin muutos Kapsin kernelin osalta. HA-patch on myös koodillisesti erittäin yksinkertainen ja on siten tominut lähes muutoksitta aina versioista 2.4 asti.

Grsecurity

Toinen merkittävä virstanpylväs yhdistyksen kernel arkkitehtuurissa on grsec. Se on laaja patchset, jonka tarvoite on antaa lisäsuojaa erilaisia mahdollisia käyttöjärjestelmäytimen haavoittuvuuksien hyödyntämisyrityksiä vastaan. Kapsin tietoturva-arkkitehtuurissa grsecistä on pitkään käytetty sellaisia osia, jotka eivät vaadi suuria järjestelmäriippuvaisia konfiguraatioita. Esimerkiksi RBAC (Role Based Access Control) ei ole ollut toistaiseksi laajassa käytössä.

Grsecin ajatus tietoturvan kannalta on toimia yhtenä monista muuttujista, joita mahdollisen haavoittuvuuksia hyödyntävän hyökkääjän on vaikea ottaa huomioon yhdistyksen järjestelmiin suunnattuja toimia pohtiessaan. Lähtökohtaisesti grsec ei koskaan pysty täydellisesti estämään muun kernelin osa-alueen haavoittuvuuden hyödyntämistä, vaan aiheuttaa lähinnä tarpeen kohdistaa hyökkäystä juuri tätä kyseistä ympäristöä vastaan. Toisinsanoen yleisesti saatavilla olevat hyökkäyskoodit eivät välttämättä, toivottavasti, toimi sellaisenaan sopivin grsecin tarjoamin optioin varustettua järjestelmää vastaan. Käytännön kannalta grsec parhaimmillaankin ostaa ylläpidolle vain aikaa järjestelmän päivityksen valmisteluun.

Grsecin ja HA-patchin lisäksi kernelin suojauksessa on käytössä yksi vähemmän ”hieno”, mutta enemmän käytännönläheinen ajatusmalli turvallisuuteen liittyen. Pohjimmaisena on periaate, jonka mukaan kerran käynnistettyä järjestelmäydintä ei tule voida peukaloida. Grsec tarjoaa itsessään jonkin verran erilaisia kernelin muistialueen suojauksia tähän liittyen, mutta haittaohjelmien ja rootkittejen kannalta yleisin toimintamalli riitävät oikeudet hankittuaan on puuttua suoraan käytössä olevan kernelin toimintaan.

Kernelimoduulituki

Helpoin ja toimivin tapa muuttaa kernelin toimintaa järjestelmän ollessa käynnissä on ladata moduuli, joka toteuttaa hyökkääjän kannalta oleellisia toimintoja. Nämä voivat olla esimerkiksi kyseisen modulin olemassaolon ja tiettyjen hyökkääjän käyttämien palveluiden ja verkkoliikenteen piilottaminen koko muun järjestelmän näkyviltä. Tällainen palikka tunnetaan myös nimellä rootkit.

Kapsin lähestymistapa rootkiteiltä suojautumiseen on tehdä kernelistä mahdollisimman vaikeasti muutettava ajon aikana. Linux-järjestelmissä tähän on olemassa erittäin helppo ja yksinkertainen keino. Kernelistä on jätetty moduulituki kokonaan pois, jolloin kernelin muuttamiseksi vaaditaan koneen uudelleenkäynnistys. Kapsin kerneli on rakennettu juurikin näin.

Schedulointi ja BFS

Tästä aiheesta voisi ja ehkä pitäisikin kirjoittaa ihan oma blogiposti – tai kirja. Sen verran tuntuu olevan vaikeasti lähestyttävä kokonaiskonsepti kyseessä. Käydään nyt kuitenkin asia läpi popularistisellä tasolla ja yksinkertaistettuna niin ettei aiheuteta lukijoille välttämättä päänsärkyä.

Isoa shell-käyttäjämäärää palvelevan linux-koneen haasteena on väistämättä suoritettavien prosessejen suuri määrä. Kapsi ei ole toiminnassaan koskaan pyrkinyt asettamaan tiukkoja rajoja, vaan käyttäjien toimille asetetut järjestelmätason rajat pyrkivät vähentämään mahdollisten väärinkäytösten, tahattomien tai tahallisten, aiheuttamaa haittaa järjestelmän muille käyttäjille.

Yhdeksi merkittäväksi haasteeksi linuxin ja suuren prosessimäärän kanssa nousee interaktiiviset prosessit, jotka käyttävät yleensä hyvin pienen määrän suoritinaikaa kerrallaan, mutta todella usein. Esimerkkejä tällaisista interaktiivisista prosesseista ovat vaikkapa verkkoliikennettä vastaanottavat prosessit, jotka heräävät käsittelemään saapuneita paketteja tai SSH tai irssi, jotka ottavat käyttäjän syötteitä vastaan ja pitävät yllä aktiivisia yhteyksiä internettiin.

Suuri määrä interaktiivisia prosesseja on luonteeltaan haastava kuorma kernelille koska kernelin prosessischeduleri joutuu pitämään kirjaa ja tekemään päätökset siitä, mikä prosessi milloinkin saa suoritinaikaa ja mitkä prosessit joutuvat odottamaan pääsyä suoritukseen. Tämä kernelin sisäinen prosessi vie myös itsessään suoritinaikaa ja koneen resursseja riippuen kernelin sisäisen schedulerin toimintaperiaatteesta ja tehokkuudesta päätöksenteossa sekä seurannassa.

Linux-kernelin oletusarvoinen prosessischeduleri tunnetaan nimeltä CFS (Completely Fair Scheduler). Se pyrkii tarjoamaan tasa-arvoa prosessien suoritinajan suhteen ja päästää vähäisesti suoritinaikaa käyttävät prosessit suoritettavaksi useammin kuin pitkään suoritettavat prosessit. Tämä periaate on sinänsä hyvä ja toimiva, mutta Kapsin kaltaiesssa ympäristössä CFS:n toteutus aiheesta jätti huomattavasti toivomisen varaa.

Kapsin pääasiallinen shellipalvelin, Lakka, kärsi huomattavasta hitaudesta aina iltapäivisin ruuhka-aikaan talvella 2010. Tuolloin käytössä oli vielä HP DL380 G5 -sarjan palvelinkone, jossa oli kaksi fyysistä neljän ytimen suoritinta ja 16 Gt muistia.

lakka-kapsi-fi-vmstat-year-png

VMstat-kuvaaja kertoo suoritusta odottavien prosessejen määrän arvona ”running” ja levyoperaatioita odottavien prosessejen määrän arvona ”I/O sleep”. Running-arvon tulisi olla kaikissa tilanteissa pienempi kuin käytettävien prosessoriytimien määrä parhaan suorituskyvyn takaamiseksi. Kuvaajan vasen laita on ajalta ennen siirtymistä BFS-scheduleriin.

Ylläpidolla oli kaksi vaihtoehtoa hitailun ratkaisemiseksi. Joko hankkia uusi, järeämpi palvelinkone tai yrittää löytää resurssiongelmaan jokin muu ratkaisu. Käyttäjien toimien rajoittaminen ei kuulunut edes tuolloin harkittuihin vaihtoehtoihin.

Havaittiin eräänlainen ristiriita prosessejen suoritusjonon ja koneen CPU:n käyttöasteen välillä.

lakka-kapsi-fi-cpu-year-png

Kuvassa Lakka-palvelimen CPU-käyttö. CFS:n ollessa käytössä (kuvan vasen laita) CPU-resursseista oli käytössä yhteensä vain noin 25 %. Kuvaajan ”hassut” arvot oikealla johtuvat kyseisten kerneliversioiden epävakaudesta sekä lukuisista käyttökatoista vuoden 2010 aikana.

Suoritusjonon ja CPU-käytön välinen ristiriitatilanne antoi viitteitä siitä, että ehkä kernelin toiminnassa voisi olla parantamisen varaa prosessien scheduloinnin suhteen. Tutkittiin vaihtoehtoja ja päädyttiin kokeilemaan BFS-patchia Kapsin kernelissä. Muutos oli aika radikaali ja hitailuongelmat kerralla poissa.

Tässä vielä muutama kuva, jotka antavat käsitystä koneen yhtäaikaisten käyttäjien määrästä.

lakka-kapsi-fi-interrupts-year-png

Context switches -arvo kertoo sen, kuinka usein suoritettava prosessi vaihtuu sekunnin aikana. Oikealla olevat piikit ovat jälleen kerneliongelmien aiheuttamia vääristymiä kuvaajissa.

Tämä kuvaaja on lähinnä referenssiksi siitä, että CFS:sta BFS:iin vaihtaessa koneen käyttöaste ei juuri muuttunut. Vuosien 2010 ja 2011 aikana yhdistys kuitenkin sai paljon uusia jäseniä ja toisaalta shellikoneella alettiin myös ajamaan entistä raskaampia palvelinprosesseja kuiten Minecraft-palvelimia.

lakka-kapsi-fi-ps_sshd-year-png

SSHd-prosessien määrä Lakka-palvelimella CFS:sta BFS:iin siirryttäessä ja sen jälkeen.

SSHd-prosessien määrä kertoo yhtäaikaisesti palvelimella kirjautuneena olevat sessiot. Vaaleamman vihreä alue näyttää vuorokausivaihtelun kirjautumismäärissä. Käyttäjämäärien nousu vuoden 2011 alkuun mennessä on kohtuu huomattava.

Kokonaisuudessaan siirtyminen Kapsin kernelissä CFS-schedulerista BFS-scheduleriin ei ollut helppo tie. Epävakaus oli vuoden 2010 aikana todellinen riesa ja vasta Linux-kernelin VM (Virtual Memory) -kokonaisuuden suurempi korjaus toi lopulta helpotuksen vakausongelmiin. Suorituskyky nousi kuitenkin vaihdoksen myötä aivan uudelle tasolle, kun prosessien schedulointi ei enää ollut pullonkaula järjestelmän toiminnassa.

 

Teknisempää settiä voi seurata tai olla seuraamatta riippuen blogaajien mielenkiinnosta, käytettävissä olevasta ajasta sekä kuun asennosta. Kuulostellaan myös lukijoiden mielenkiintoa aiheeseen. 😉