Tag Archive | testi

Ip-Tables -tulimuuri

Sain Työasemat ja Tietoverkot -kurssilta tehtäväksi keksiä oman tehtävän kurssiin liittyvistä aiheista.

Keksimäni tehtävä kuuluu seuraavasti:

 

“Aseta IpTables-tulimuurin asetukset kuntoon, kerro millä komennoilla muokkaat yksittäisiä portteja esimerkiksi auki ja kiinni.”

 

Käytössäni on xubuntu linux 12.04 -käyttöjärjestelmä, jossa IpTables-tulimuuri on valmiiksi asennettu. Aion siis muokata jo olemassaolevaa asennusta.

 

Aloitetaan

 

23.9.2012

 

23:31 Firewall-scripti

 

Sivulta http://myy.helia.fi/~karte/iptables_firewall.html löytyy valmis shellscript, jota ajamalla saa tarvittavat porttiasetukset hoidettua. Huomaa että xubuntussa komennot ovat hieman erilaiset.

 

Ensin loin tiedoston nimeltä firewall komennolla

 

$ nano firewall

 

seuraavaksi siirsin copy-pastea käyttäen sivulta löytyvän scriptiohjelman tekstitiedostoon ja tallensin.

 

23:38 tiedoston kopiointi ja käyttö

 

kopioin tiedoston /usr/local/bin -kansioon komennolla

 

$ sudo cp firewall /usr/local/bin/

 

varmistin, että käyttöoikeudet on kunnossa komennolla

 

$ sudo chmod u+x /usr/local/bin/firewall

 

 

nyt pystyin ajamaan tiedoston käyttämällä komentoa

 

$ sudo firewall

 

 

23:44 tarkistus

 

komennolla

 

$ sudo iptables -L

 

voi tarkistaa tulimuurin läpäisyn: INPUT-osion alla olevat säännöt tarkoittavat internetistä tulevia pyyntöjä, FORWARD-osion alta löytyy määritelmät pyynnön edelleenohjaamiseen toiseen porttiin ja OUTPUT-osion alta löytyy omalta koneelta lähtevien pyyntöjen käsittely.

Jos siis halutaan avata portti ulkoatulevalle liikenteelle, tulee se määrittää INPUT-osion alle. Esimerkiksi portti 22, jota käytetään SSH-liikenteen ohjaamiselle, voidaan ottaa käyttöön komennolla

 

$ iptables -A INPUT -i eth0 -p tcp –dport 22 -j ACCEPT

 

jossa INPUT tarkoittaa sisääntulevaa liikennettä, eth0 verkkoyhteyttä (langattomalla verkolla wlan0) ja ACCEPT hyväksyy liikenteen

 

lisätietoa sisään- ja ulostulevan porttiliikenteen ohjauksesta löytyy englanniksi osoitteesta http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

 

 

Lähde:

 

http://www.thegeekstuff.com/2011/03/iptables-inbound-and-outbound-rules/

http://myy.helia.fi/~karte/iptables_firewall.html

 

 

GNU Free Documentation License

 Version 1.3, 3 November 2008

 Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

 Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Ohjelmointikielten testaaminen Hello World -ohjelmalla

Sain kotitehtäväksi Työasemat ja Tietoverkot-kurssilta testata kolmea eri ohjelmointikieltä ja tulkkien toimivuutta.
Päätin tehdä testit seuraavilla ohjelmointikielillä: Java, Python ja C++.

Tein myös javalla edistyneemmän ohjelman, jonka lähdekoodin löytää osoitteesta

http://pastebin.com/eLsGBbks

ohjelman voi ajaa maalaamalla koodin hiirellä, kopioimalla leikepöydälle ( ctrl + c) ja luomalla tekstieditorilla LotteryNumberGenerator.java -nimisen tiedoston, johon koodi liitetään (ctrl + v).
Vaiheittaiset ohjeet java-tiedoston ajamiseen löytyy tästä raportista.

HUOM! LotteryNumberGenerator-ohjelma on ilmaisjaossa GNL-lisenssin mukaisesti. Tarkemmat tiedot lisenssistä raportin lopussa.

