Käyttäjien omat palvelut TKTL:n verkossa
TKTL:n Linux-verkkoon voi tavallinen käyttäjä melko helposti pystyttää omia palveluja asentamalla ja käynnistämällä palvelinohjelmistoja tai itse niitä toteuttamalla. Joissain tilanteissa tämä on ylläpidon virallisesti tukemaa (CGI-skriptit, servletit ja tietokannat db.cs.helsinki.fi-koneella). Usein tätä myös edellytetään kurssien suoritukseen vaadittavien harjoitustehtävien tai harjoitustöiden toteutukselta.
Palveluja pystytettäessä täytyy kuitenkin ottaa huomioon, että palvelinohjelmistot ovat harvoin (jos koskaan) täysin harmittomia otuksia. Tällä sivulla olisi tarkoitus selvittää itse varsinaiseen tekniikkaan liittymättömiä asioita, jotka on syytä tietää ja ottaa huomioon palveluja pystytettäessä.
Tietoturva
Jokainen palvelin ja palvelinohjelmisto on tietoturvariski. Lähes kaikista yleisessä käytössä olevista internet-palvelinohjelmistoista on löytynyt ja varmasti löytyy myös edelleen tietoturvaongelmia. Jos erittäin kokeneiden ja taitavien ohjelmoijien jäljiltä ohjelmiin jää tietoturva-aukkoja, niin näin varmasti voi myös käydä ensimmäistä WWW-pohjaista harjoitustyötään toteuttavalle opiskelijalle. Tämän takia palvelinohjelmistoja ei myöskään voi jättää tulemaan toimeen omillaan ilman säännöllistä ylläpitoa.
Muista, että vaikka sinulla itselläsi ei olisi mitään salattavaa tai tärkeitä tiedostoja, niin muilla käyttäjillä sellaisia varmasti on. Murrettu tunnus on usein ensimmäinen askel järjestelmän ylläpitotunnuksen murtamiseen ja se on myös käyttökelpoinen välietappina, josta hyökätä edelleen muualle.
Vaikka yliopiston ja laitoksen palomuurit suojaavat (jossain määrin) laitoksen verkkoa ulkopuolisilta hyökkäyksiltä, niistä ei ole apua laitoksen omia käyttäjiä vastaan. Laitoksella on useita tuhansia voimassa olevia käyttäjätunnuksia; vaikka suurin osa näiden tunnusten omistajista on epäilemättä rehellistä porukkaa, niin tähän joukkoon saattaa mahtua myös käyttäjiä jotka eivät epäröi käyttää tietoturva-aukkoja hyväkseen. On myös täysin mahdollista, että käyttäjän tunnus on vuotanut jollekin täysin ulkopuoliselle taholle.
Monien
palvelinohjelmistojen oletuskonfiguraatio on erittäin
luottavainen;
Postgres-tietokantaohjelmisto
oletusarvoisesti luo uuden tyhjän tietokannan siten, että kuka tahansa
jolla vain on käyttäjätunnus tietokantaa pyörittävällä koneella pääsee
tietokantaan käsiksi tietokannan ylläpitäjän oikeuksin (tämä ei koske
laitoksen ylläpidon toteuttamaa wanna-postgres
skriptiä). Postgresin tapauksessa tämä on dokumentoitu ja usein jopa
hyödyllinen ominaisuus, joka varmasti helpottaa kovasti tietokannan ylläpitoa
(käyttäjän ei tarvitse muistella mitään salasanoja),
mutta kertoo osaltaan siitä, että valitettavasti helppokäyttöisyys
ja tietoturva ovat
usein ristiriidassa keskenään, eivätkä yleensä esiinny yhtäaikaa.
Helppokäyttöisyyden ja tietoturvan joutuessa laitoksella konfliktiin,
tietoturva tavallisesti voittaa.
Näiden asioiden takia käyttäjien omat palvelut on pyritty keskittämään db.cs.helsinki.fi-palvelimelle, joka on ylläpidon erityisessä valvonnassa ja joka on pyritty konfiguroimaan siten, että jonkin käyttäjän pystyttämän palvelun kautta tapahtuvan tietomurron vaikutukset olisivat rajalliset.
Mikäli tietoosi tulee tai löydät jonkin tietoturvaongelman laitoksen tietoverkosta, niin kerro siitä välittömästi ylläpidolle. Vaikka ylläpito seuraa tietoturva-asioita aktiivisesti, niin me olemme vain ihmisiä, emmekä tiedä ja huomaa kaikkea.
Rajalliset resurssit
Ohjelmistot tarvitsevat käyttöjärjestelmältä ja laitteistolta resursseja, joiden määrä on rajallinen. Laitoksen järjestelmissä ei juurikaan ole käytössä rajoituksia käyttäjien prosessien resurssinkäytölle, eikä niitä erityisemmin myöskään haluta ottaa käyttöön. Koska laitoksen yleiskäyttöisillä palvelimilla on paljon käyttäjiä, täytyy pitää huolta ettei oma palvelinprosessi varaa kaikkea muistia tai muita käyttöjärjestelmän resursseja (avoimia tiedostoja, avoimia verkkoyhteyksiä, levytilaa jne..). Helppo ja varma tapa saattaa Linux-serveri autistiseen tilaan on ensin varata kaikki saatavilla oleva muisti ja sitten täyttää prosessitaulu.
Perusteltuun tarpeeseen voidaan myös hankkia omaa laitteistoa.
Miten sitten pitää toimia?
- Käytä ensisijaisesti laitoksen ylläpidon valmiiksi asentamia ohjelmistoja. db.cs.helsinki.fi-palvelimelle on asennettu ylläpidon puolesta joukko ohjelmistoja WWW-palveluiden rakentamiseen (Itse WWW-palvelin CGI-skripti tuella, PHP-skriptikieli, Postgres ja Mysql, Java-servlettiympäristö).
- Sulje ylimääräiset palvelut.
- Sulje omat palvelinprosessisi kun et itse tarvitse niitä.
- Poista ylimääräiset CGI- ja PHP-skriptit, tai ainakin estä niiden toiminta.
- Mikäli haluat pystyttää palvelimia käyttäen muita kuin ylläpidon valmiiksi asentamia ohjelmistoja, kysy ensin neuvoa ylläpidolta.
- Vaikka tietäisit täsmälleen mitä olet tekemässä, niin laitoksen ylläpito haluaa kuitenkin tietää täsmälleen mitä palvelimia ja ohjelmistoja laitoksen verkossa on käytössä. Eli kerro ylläpidolle mitä olet tekemessä etukäteen.
Miten ylläpito toimii?
Ylläpito joutuu pidättämään itsellään oikeuden sulkea epäilyttävät palvelut ensin ja kysyä vasta sitten. Varmasti suljetaan ainakin:
- Palvelut joissa on ilmiselviä tai tunnettuja turvallisuusaukkoja tai joita voidaan epäillä hyväksikäytetyn jo tapahtuneessa tietomurrossa.
- Prosessit jotka käyttävät resursseja (muistia, prosessoriaikaa jne.) niin paljon, että ne ovat häiriöksi järjestelmän muulle toiminnalle.
Tilanteesta riippuen saatetaan sulkea tai pyydetään prosessin omistajaa sulkemaan prosessit jotka:
- toimivat palvelimina, mutta joista ei tiedetä mitä ne tekevät
- eivät tee mitään
- ovat jääneet jumiin
- omistaja on unohtanut sulkea
Kirotus, yhdys sana ja pilkku, virheistä vastasi Jani Jaakkola.