Ohjelmista

Lasten tietokoneenkäytön valvonnan helppoudessa Windows ajaa Linuxin ohi lähes 5-0, vaikka esimerkiksi tietoturvan osalta tilanne on lähes päinvastainen. Kyse on nyt siis käytön helppoudesta. Tässä olevaa menetelmää voidaan käyttää hieman muunneltuna vaikkapa koko verkon nettisuodatukseen keskitetysti tai vain tietokonekohtaisesti sellaisenaan.

Gnomeen on olemassa ohjelma Nanny (lapsenvahti), jolla pitäisi voida suodattaa sopimattomia sivuja ja rajoittaa tietokoneen käyttöä. En kuitenkaan saanut sitä toimimaan yhdelläkään tietokoneistani. Ainakaan tietokoneen ajankäytön rajoitus ei toiminut. Työn alla onkin pienen ohjelman/skriptin tekeminen, jolla voi rajoittaa käyttäjien tietokoneen ja eri ohjelmien käyttöaikoja. Löysin kuitenkin englanniksi ohjeita nettisuodatukseen ja käytin pitkälti tämän linkin takana olevan sivun ohjeita.

DansGuardian on suodatin, joka tarvitsee välityspalvelimen (proxy). Se on suunniteltu web-sivujen suodatukseen. Sillä voidaan suodattaa keskitetysti vaikka useamman tietokoneen nettiliikenne tai vain yhden tietokoneen, kuten tässä. Käytin Privoxyä välityspalvelimena, sillä se osaa suodattaa mainoksia, lisää yksityisyydensuojaa netissä ja on helppo ottaa käyttöön. Ohjelmasta puuttuu välimuisti, mutta yhden koneen asennuksessa sillä ei ole merkitystä.

Tee näin

Nämä ohjeet ovat Ubuntu-jakelua varten, mutta ne saa pienin muutoksin toimimaan muissakin jakeluissa. Asenna DansGuardian ja Privoxy:
sudo apt-get install privoxy dansguardian
ja poista sen jälkeen tiedostosta /etc/dansguardian/dansguardian.conf rivi UNCONFIGURED - Please remove this line after configuration tai kommentoi se ja vaihda samassa tiedostossa oletusportin tilalle Privoxyn portti: proxyport = 8118. Käynnistä DansGuardian uudelleen: service DansGuardian restart. Vaihda tiedostossa /etc/privoxy/config listen-address localhost:8118 avoon listen-address 127.0.0.1:8118.

Seuraavaksi säädetään palomuurin säännöt, joilla estetään ulos menevät http-palvelupyynnöt muiden kuin Privoxyn ja DansGuardianin kautta muutamaa alkupoikkeusta lukuunottamatta. Komennot annetaan pääkäyttäjänä. Ihan aluksi kuitenkin pikapalomuuri pystyyn tulevaa liikennettä varten:
# loopack liikenne sallitaan
sudo iptables -A INPUT -i lo -j ACCEPT
# kaikki käyttäjän aloittama liikenne sallitaan
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#seuraavaksi pudotetan kaikki muu sisään tuleva liikenne -->>
#tätä ennen mahdolliset reiät palveluille palomuuriin (esim. ssh tai sitten avaa portknockilla jälkikäteen)
sudo iptables -A INPUT -j DROP

# Sitten siirrytään ulos lähteviin HTTP-pyyntöihin ja suodatukseen.
# seuraava rivi sallii pääkäyttäjälle kaikki liikenteen, mm. tietoturvapäivitykset
sudo iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
# sallitaan kaikille Ubuntu One ja sisäinen web-palvelin, jos asennettu
sudo iptables -A OUTPUT -p tcp --dport 443 -d 91.189.89.76 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -d 91.189.89.114 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 443 -d 91.189.89.38 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -d 127.0.0.1 -j ACCEPT
# http- ja https-liikenne eli nettisurffaus sallitaan privoxylle
sudo iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m owner --uid-owner privoxy -j ACCEPT
# http- ja https-liikenne eli nettisurffaus kielletään kaikilta muilta
sudo iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -j DROP
# dansguardian saa ottaa yhteyttä privoxyyn
sudo iptables -A OUTPUT -o lo -p tcp --dport 8118 -m owner --uid-owner dansguardian -j ACCEPT
# käyttäjätunnus joka saa ohittaa dansguardianin ja käyttää suoraan privoxyä = ei suodatusta (lisää itsesi)
sudo iptables -A OUTPUT -o lo -p tcp --dport 8118 -m owner --uid-owner taavi -j ACCEPT
# muut kuin edellä mainitut eivät saa ottaa yhteyttä privoxyyn
sudo iptables -A OUTPUT -o lo -p tcp --dport 8118 -j DROP

Komennolla sudo iptables -L näkee palomuurisäännöt. Edelliset rivit antavat tällaisen tulosteen:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere owner UID match root
ACCEPT tcp -- anywhere grape.canonical.com tcp dpt:https
ACCEPT tcp -- anywhere kwaimuk.canonical.com tcp dpt:https
ACCEPT tcp -- anywhere calamansi.canonical.com tcp dpt:https
ACCEPT tcp -- anywhere anywhere multiport dports www,https owner UID match privoxy
DROP tcp -- anywhere anywhere multiport dports www,https
ACCEPT tcp -- anywhere anywhere tcp dpt:8118 owner UID match dansguardian
ACCEPT tcp -- anywhere anywhere tcp dpt:8118 owner UID match taavi
DROP tcp -- anywhere anywhere tcp dpt:8118

Palomuurisäännöt eivät kuitenkaan säily muistissa vaan ne pitää tallettaa johonkin tiedostoon esimerkiksi komennolla sudo bash -c "iptables-save > /etc/dansguardian/iptables.save" ja ne otetaan käynnistyksen yhteydessä käyttöön sijoittamalla rivi iptables-restore /etc/dansguardian/iptables.save tiedoston /etc/rc.local alkuun.

Nyt nettiselain pitää asettaa käyttämään välityspalvelinta. Esimerkiksi Firefoxilla valitse Muokkaa->Asetukset->Lisäasetukset->Verkko->Yhteys-kohdasta Asetukset ja aseta välityspalveluasetukset käsin. Aseta välityspalveluasetukset käsin asettamalla HTTP- ja SSL-välityspalvelimiksi osoitteen 127.0.0.1 ja portiksi 8118, jos et halua suodatusta. Aseta portiksi 8080 niille joiden pitää käyttää DansGuardianin suodatusta. Jos et käytä välityspalvelinta, et pääse Internetiin selaimella.

Dansguardianiin voi lisätä suomenkielisiä sanoja ja kannattaakin, jos haluaa sen toimivan paremmin. Sanoille tai sanayhdistelmille annetaan painoja sen mukaan, miten vältettäviä tai haluttuja ne ovat. Huonot sanat saavat suuria negatiivisia arvoja ja hyvät negatiivisia arvoja. Sivuille pääsyä kontrolloidaan naughtynesslimit-arvolla joka on oletuksena pienelle lapselle 50. Sivustojen näkymistä voi niillä esiintyvien sanojen lisäksi kontrolloida sallimalla tai kieltämällä kokonaisia sivustoja tai niiden osia, kuten dokumentaatiossa kerrotaan. Jos tarvitset apua ota yhteyttä.