JAVA

18.9.2012

22:57  Tulkin asentaminen

asensin viimeisimmän java development kitin, eli lyhennettynä “jdk”, jotta pystyisin ajamaan java-tiedostoja suoraan komentorivitulkin kautta. Ensiksi päivitin pakkauslistan komennolla

$ apt-get update

seuraavaksi asensin jdk versio 6:n, koska sen pitäisi olla helposti yhteensopiva komentorivitulkilta ajettaessa. Jdk:ta on saatavilla myös uudempi versio 7, mutta en käyttänyt sitä testissä lainkaan.
Asensin käyttäen komentoa

$ sudo apt-get install openjdk-6-jdk

nyt koneellani pystyy luomaan java-tiedostoja ja ajamaan niitä tulkin avustuksella

23:04 Hello World -tiedosto

loin testaamista varten HelloWorld.java -tiedoston, joka tulostaa tekstin “Hello World!”.
Ensiksi siirryin kansioon, johon halusin luoda tiedoston

$ cd /home/krister/codes/

kansion “codes” olin aiemmin luonut mkdir-komennolla. Suosittelen käyttämään erillistä kansiota omille kooditiedostoille ja mielellään tekemään myös omat kansiot jokaiselle käyttämälle kielelle erikseen. Näin tiedostot on jälkikäteen helpompi löytää ajamista ja muokkaamista varten.

Tiedosto luodaan esimerkiksi komennolla

$ nano HelloWorld.java

seuraavaksi kirjoitin koodin ja tallensin ctrl + X painamalla. Kirjoittamani HelloWorld-koodin löytää osoitteesta

http://pastebin.com/Hmbt7vzH

23:21 Ohjelma ajettavaan muotoon

seuraavaksi loin tiedostosta .class-tiedoston, jotta tulkki pystyy tunnistamaan kooditiedostoni. Käytin komentoa

$ javac HelloWorld.java

lopuksi ajoin valmiin ohjelman komennolla

$ java HelloWorld.java

jolloin komentoriville tulostui teksti “Hello World!”. Ohjelma ja tulkki toimivat näinollen kuten pitääkin.

PYTHON

18.9.2012

Python-ohjelmien ajaminen komentorivitulkissa on todella helppoa ja yksinkertaista, sillä python-tulkki löytyy oletuksena linux-asennuksesta. Loin tässäkin HelloWorld-ohjelman, joka tulostaa Hello World! -tekstin

23:24 tiedoston luominen & testaaminen

koska tulkki on valmiiksi asennettu, pääsin suoraan tekemään ajettavan ohjelmatiedoston komennolla

$ nano HelloWorld.py

tällä kertaa riitti, että kirjoitin tiedostoon aluksi #!/usr/bin/python, eli polun, jota kautta tiedetään millä ohjelmalla tiedosto tulee ajaa. Seuraavaksi tein pari rivinvaihtoa enterillä ja kirjoitin

print “Hello World!”

tallensin tiedoston ja ajoin ohjelman komennolla

$ python HelloWorld.py

jolloin ohjelma tulosti “Hello World!” kuten pitikin. Näin ollen Python-tulkki toimii samoin HelloWorld-ohjelmani.

23:40

C++

C-kieli lähentelee jo puhdasta konekieltä, josta C++ on kenties helpoin omaksua java- tai python-pohjatiedoilla. Tässäkin testissä kokeilin asentaa C-tulkin ja ajaa HelloWorld-ohjelman, joka tulostaa “Hello World” -tekstin.

19.9.2012

00:00 Tulkin asennus

asensin komentorivitulkilla C-tulkin version 4.5 seuraavalla komennolla

$ sudo apt-get install gcc-4.5

tämän jälkeen loin /home/krister/codes/ -kansioon tiedoston HelloWorld.cpp komennolla

$ nano HelloWorld.cpp

kirjoittamani koodi löytyy osoitteesta

http://pastebin.com/D0pBqjrv

seuraavaksi tallensin tiedoston ctrl + X painamalla

00:17 tiedoston muokkaus

annoin tulkin tehdä ajettavan version tiedostostani, joten kirjoitin komennon

