Linux projekti – väliraportti vk48

Tähän mennessä Linux-projektissa aikaansaamamme asiat on selitetty edellisissä blogimerkinnöissä:

https://jaakkovalja.wordpress.com/2012/11/07/linuxprojekti-androidin-roottaaminen/

https://jaakkovalja.wordpress.com/2012/11/21/linux-projekti_ssh-yhteyden-luomine/

Projektin tavoitteet:
Projektillamme oli kolme tavoitetta. Ensin pyrimme selvittämään Androidin roottausta.

Roottasimmekin onnistuneesti minun Samsung Galaxy Ace -puhelimeni ensimmäisen viikon aikana.

 

Tämän jälkeen aloimme keskittymään projektimme työläämpään osa-alueeseen eli SSH-yhteyden luomiseen puhelimesta puhelimeen ja puhelimesta tietokoneelle.

Saimmekin tuon yhteyden lopulta toimimaan Saunalahden tarjoaman IP:n ansiosta.

 

Viimeisenä tavoitteena meillä oli tutustua ja mahdollisesti toteuttaa Androidin keskitettyä hallintaa puppetin avulla. Kiireellisen aikataulun johdosta toteutus ei kuitenkaan näillä näkymin tule onnistumaan. Pyrimme kuitenkin vielä tulevan viikon aikana tutustumaan aiheeseen ja dokumentoimaan tätä niin paljon kuin mahdollista.

Aikataulu ja toteutuminen:
Viikko 43: Aiheen ja ryhmän valinta ✔
Viikko 44: Projektisuunnitelman palautus ✔
Viikko 45: Aiheeseen tutustuminen, käytettävien sovellusten valinta ✔
Viikko 46: Roottaus valmis, jatkoon perehtyminen. Väliraportin laatiminen ja esitys. ✔
Viikko 47: SSH-palvelimen asennus ja konfigurointi, onnistumisesta riippuen testailua. ✔
Viikko 48: Mikäli SSH-palvelin on nopeasti saatu onnistumaan, perehdytään ja yritetään saada
toimimaan keskitetty hallinta. Muussa tapauksessa jatketaan SSH-palvelimen kimpussa.
Viikko 49: Viimeistellään projektia ja raporttia, palautus.
Viikko 50: Esitys luokassa.

Linux-projekti – SSH-yhteyden luominen

Androidin roottaamisen jälkeen aloimme ratkomaan projektimme seuraavaa ongelmaa: SSH-yhteyden muodostaminen puhelimen ja tietokoneen välille. SSH (Secure Shell)-yhteydes tarkoittaa käytännössä salattua yhteyttä kahden eri laitteen välillä, olivat ne sitten missä verkossa tahansa. Toinen laitteista toimii aina palvelimena ja toinen asiakkaana. SSH-yhteys on erittäin käytännöllinen, sillä sen avulla mahdollistuu turvallinen tiedon ja tiedostojen siirto laitteelta toiselle ilman muita ulkoisia apuvälineitä.

Viikolla 46 pidimme lyhyen esityksen siitä, mitä olimme tähän mennessä saaneet projektissamme aikaan. Lisäksi tutustuimme itsenäisesti lisää eri SSH-ohjelmiin ja tutkimme taustatietoa siitä, miten yhteys saataisiin muodostettua.

Löysimme mielestämme lupaavalta vaikuttavat ohjeet Cyanogenmodin sivuilta, joita aloimme seuraamaan.

Yritimme ensin noudattaa ohjeita niin, että Tommin puhelin (Samsung Galaxy S2) oli yhdistettynä koneeseen. Loimme koneella julkinen/yksityinen-salasanaparin ja kopioimme nämä myös puhelimen sdcardille. Tämä siksi, että vain oikean avaimen sisältävät koneet voivat ottaa yhteyden puhelimeen. Ennen tätä sdcard täytyi kuitenkin mountata saadaksemme rw-oikeudet, jotta tiedoston kopiointi onnistuisi.

Tämä onnistui komennoilla

$ adb shell

# mount -o remount rw /sdcard

Tämän jälkeen saimme siis tiedoston kopioitua sdcardille. Seuraavaksi täytyi ohjeiden mukaisesti luoda kansio, siirtää ko. tiedosto sinne ja tehdä joitain muokkauksia sen käyttöoikeuksiin. Törmäsimme kuitenkin kerta toisensä jälkeen virheilmoitukseen siinä vaiheessa, kun yritimme suorittaa komentoa