$ g++ HelloWorld.cpp -o HelloWorld.

Nyt ohjelman pystyi ajamaan bashilla komennolla

$ ./HelloWorld.

Jolloin ohjelma tulosti tekstin “Hello, World!”. Näinollen C-tulkki asentui oikein ja pystyy kääntämään koodia ongelmitta sekä ohjelmani oli kelvollinen.

 

Lähde:

http://en.wikipedia.org/wiki/Hello_world_program_examples

http://terokarvinen.com/

 

 

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/&gt;
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

PHP:n käyttö nettisivuilla

Sain Työasemat ja tietoverkot -kurssilla tehtäväksi asentaa Apache-palvelindemonin sekä PHP-kirjaston kotisivujen luomista varten. Lisäksi minun piti tehdä PHP-sivu, joka tulostaa nettiselaimeen ”Hei maailma!” ja sivu, joka käyttäjän antamien tietojen perusteella laskee henkilön painoindeksin.

Apache-palvelindemoni ylläpitää palvelinta ja kommunikoi asiakasselaimien kanssa, jolloin tavallisella nettiselaimella pääsee käyttäjän määrittämälle kotisivulle IP-osoitteen avulla.
PHP tarjoaa HTML:ää laajemmat mahdollisuudet luoda mm. lomakekenttiä ja grafiikkaa sekä tietokantoja kotisivulle. Lisäksi PHP on yleensä valmiiksi tuettu eri nettiselaimissa, joten se on valmiiksi yhteensopiva asiakaskoneille.

Mikäli Apachen asennus ja käyttö tai komentokehotteen komennot tuntuvat haastavilta, olen kirjoittanut perusasioista artikkelit: https://kristerholmstrom.wordpress.com/2012/09/05/apache-2-asennus-xubuntulle/
https://kristerholmstrom.wordpress.com/2012/09/03/komentokehotteen-kaytto-asennuksessa-ja-yllapidossa/

9.9.2012

23:12 Boottaus ja Apachen asennus

aloitin käynnistämällä koneeni Xubuntu linux 12.04 -live CD:llä ja avasin terminaalin. Aluksi minun piti asentaa Apache, jotta pystyisin jakamaan PHP-kotisivun. Apache asennetaan samalla tavalla kuten muutkin ohjelmat, eli komennolla

$ sudo apt-get update
$ sudo apt-get install apache2

23:23 Apachen moduulin muokkaus
Seuraavaksi muutin apache2-moduulin hakemaan oletusnettisivutiedostoa käyttäjähakemistosta. Ensin kuitenkin menin terminaalilla kohteeseen /home/xubuntu/ ja loin uuden kansion nimeltä public_html. Seuraavaksi loin HTML-tiedoston komennolla

$ nano index.html

Huomaa että tiedoston nimi tulee olla index, jotta Apache osaa sitä etsiä oletuksena.
Apache-moduuli muutetaan komennolla

$ sudo a2enmod userdir

seuraavaksi apache piti uudelleenkäynnistää, mikä tapahtuu komennolla

$ sudo service apache2 restart

23:30 Apachen testaaminen

tässä vaiheessa oli hyvä kokeilla, miten apache toimi, joten toimin asiakkaana ja käynnistin nettiselaimen, jonka osoiteriville kirjoitin IP-osoitteeni sekä käyttäjäkansion nimen.
IP-osoite selviää komennolla

$ ip addr

osoitteeni on siis http://192.168.1.67/~xubuntu/
kyseisestä osoitteesta tulostui index.html-tiedostoni tieto kun syötin osoitteen nettiselaimeeni.
23:35
PHP-tulkki asennetaan lataamalla Apache2 erillinen mod-kirjasto, joten asennus tapahtui hieman eri tavalla kuin muissa ohjelmissa. Käytin komentoa

$ sudo apt-get install libapache2-mod-php5

Tämän jälkeen kävin muuttamassa php5-asennuslogia, jotta tulkki toimisi oikein. Käytin komentoa

$ sudoedit /etc/apache2/mods-enabled/php5.conf