dropbearkey -t rsa -f /data/dropbear/dropbear_rsa_host_key

Ilmeisesti virheilmoitus johtui siitä, että ohjeissa oletettiin dropbearin olevan systeemissä valmiiksi asennettuna, kun taas todellisuudessa olemme jälkiläteen asentaneet sen siihen.

Yritimme siis seuraavaksi tehdä saman minun puhelimellani (Samsung Galaxy Ace), sillä flashasin siihen roottaamisen jälkeen CyanogenModin käyttöjärjestelmän, johon tuo dropbear oletuksena kuuluu. Tällä kertaa ohjeita seurattuamme pääsimmekin ohi tuon kohdan ja jatkamaan ohjeissa eteenpäin.

Komennolla

# ifconfig wlan0

saimme tietää puhelimeni ip-osoitteen (joka toki näkyy myös Dropbearissa puhelimessa) ja yritimme ottaa yhteyden koneelta puhelimeen. Jostain syystä tämä ei kuitenkaan toiminut puhelinverkon tai wlaninkaan kautta, ja vaikka yritimme monia säätöjä ja etsiä ohjeita eri lähteistä, ei mikään auttanut.

Lopulta päädyimme yrittämään yksinkertaisinta vaihtoehtoa, jota itse en ollut tullut edes ajatelleeksi. Koska molemmilla on Saunalahden liittymät, saa Oma Saunalahti-sivustolta vaihdettua asetuksen, jolla puhelinverkko alkaa käyttää IPv4-protokollaa. Tommi vaihtoi tämän asetuksen päälle ja puhelimessaan muutti vielä saunalahden APN:ää ja voilà!

Tämän jälkeen yhteyden muodostaminen onnistui välittömästi ilman ongelmia, yhteys pyysi vain rootin salasanan (oletuksena ”43”, vaihdoimme kuitenkin hieman monimutkaisempaan turvallisuden säilyttämiseksi) ja kaikki puhelimen tiedostot olivat saatavilla. Testasimme vielä, onnistuuko tätä kautta koneelta lisäämään esimerkiksi kansion puhelimelle. Annettuamme uudelleen tuon luku- ja kirjoitusoikeudet myöntävän komennon tämäkin onnistui ja kansio ”Testi” ilmestyi puhelimen File Manageriin. Yritimme myös yhdistää minun puhelimeni mobiiliverkon kautta Tommin puhelimeen SSH-yhteydellä käyttäen puhelimeni ConnectBot-ohjelmaa. Tämäkin yhteys onnistui ja pääsin selaamaan hänen tiedostojaan.
Ensi kerralla pyrimme vielä saamaan ”oikean” yhteyden toimimaan ilman Saunalahden tarjoamaa helpotusta, jonka jälkeen alamme selvittämään, onnistuisiko puppetin avulla useamman puhelimen keskitetty hallinta.

Linux-projekti ict4tn018-1 projektisuunnitelma

Tässä on projektisuunnitelmamme Tero Karvisen kurssille Linux-projekti. Aiheen projektiin sai itse valita.

Aihe:

Androidin roottaaminen, etäkäyttö SSH:lla ja keskitetty hallinta.

Valitsimme tämän aiheen, koska olemme molemmat kiinnostuneita Android-maailmasta. Itselleni lisäkiinnostusta tuo myös mahdollisuus projektin aikana suoritettavasta oman puhelimeni roottauksesta. Lisäksi etäkäyttö ja keskitetty hallinta puhelimissa ovat aiheita, joihin ei juuri ole perehdytty ja joista ei ylipäänsä tiedetä kovin paljon.

Ryhmän jäsenet:
Tommi Stadius, kokemusta Androidin roottauksesta, toimii tämän aihealueen vastuuhenkilönä.
Jaakko Väljä, vastuualue SSH-palvelimeen perehtyminen ja toteutus.
Keskitettyyn hallintaan tutustuminen ja sen toteutus toteutetaan kokonaisuudessaan yhdessä.