sen jälkeen ”kommentoin ulos” kaikki rivit välillä <ifModule mod_userdir.c> … </ifModule>, eli lisäsin rivien eteen #-merkin, jolloin rivit muuttuvat kommenteiksi, eikä tulkki silloin huomio rivejä lainkaan.

23:46 PHP-tiedoston luominen

Seuraavaksi index.html-tiedosto piti muuttaa PHP:ta tukevaksi tiedostoksi. Tämä onnistui siirtymällä kansioon /home/xubuntu/public_html/ ja antamalla komennon

$ mv index.html index.php

nyt tiedosto pystyi sisältämään PHP-koodia ja Apache tulkitsemaan sitä.

23:52 PHP-koodi

PHP-koodin selventämiseen tässä artikkelissa menisi paljon aikaa ja tilaa, enkä välttämättä saisi annettua kovinkaan syvällistä kuvaa ohjelmoinnista, joten annan linkin, jonka kautta voi tutustua PHP-ohjelmointiin tarkemmin, erityisesti HTML-pohjaisena:

http://www.php.net/manual/en/tutorial.forms.php

Muokkasin seuraavaksi index.php:ta niin, että se tulosti lauseen ”Hei Maailma!”

kyseinen lause tulostuu kirjoittamalla kotisivutiedostoon <? PHP print(”Hei Maailma!”); ?>

En saanut painoindeksilaskuria vielä toimimaan, mutta lisään koodin tähän artikkeliin kun saan sivun näyttämään tuloksen oikein.

lähde: http://terokarvinen.com/2012/aikataulu-–-tyoasemat-ja-tietoverkot-ict1tn002-33-syksylla-2012

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/&gt;

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

Xubuntu Linux 12.04 asentaminen

Mistä kyse:

Sain Haaga-Helian tietojenkäsittelylinjan kurssilta ”Työasemat ja tietoverkot” tehtäväksi aloittaa xubuntu Linux version 12.04 asentamisen muulle kuin laboratoriokoneelle, jotta voin testata xubuntun toimivuutta yksityiskäyttöön tarkoitetussa koneessa.

Lisäksi minun tuli laatia aiheesta selkeä raportti, jota tämä teksti koskee.

Aloitan projektin tänään 20.8.2012 klo 17: 15

Mitä tarvitaan:

latasin varsinaisen xubuntu linux 12.04:n asennus-CD:n levykuvan, jonka poltin erilliselle kiinteälle levylle. Normaalisti levykuva olisi optimaalisinta polttaa tyhjälle CD-levylle, jotta levy olisi yhteensopiva myös vanhempien  koneiden kanssa. Itselläni ei kuitenkaan löydy varastosta tavallista CD-R/CD-RW -levyä, joten poikkeuksellisesti poltan levykuvan tyhjälle DVD-RW-levylle. Tällöin tulee luonnollisesti varmistaa että tietokoneen levyasema tukee DVD-RW-levyjä.
Minulla on Iomegan 1TB ulkoinen kiintolevy tiedostojen varmuuskopiointia varten, jotta varmistun että tiedot eivät katoa vaikka jokin menisi pieleen. Käytin varmuuskopiointiin Windows 7 home premiumin omaa varmuuskopiointiohjelmaa.

Tietokoneeni tiedot:

malli: kannettava tietokone eli läppäri
merkki: Acer Aspire 5738ZG
prosessori: Intel T4400 tuplaydin, kellotaajuus 2,2GHz
näytönohjain: integroitu ATI mobility Radeon HD 4650
välimuisti: kaksipaikkainen 6 GB DDR3 1066 MHz (alunperin 4GB mutta toinen muistikampa vaihdettu isompaan)
Kiintolevy: 500GB
DVD-asema: DVD-Super Multi DualLayer drive
näyttö: 15,6” HD LCD, tuki 16:9 kuvasuhteelle
oletuskäyttöjärjestelmä: Windows 7 home premium SP1 64-bittisenä

Aloitetaan