Projektin tavoite:
Projektillamme on kolme tavoitetta. Ensin pyrimme selvittämään ja toteuttamaan Android-
puhelimen roottauksen. Tämän jälkeen asennamme puhelimelle SSH-palvelimen ja yritämme
konfiguroida sen niin, että SSH-yhteys puhelimeen ja puhelimesta toimii. Viimeisenä tutkimme
mahdollisia keskitetyn hallinnan sovelluksia ja sitä, onko käytännössä mahdollista toteuttaa
puhelimien välistä keskitettyä hallintaa.

Laitteisto & ohjelmisto:

Projektin toteutuksessa käytämme omia puhelimiamme, Samsung Galaxy Ace Android version 2.3.6
ja Samsung Galaxy S2 Android version 4.0.4. Roottaus-vaiheessa tulemme mahdollisesti käyttämään
esimerkiksi sovelluksia SuperSU ja STweaks. SSH-palvelinsovelluksia on useita, tällä hetkellä olemme harkinneet ainakin seuraavia: DropBear SSH-server, ConnectBot, SSHDroid, Quick SSHd ja SSH Autotunnel.

Aikataulu:
Viikko 43: Aiheen ja ryhmän valinta
Viikko 44: Projektisuunnitelman palautus
Viikko 45: Aiheeseen tutustuminen, käytettävien sovellusten valinta
Viikko 46: Roottaus valmis, jatkoon perehtyminen. Väliraportin laatiminen ja esitys.
Viikko 47: SSH-palvelimen asennus ja konfigurointi, onnistumisesta riippuen testailua.
Viikko 48: Mikäli SSH-palvelin on nopeasti saatu onnistumaan, perehdytään ja yritetään saada
toimimaan keskitetty hallinta. Muussa tapauksessa jatketaan SSH-palvelimen kimpussa.
Viikko 49: Viimeistellään projektia ja raporttia, palautus.
Viikko 50: Esitys luokassa.

Linux palvelimena – verryttely

Ubuntun lataaminen koneelle

Aloitin tehtävän toteuttamisen sunnuntaina 22.1.2012. Käyttöjärjestelmänä toimi Windows 7, internetselaimena Google Chrome. Aloitin hakemalla google.fi -sivustolta hakusanalla “Ubuntu”. Valitsin ensimmäisen tuloksen, “ubuntu-fi.org/”, jonka etusivulta jatkoin painamalla linkkiä “LATAA UBUNTU” ja sen jälkeen valitsemalla kohdan 2, “Kirjoita lataamasi tiedosto USB-tikulle” Linkistä auenneelta sivulta latasin Ubuntu-käyttöjärjestelmän painamalla ohjeita seuraten Ubuntun latauslinkkiä.

Ubuntun asennus USB-muistitikulle

Samalta sivustolta, jolta lataaminen tapahtui, jatkoin 2. kohdan ohjeiden mukaan. Valitsin “I would like to create a: USB stick” ja painoin “Show me how”, jota seuraavalta sivulta latasin “DOWNLOAD”-painikkeella Universal USB-installerin. Seurasin asennusohjelman ohjeita ja valitsin ensin asennettavan Ubuntun version, seuraavaksi tiedoston polun, ja viimeiseksi USB-portin, johon tikkuni oli yhdistetty. Tämän jälkeen jatkoin painamalla “Create” ja vahvistamalla valintani “Kyllä” -painikkeella

Liverompulta boottaaminen

Asennuslevykkeen USB-tikulle tallentamisen jälkeen aloitin varsinaisen tehtävän eli liverompulta boottaamisen.  Boottasin tietokoneen, ja ennen multiboot-ikkunan aukeamista painoin Esc-näppäintä. Seuraavassa valikossa painoin F9-näppäintä, jolloin USB-tikku käynnisti automaattisesti tikulle tallentamani Ubuntu 11.10:ä.

SSH-palvelimen luonti

Ubuntun käynnistyttyä avasin terminaalin kirjoittamalla Dash Home searchiin terminal ja avaamalla ensimmäisen vaihtoehdon. Tämän jälkeen kirjoitin komentoriville ”sudo apt-get install openssh-server” (väliviivat tulivat nollan oikealla puolella olevasta + -näppäimestä). SSH:n lataamisen ja asennuksen aikana jouduin kerran valitsemaan [y/n] vaihtoehdoista y:n, jonka jälkeen asennus olikin valmis. Loin uuden käyttäjän ”jaakko” kirjoittamalla komennon ”sudo adduser jaakko”. Tämän jälkeen jouduin vielä kirjoittamaan kahdesti käyttäjälle salasanan.