Latasin Xubuntu Linux 12.04 -levykuvan valmistajan kotisivulta käyttäen Torrent-tiedostonjakoa ja asiakasohjelmana Vuze 4.7.0.2, levykuvan polttamiseen DVD-levylle käytin PowerISO-ohjelmaa, joka suoritti levykuvan polton onnistuneesti.
Ennen uudelleenkäynnistämistä, varmuuskopioin kaikki tiedostoni siltä varalta että jokin menee pieleen. Aloitin järjestelmän varmuuskopioimisen, mutta toistuvan virheen vuoksi (varmuuskopio-ohjelma yrittää kirjoittaa ulkoiselle levylle osioon, joka on käytössä ja tästä syystä keskeyttää varmuuskopioinnin kokonaan) päätin lykätä varmuuskopioinnin ja siten myös varsinaisen linux-asennuksen tämän testin ulkopuolelle. Varmuuskopiointi on myös erittäin aikaavievää (40% varmuuskopiointisuorittamiseen asti kesti arviolta 6 tuntia), joten aikataulun vuoksi en ehdi enää yrittää uudestaan varmuuskopiointia. Nyt tarkoituksenani on käynnistää kone Linuxiin pelkästään LiveCD-muodossa ja suorittaa varsinaisen asennuksen myöhemmin kun varmuuskopiot on varmasti otettu talteen.

Seuraavaksi suljen ohjelmat, laitan DVD-levyn levyasemaan ja käynnistän koneen uudelleen. Tarkoituksenani on käynnistää kone Xubuntu Linux CDLive-tilaan, jossa xubuntu ajetaan suoraan DVD-levyltä, tällöin pystyn kirjoittamaan raporttia reaaliaikaisesti ja varmistumaan, että xubuntu Linuxia on uusimmalla versiolla mahdollista ajaa testikoneessa.
Uudelleenkäynnistäessä kone käynnisti suoraan takaisin windowsiin, eikä huomioinut DVD-levyä ollenkaan. Tämä kuitenkin korjaantui toisella uudelleenkäynnistyksellä, jolloin muutin BIOSista boot- eli käynnistysjärjestystä. Tämän ansiosta kone huomio ensin CD/DVD-levyllä olevan käyttöjärjestelmän ja vasta sitten, mikäli ei DVD-asemasta järjestelmää löytänyt, kiintolevyllä olevaa käyttöjärjestelmää.
Käynnistys sujui vaivattomasti ja Linux osasi automaattisesti havaita langattoman nettiyhteyteni, joten raportin kirjoittaminen sujui ilman ongelmia. Alussa käynnistyksen jälkeen järjestelmä kysyy, haluanko vain kokeilla Linuxia, mikä tarkoittaa DVD-levyn käyttöä käyttöjärjestelmänä, vai haluanko jo asentaa Linuxin koneelleni pitäen kuitenkin LiveCD:n samalla käynnissä. Kuten aiemmin totesin, lykkään asennusta kunnes olen saanut tiedostoni varmasti varmuuskopioitua. Näin vältän turhat riskit, mikäli jokin menee asennuksen aikana pieleen. Valitsen siis ”kokeile XUBUNTUA”.
Avasin työpöydälle päästyäni Firefox-nettiselaimen, jotta voin testata järjestelmän toimivuutta. Oma blogisivuni kristerholmstrom.wordpress.com avautui ilman ongelmia, näinollen sekä xubuntu linux, että nettiyhteys linuxilla vaikuttaisivat toimivan ilman suurempia ongelmia.

Loppusanat:

XUBUNTU linuxin 12.04 version ajaminen CD tai DVD:n kautta onnistuu suhteellisen vaivattomasti omalla Acer-läppärilläni, vaikka käynnistysjärjestystä joutuikin erikseen käydä muuttamassa. Erittäin pieni vaiva kuitenkin kun kokonaisuudessaan käynnistymiseen meni arviolta 2-3 minuuttia aikaa, vaikka Linuxia luettiin suoraan hitaalta DVD:ltä. Iomega External Drive 1 TB osoittautui epäluotettavaksi varmuuskopiointiasemaksi, joten aion hankkia toisen ulkoisen levyaseman varmuuskopioideni säilytystä varten.

GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. <http://fsf.org/>

Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.