Linux palvelimena 6. tunti: OpenSSL ja Apache SSL -moduuli

Tehtävän oli toimia CA:na ja luoda palvelimen SSL-sertifikaatti ja avain, sekä konfiguroida Apache käyttämään SSL-salausta. Käytän tehtävässäni Ubuntun sivuilta löytyviä materiaaleja OpenSSL ja HTTPD – Apache2 Web Server.

Ensiksi loin kaksi virtuaalikonetta, yhden Ubuntu-palvelinkoneen (Apache) ja tavallisen LinuxMint-koneen (Desktop). Asetin molemmille koneille verkkoyhteydeksi bridged ja valitsin asennusvaiheessa OpenSSH-asennuksen ja muuten asennusprosessi tapahtui normaalisti.

Asennuksen jälkeen päivitin ohjelmapaketin ja asennetaan OpenSSL-jaettu ohjelmakirjasto, jotta asennus voidaan aloittaa. Niitä on kuitenkin useita, joten oikea täytyy ensin etsiä

sudo apt-get update
apt-cache search libssl |grep ssl

joista valitaan uusin (harjoituksen tekohetkellä libssl0.8.9):

sudo apt-get install libssl0.9.8

Asennettu versio tarkistuu helposti komennolla

openssl version

Kaikki on siis kunnossa, joten jatketaan eteenpäin.

Ensiksi luodaan ohjeen mukaisesti seuraavat hakemistot

cd && mkdir -p myCA/signedcerts && mkdir muCA/private && cd myCA

Selection_078

Luodaan sitten ensijainen tietokanta hakemistoon myCA alle.

echo '01' > serial && touch index.txt

Selection_079

Jonka jälkeen luodaan asennustiedosto.

sudo nano caconfig.cnf

Koska tiedosto täytyy luoda kokonaan itse, ei valmista pohjaa ole olemassa. Ilman graafista käyttöliittymää tekstin kopiointi on myös hyvin haastavaa, otetaan SSH-yhteys dekstop-koneelta palvelinkoneelle.

ssh apache@(palvelinkoneen ip-osoite)

Selection_080
Tietyt kohdat täytyy myös muistaa kohdat omaa konetta vastaavaksi, jotta tiedostopolut ovat oikein ja asennustiedosto toimii.
Selection_081 Selection_082

root_ca_distinguished_name osion voi myös muokata sopivammaksi
Selection_083

Nyt asennustiedosto on valmis, joten tallennetaan ja suljetaan. Jotta openssl väline osaa etsiä asennustiedostoa oikeasta paikasta, kerrotaan sille mistä se löytyy:

export OPENSSL_CONF=~/myCA/caconfig.cnf

Luodaan sitten CA-sertifikaatti ja avain

openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 1825

Muista prosessin aikana luotu PEM-salasana!

Luodaan sitten serveri sertifikaatti. Kopioidaan taas suoraan ohjeesta pohja ja muutetaan tietoja vastaamaan omaa verkkoympäristöä. Tallennetaan ja ajetaan seuraavat komennot

export OPENSSL_CONF=~/myCA/exampleserver.cnf
openssl req -newkey rsa:1024 -keyout tempkey.peopenm -keyform PEM -out tempreq.pem -outform PEM

Käännetään sitten väliaikainen salainen avain salaamattomaksi

openssl rsa < tempkey.pem > server_key.pem

Kerrotaan mistä sijainnista halutaan openssl etsivän asennustiedostoa:

export OPENSSL_CONF=~/myCA/caconfig.cnf

Allekirjoitetaan sertifikaatti CA-avaimella

openssl ca -in tempreq.pem -out server_crt.pem

Selection_084
Poistetaan väliaikainen sertifikaatti ja avain tiedostot

rm -f tempkey.pem && rm -f tempreq.pem

Luodaan sitten tiedosto, joka sisältää molemmat: sertifikaatin ja avaimen.

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

Muutetaan sertifikaatti+avain -tiedosto PKCS#12 muotoon

openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "Certificate for Testing"

Tämän jälkeen on enää jäljellä HTTPS-konfigurointi. Ajetaan komennot

sudo a2enmod ssl
sudo service apache2 restart
sudo a2ensite default-ssl
sudo service apache2 reload
sudo /etc/init.d/apache2 restart

Selection_085

Linux palvelimena 5. tunti: LAMPin ja WordPressin asennus

Tehtävänä on asentaa virtuaalikoneeseen LAMP (Linux, Apache, MySql ja PHP) ja sen lisäksi vielä WordPress.

LAMP

Loin uuden Ubuntu-server -virtuaalikoneen ja nimesin sen LAMP:ksi. Asetin verkkoadapterin tyypiksi bridged ja asensin koneen normaaliin tapaan. Asennuksen yhteydessä valitsin asennettavaksi LAMP-server.

Koneen asennettua päivitän sen

sudo apt-get update

Tarkistetaan, että ohjelmat asentuivat ja toimivat kunnolla. Kirjoita selaimen osoite-riville koneen IP-osoite, ja tulos pitäisi näyttää tältä, kun kaikki toimii.
Selection_069

Näin LAMP on asennettu!

WordPress asennus ja muokkaus

Ladataan WordPress zip-tiedosto suoraan WordPressin sivuilta

wget http://www.wordpress.org/latest/tar.gz

Asennuksen jälkeen puretaan tiedosto

tar -xzvf latest.tar.gz

Puretut tiedostot pitäisi sijaita kotihakemistossa wordpress-kansiossa. Näyttää suunnilleen tältä:
Selection_065

Kirjaudutaan taas sisälle MySQL

mysql -u root -p

Luodaan wordpress-tietokanta

CREATE DATABASE wordpress;

Luodaan käyttäjä wordpress

CREATE USER susa@localhost;

Asetetaan käyttäjälle salasana, tässä esimerkissä se on password

SET PASSWORD FOR susa@localhost= PASSWORD("password");

Annetaan wordpress-käyttäjälle kaikki oikeudet

GRANT ALL PRIVILEGES ON wordpress.* TO susa@localhost IDENTIFIED BY 'password';

Nyt voit sulkea yhteyden.

Kopioidaan seuraavaksi WordPressin asennustiedosto, jota muokataan

sudo cp ~/worpress/wp-config-sample.php ~/wordpress/wp-config.php
sudo nano ~/wordpress/wp-config.php

Muokkaamaton asennustiedoston pitäisi näyttää tältä
Selection_067

Muutetaan tiedosto seuraavan laiseksi

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'susa');

/** MySQL database password */
define('DB_PASSWORD', 'password');

Siirretään seuraavaksi purkamattomat WordPress-tiedostot verkkosivun juurihakemistoon

sudo rsync -avP /home/lamp/wordpress /var/www/html

Siirrytään kyseiseen juurihakemistoon ja tarkistetaan että tiedostot siirtyivät.
Selection_068

Mennään /var/www -hakemistoon ja asetetaan tarvittavat käyttöoikeudet asennusta varten

sudo chown lamp:www-data /var/www -R
sudo chmod g+w /var/www -R

Asennetaan erillinen PHP-moduuli, jotta asennus voidaan suorittaa

sudo apt-get install php5-gd

Avataan sitten selain, ja kirjoitetaan osoiteriville domainin/IP:n jälkeen /ap-admin/install.php
Selection_074

Anna tarvittavat tiedot ja asenna. Sen jälkeen voit kirjautua sisään ja vaihtaa siellä
teeman.

Ensin jouduin kuitenkin siirtämään tiedostos vielä html-kansion alle ja nimeämään index.html-tiedoston uudelleen.

sudo rsync -avP /var/www /var/www/html
mv index.html index_d.html

Selection_075 Selection_076

Linux pavelimena 4. tunti – SAMBAn asennus ja käyttäjien Disk Quota

Samban asennus ja konfigurointi

Tehtävän antona oli asentaa ja konfiguroida Samba-tiedosto- ja tulostinpalvelin.

Aluksi asennettiin uusi Ubuntu-palvelin virtuaalikone, johon asennettiin SSH ja Samba jo asennuksen yhteydessä. Verkkoasetukseksi laitoin bridged.

Ohjelmat asentuvat myös komennoilla

sudo apt-get install ssh samba

Asennuksen jälkeen muokkasin tiedostoa samba.conf, johon päästään kätevästi:

sudo nano /etc/samba/smb.conf

Muista ottaa asennustiedostosta myös kopio!

sudo cp /etc/samba/smb.conf /etc/samba/smb.copy

Asennustiedoston pitäisi näyttää suunnilleen tältä:
Selection_046

Seuraavaksi muokkasin tiedostoa Samba-HOW-TO -ohjeen 2.3 kohtaa mukaillen. Lisäsin tiedostoon seuraavat rivit:

[global]
workgroup = KAWAII
netbios name = SAMBA
security = share

[data]
comment = Data
path = /home/samba/share
read only = yes
guest ok = yes

Sitten loin uuden käyttäjän komennoilla:

sudo useradd "Susa" -m -g users -p 12345

Koodissa hipsuissa on käyttäjä nimi ja users ilmaisee ryhmää mihin se kuuluu ja 12345 on asettamani salasana.

Seuraavaksi loin kyseisen hakemiston ja määritin seuraavat oikeudet:

sudo mkdir /home/samba/share
sudo chmod u+rwx,g+rx,o+rx /home/samba/share
sudo chown Susa.users /home/samba/share

Testataan asetusten toimivuutta komennolla testparm, ja mikäli kaikki on ok, uudelleenkäynnistetään samba-ohjelma komennolla

sudo nmbd
sudo smbd

Luodaan sitten uusi virtuaalikone, tällä kertaa Windows7. Muutetaan heti asennuksen jälkeen koneen workgroup samba-asennustiedoston mukaisiksi (myös koneen nimen voi tässä vaiheessa muuttaa jos haluaa). Asetuksii pääsee avaamalla File Explorerin ja sieltä valitsemalla ominaisuudet (properties) ja sitten kohdasta Change avautuu ikkuna, jonka pitäisi näyttää tältä:
Selection_051

Kone käynnistyy uudelleen, ja käynnistyksen jälkeen avaa taas File Explorer ja valitse vasemmalta Network. Mikäli se on pois päältä, sen pitäisi näyttää tältä:
Selection_048

Sitten vain klikkasin keltaista nauhaa ja valitsin, että jako ja näkyvyys on päällä. Valitse verkoksi myös private, mikäli sitä kysytään ja sitten jaettu verkko pitäisi näykyä, tässä tapauksessa siis SAMBA:
Selection_050

Siirrytään taas Ubuntu server -koneelle, ja lisätään käyttäjä Susa smbpasswd-tiedostoon:

sudo smbpasswd -a Susa

Heti kysytään uutta salasanaa ja pyydetään toistamaan se. Sen jälkeen tunnus on lisätty.

Mennään takaisin smb.conf-tiedostoon ja lisätään seuraavat rivit data-osion alle:

force user = Susa
force group = users

Lisätään muutama muu käyttäjä aiemmalla komennolla, ja lisätään myös ne smbpasswd-tiedostoon aiemmin tehdyn esimerkin mukaan.

Seuraavaksi lisäsin smb.conf-tiedostoon seuraavat tiedot:

[global]
workgroup = KAWAII
netbios name = SAMBA
printcap name = cups
disable spoolss = Yes
show add printer wizard = No
printing = cups

[data]
comment = Data
path = /home/samba/share
read only = Yes
guest ok = Yes
force user = Susa
force group = users

[homes]
comment = Home Directories
valid users = %S
read only = No
browsable = No

ja aivan tiedoston loppuun vielä:

[share]
comment = Ubuntu File Server Share
path = /home/samba/share
browsable = Yes
read only = No
create mask = 0755

Käynnistetään samba taas uudelleen, ja kokeillaan sen toimivuutta:

smbclient -L samba -U%

Tulokseksi pitäisi tulla tämän tapainen tulostus:
Selection_053

Kaikki näyttää toimivan, joten kokeillaan nyt saada yhteys luodulla käyttäjällä Susa:

smbclient //samba/share -USusa%susa

Koodissa -U jälkeen tulee käyttäjätunnus jolla kirjaudutaan ja %-merkin jälkeen kyseisen tunnuksen salasana. Onnistunut kirjautuminen pitäisi näyttää tältä:
Selection_054

Disk Quotat käyttäjille

Asennetaan ohjelma ensiksi

sudo apt-get install quota

Kopioidaan sitten varalta tiedosto, jota ollaan muokkaamassa, ja avataan se sitten:

sudo cp /etc/fstab /etc/fstab.copy
sudo nano /etc/fstab

Tiedoston pitäisi näyttää tältä:
Selection_055

Aloitetaan tiedoston muokkaus. Itse lisäsin vain ursquota heti kohdan errors=remount,-ro jälkeen. Tiedosto näyttää siis nyt tältä:
Selection_057

Tallenna tiedosto ja ajetaan komennot

sudo mount -o remount /
sudo quotacheck -cum /
sudo quotaon /

Sen jälkeen voit tarkastella ja muuttaa käyttäjien quatoja komennolla edquota, jonka jälkeen tulee kyseinen käyttäjätunnus, jota haluat tarkastella. Oman komentoni tulos oli seuraava:

sudo edquota Susa

Selection_058

Asetetaan käyttäjälle haluttu tilamäärä tai kansioiden määrä ja tallennetaan tiedosto.
Selection_061

Kun ajetaan kysely quota, tulostuu käyttäjän quota:

sudo quota Susa

Selection_062

Näin voit tarkastella ja muuttaa käyttäjille asetetut quotat. Esimerkkitulostuksia:
Selection_063

Linux palvelimena 3. tunti – DHCP ja DNS

Tehtävä:

Luo seuraavat virtuaalikoneet:

”Roope” jossa normaali Ubuntu, client-kone. Saa muuttuvan osoitteen DHCP-palvelimelta. Koneella ei ole verkon tunnistamaa nimeä.
Eth0 sisäisessä verkossa
”hostctrl” jossa Ubuntu palvelin. Toimii nimi- ja DHCP- palvelimena. Kiinteä osoite. Eth0 sisäisessä verkossa
”bridge” jossa Ubuntu palvelin. Kiinteä osoite. Toimii NAT-välittimenä (jos saadaan toimimaan!) ulkomaailman ja sisäisen verkon välillä. Eth0 ulkoisessa verkossa (bridged) ja eth1 sisäisessä.
”Aku” jossa Ubuntu palvelin. Saa osoitteen DHCP palvelimelta, osoite varattu
ennalta koneen MAC-osoitteen avulla. Eth0 sisäisessä verkossa.

Aluksi tein kaksi serverikonetta nimeltä hostctrl ja bridge. Ennen koneiden käynnistämistä vaihdoin verkkoasetukset koneisiin. Bridge-koneeseen vaihdoin ensimmäiseksi adapteriksi bridged ja toiseen adapteriin internal network. Sitten asensin koneet ja asennusprosessi tapahtui melko tavalliseen tapaan. Valitsin OpenSSH-ohjelman asennuksen molempiin koneisiin ja hostctrl vielä DNS asennuksen asennusvaiheessa. Kun koneet olivat asentuneet, päivitin molemmat sudo apt-get update ja tarkistin verkkokortit bridge-koneesta: ls /sys/class/net, josta tuli vastaukseksi eth0 eth1 lo. Kaikki kunnossa siis, joten asensin hostctrl-koneeseen DHCP:n sudo apt-get install isc-dhcp-server (sudo apt-get install isc-dhcp-server bind9 jos et asennuksen yhteydessä asentanut).

Muutan hostctrl-koneessa IP-osoitteen kiinteäksi muuttamalla verkkoasetuksia sudo nano /etc/network/interfaces, jonka pitäisi näyttää tältä:

    Alemman kohdan asetuksiin muutetaan static ja lisätään tietoja seuraavasti:

  auto eth0

  iface eth0 inet static

  address 10.5.5.1

  netmask 255.255.255.0

  network 10.5.5.0

  broadcast 10.5.5.255

  #dns-nameservers 10.5.5.1

Sitten käynnistä eth0 uudelleen: sudo ifdown eth0 ja sudo ifup eth0, jotta asetukset tulisivat voimaan. Tarkistetaan muutosten toimivuus komennolla ifconfig, jolloin koneen IP-osoitteen yms pitäisi olla äsken määritellyt osoitteet kuten kuvasta näkyy.

 

 

 

 

 

 

 

Muutetaan vielä hosts-tiedostoon sama äsken pysyväksi asetettu IP-osoite 10.5.5.1. Tiedostoa pääsee muokkaamaan komennolla sudo nano /etc/hosts. Alla kuva muuttamattomasta tiedostosta:

Selection_034

Eli muutetaan kuvassa näkyvä IP-osoite 127.0.1.1 äsken määritellyksi IP-osoitteeksi 10.5.5.1

 

 

 

 

 

 

Seuraavaksi määritellään bridge-koneen verkkoasetukset. Lisätään sinne eth1 verkko (sisäinen) ja määritellään kuvanmukaiset osoitteet:

Selection_035

Huomaa:

dns-nameserverr jätetään kommentoimatta ja sen osoitteeksi tulee hostctrl-koneen IP-osoite

 

 

 

 

 

Sitten suoritetaan taas ifdown- ja ifup -komennot, jotta muutokset tulevat voimaan.

Kokeillaan lähiverkon toimivuutta SSH:lla kirjautumalla hostctrl-koneella bridge-koneelle. Ensiksi sammutetaan hostctrl-kone, jotta voidaan muutta virtual boxissa hostctrl-koneen verkkoadapteriksi internal network (intnet) ja käynnistetään kone uudelleen. Kokeillaan yhteyden muodostamista SSH:lla:
ssh bridge@10.5.5.2. Jos kaikki menee oikein, pitäisi koneen kysyä varmistuksen yhteyden muodostamiseen, johon vastataan yes. Sen jälkeen pyydetään bridge-koneen salasanaa ja kirjautumisen pitäisi onnistua ja näkymän pitäisi olla seuraavanlainen:

 

Uloskirjautuminen tapahtuu komennolla exit

 

 

 

 

 

DHCP:n asennus

Käydään muokkaamassa DHCP:n asennustiedostoa komennolla sudo nano /etc/dhcp/dhcpd.conf, mutta sitä ennen otetaan tiedostosta varmuuskopio, mikäli sitä tarvitaan: sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.copy.

Lisätään tiedostoon seuraavat tiedot:

subnet 10.5.5.0 netmask 255.255.255.0 {
range 10.5.5.10 10.5.5.30;
option domain-name-servers 10.5.5.1, 8.8.8.8; (8.8.8.8 on Googlen)
option domain-name "lahiverkko.lan";
#option routers 10.5.5.1;
option broadcast-address 10.5.5.255;
}

Tiedoston pitäisi näyttää suunnilleen tältä:

 

 

 

 

 

 

 

Lisätään tiedostoon halutut lähiverkkoon kuuluvat koneet, joille halutaan pysyvä IP-osoite:

  Hardware näkee kunkin koneen tiedoista, kun suorittaa komennon ifconfig.

fixed-address voit valita haluamasi IP-osoitteen.

 

 

Käynnistetään DHCP-server uudelleen komennolla sudo /etc/init.d/isc-dhcp-server restart

 

Sitten tarkistetaan, että asetetut koneet saavat hostctrl-koneelta staattisen IP-osoitteen. Kokeilin Roope-desktop -koneella, joten ensin ifdown ja ifup, että asetukset tulevat voimaan. Ifconfig-komenna pitäisi näkyä asetettu IP-osoite:

Ja IP-osoitteeksi on päivittynyt asetettu osoite 10.5.5.4, eli se toimii!

Linux palvelimena – 2. tunti: SSH ja Wireshark & Munin

Työympäristö ja taustaa

Acer Aspire E-1 522

Käyttöjärjestelmä: Windows 8.1  64-bit/Linux Mint 17

Suoritin: AMD Quad-Core Prosessor A6-5200/2.0 GHz

Muisti: 6 GB DDRL

Näytönohjain: AMD Radion HD 8400

Piirisarja: AMD A68M

Käyttämäni Virtual Box OS: Ubuntu Desktop 14.04.1 LTS

 

Wireshark ja SSH

Ensiksi loin toisen virtuaalikoneen VirtualBoxiin. Asetin yhteysasetukseksi Bridged Adapter molempiin virtuaalikoneisiin. Sitten päivitin molemmat virtuaalikoneet sudo apt-get update ja sudo apt-get upgrade.

Asensin Wireshark ohjelman sudo apt-get install wireshark ja virtuaalikoneisiin SSH:n sudo apt-get install apache2 ssh. Kokeilin SSH yhteyttä kirjautumalla koneen omalla tunnuksella: ssh susa@virtual ja ssh susa@susa. Sitten automatisoin kirjautumisen SSH:ssa molempiin koneisiin komennolla ssh-keygen. Annoin koneen tallentaa oletuskansioon salasanan ja jätin tyhjäksi passphrasen. Seuraavaksi kopioin salasanan komennolla ssh-copy-id susa@(virtuaalikoneen ip-osoite) molemmissa virtuaalikoneissa. Kokeilin yhteyden muodostamista kirjautumalla SSH:n kautta: ssh susa@(kirjauduttavan koneen ip-osoite). Ip-osoitteen saa selville helposti komennolla ifconfig. Yhteys toimi hyvin, eikä kirjautuessa tarvinnut salasanaa, eli autetisointikin onnistui. Lisäsin toiseen virtuaalikoneeseen tekstitiedoston testi ja kirjauduin ulos SSH-yhteydestä komennolla exit. Tarkistin vielä toisesta virtuaalikoneesta, että tiedoston luonti oli onnistunut.

Avasin Wiresharkin peruskoneella (ei virtuaaliselle) sudo-käyttäjänä sudo wireshark. Näkyviin tuli Wiresharkin alkunäkymä ja valitsin Start-kohdan alta eth0-verkon ja ok. Sitten käynnistin seurannan ja kirjauduin uudelleen virtuaalikoneeseen ja tein toisen testi tekstitiedoston ja kirjauduin ulos. Filtteröin Wiresharkista pelkät TCP-tapahtumat, jotta SSH-aktiivisuus näkyisi paremmin.

Workspace 1_001  Workspace 1_005

Munin harjoitus

Muninia varten täytyy olla Apache asennettuja, joten jos se puuttuu asennetaan se komennolla sudo apt-get install apache2. Muninin asensin varsinaiselle työalustalle sudo

apt-get munin -komennolla.  Menin Munin tiedostoon /etc/munin/munin.conf ja

muokkasin tiedostoa komennolla sudo nano munin.conf. Siellä poistin kommentti m

erkin (#) kodista ja pienen muutoksen toiseen kohtaan:

#dbdir /var/lib/munin

#htmldir /var/cache/munin/www

#logdir /var/log/munin

#rundir /var/run/munin

Muokattu:

dbdir /var/lib/munin

htmldir /var/www/munin

logdir /var/log/munin

rundir /var/run/munin

ja otin muokkauksen pois myös seuraavasta kohdasta:

#tmpldir /etc/munin/templates

ja muutin vaihdoin nimeksi MuninMonitor ja tallensin tiedoston.

[MuninMonitor]

address 27.0.0.1

Seuraavaksi avasin Muninin apachen asetustiedoston:

sudo nano /etc/munin/apache.conf

Muutin osoite polun samaksi kuin aiemmin asetettiin:

Alias /munin /var/www/munin

Muutin osoitepolun myös toisessa kohdassa oikeaksi ja muutin alla olevia tietoja seuraavan laiseksi:

<Directory /var/www/munin>

Order allow,day

#Allow from localhost 127.0.0.0/8   ::1 <--kommentoidaan piiloon

Allow from all  <-- lisättiin

Options None

Seuraavaksi loin uuden tiedostopolun, minkä muutin aiemmissa kohdissa .conf tiedostoissa ja määrittelee kirjoitusoikeudet:

sudo mkdir /var/ww/munin

sudo chown munin:munin /var/www/munin

Sitten käynnistin Muninin uudelleen, jotta asetukset tulevat voimaan:

sudo service munin-node restart

sudo service apache2 restart

Munin tiedostojen tietoja pystyy tarkkailemalla selaimen kautta kirjoittamalla omaIPosoit/munin. Saattaa kestää hetki ennen kuin tiedostot on luotu.

Workspace 1_003

Linux palvelimena – 1. tunti

Työympäristö ja taustaa

Acer Aspire E-1 522

Käyttöjärjestelmä: Windows 8.1  64-bit/Linux Mint 17

Suoritin: AMD Quad-Core Prosessor A6-5200/2.0 GHz

Muisti: 6 GB DDRL

Näytönohjain: AMD Radion HD 8400

Piirisarja: AMD A68M

Käyttämäni Virtual Box OS: Ubuntu Desktop 14.04.1 LTS

 

VirtualBoxin ja Apachen asennus

Tein harjoituksen koulun tietokoneluokassa Haaga-Helian koneella h5005, jossa on ulkoAsensin ensin virtual boxin komennolla sudo apt-get install virtualbox ja lisäsin siihen Linux Mintin.

Virtual Box:issa asensin Apachen: sudo apt-get apache2 ja sen jälkeen menin tiedostoon /var/www/html/index.html ja muokkasin tiedoston Ankkalinnan etusivuksi.

 

Käyttäjien ja ryhmien luonti

Lisäsin käyttäjät Tupu, Hupu ja Lupu sekä Aku:

sudo useradd Tupu
sudo useradd Lupu
sudo useradd Hupu
sudo useradd Aku

ja loin ryhmän kehittäjät: sudo groupadd kehittajat

 

Käyttäjien lisääminen ryhmään ja oikeuksien määärittely

lisäsin Tupun, Hupun ja Lupun ryhmään kehittäjät:

sudo usermod -G kehittajat Tupu
sudo usermod -G kehittajat Hupu
sudo usermod -G kehittajat Lupu

Lisäsin Tupun www-data ryhmään, jotta hän voi hallinnoida Ankkalinnan www-sivuja:
sudo usermod -a -G www-data Tupu
sudo chgrp -R www-data /var/www

Ja annoin Akulle sudo-käyttöoikeudet:
sudo usermod -a -G sudo Aku

 

Tässä kuvakaappaus Virtual Boxista webbisivujen luonnin jälkeen.

 

Susanna Salmi

Hello word kolmella eri ohjelmointikielellä (C++, Java ja C#)

Työympäristö ja taustaa

Käyttämäni tietokone on kannettava Lenovon ThinkPad Edge E420s, joka on ostettu 2012 syksyllä.

Käyttöjärjestelmä: Windows 7 Home Premium 64-bit

Suoritin: Intel Core i3 (2. sukupolvi) 2350M/2.3 GHz/3 Mt välimuisti

Muisti: 4 Gt DDR3

Näytönohjain: Intel HD Graphics 3000

Piirisarja: Intel HM65 Express

Käyttämäni liveromppu: Xubuntu 12.04 64-bit (xubuntu-12.04-desktop-amd64.iso)

C++

Ensimmäiseksi vaihdoin näppäimistön suomen näppäimistöön komennolla setxkbmap fi ja päivitin ohjelmistopaketit sudo apt-get update. Sitten latasin C++ -ohjelman sudo apt-get install g++. Sen jälkeen loin c++ -tiedoston nano hello.cc, jonne kirjoitin seuraavan laisen koodin pätkän:

#include <iostream>

using namespace std;

int main()
{
cout<<”Hello world!\n”;

cin.get();
return 0;

}

Sen jälkeen komento g++ hello.cc -o hello ja tulostuskomento ./hello, jolloin ohjelma tulosti Hello world!. Koodi siis toimi.

Java

Ensiksi asensin Javan komennolla sudo apt-get install openjdk-7-jdk. Sen jälkeen loin java-tiedoston nano HelloWorld.java, jonne tallensin Hello World! -koodin:

public class HelloWorld
{
public static void main(String[] args)
{
System.out.println(”Hello world!”);
}
}

Sen jälkeen komennot javac HelloWorld.java ja java HelloWorld, jolloin ohjelma tulosti koodatun Hello world! -tekstin. Näin tein HelloWorld-ohjelman javalla.

C#

Aloitin lataamalla Rubyn komennolla sudo apt-get install mono-mcs, jonka jälkeen loin C#-ohjelmalleni tiedoston nano hello.cs. Seuraavaksi tallensin sinne  Hello world -ohjelmani:

class HelloWorld
{
static void Main()
{
System.Console.WriteLine(”Hello world!”);
}
}

Sen jälkeen vain komennot mcs hello.cs ja mono hello.exe, jonka jälkeen tulostui Hello world! -teksti. Ohjelmani siis toimi.

Susanna Salmi

Lähteet

Tero Karvinen

Transwiki

EDIT: Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

SSH:n asennus ja käyttöä

Työympäristö ja taustaa

Käyttämäni tietokone on kannettava Lenovon ThinkPad Edge E420s, joka on ostettu 2012 syksyllä.

Käyttöjärjestelmä: Windows 7 Home Premium 64-bit

Suoritin: Intel Core i3 (2. sukupolvi) 2350M/2.3 GHz/3 Mt välimuisti

Muisti: 4 Gt DDR3

Näytönohjain: Intel HD Graphics 3000

Piirisarja: Intel HM65 Express

Käyttämäni liveromppu: Xubuntu 12.04 64-bit (xubuntu-12.04-desktop-amd64.iso)

Ssh:n asentaminen

Ensimmäiseksi päivitin ohjelmistopaketit sudo apt-get update ja latasin apachen ja ssh:n sudo apt-get install apache2 ssh. Latauksen jälkeen tarkistin apachen toimivuuden surffaamalla osoitteeseen localhost, ja sehän toimi.

Ssh kirjautuminen ja uuden käyttäjän luonti

Koska tein tehtävän liverompulla, ensiksi täytyi luoda oletuskäyttäjälleni (xubuntu) salasana sudo passwd xubuntu, ennen kuin pystyin kirjautumaan sillä ssh:n ssh xubuntu@localhost. Salasanan näpyttelyn jälkeen yhteys oli luotu. Yhteys suljetaan komennolla exit.

Seuraavaksi loin uuden käyttäjän susa: sudo adduser susa ja sille salasanan. Luonnin yhteydessä on myös mahdollista määrittää käyttäjän tietoja (kuten puhelinnumeron, koko nimen). Enteriä painamalla pääsee aina seuraavaan kohtaan kunnes viimeinen tietojen verifiointi kohtaan vastataan y (eli yes). Näin uusi käyttäjä on luotu. Kokeilin käyttäjää kirjautumalla sillä ssh:n ssh susa@localhost. Näpyttelin salasanan ja yhteys muodostui, eli käyttäjän luonti onnistui.

Kirjautumisen automatisointi julkisella avaimella

Kirjautumisen automatisointi tapahtui komennolla ssh-keygen ja sen jälkeen ssh-copy-i xubuntu@localhost, ja kirjaututumisen automatisointi julkisella avaimella oli luotu. Kokeilin vielä toimiko se ja kirjauduin ssh:n käyttäjä xubuntulla: ssh xubuntu@localhost, ja yhteys aukesi ilman salasanan kirjoittamista. Tein vielä samoin luomalleni toiselle käyttäjälle ssh-copy-i susa@localhost ja näin olin automatisoinut molempien käyttäjien kirjautumisen julkisella avaimella.

Tiedoston kopiointi rsync:llä

Ensiksi loin käyttäjälle susa kansion Kansio mkdir Kansio, ja sinne tekstitiedoston nano index.php. Sen jälkeen kirjauduin ulos komennolla exit, ja kopioin käyttäjän susa kansion Kansio rsync -vazh Kansio/ susa@localhost. Linux kopioi kansion Kansio ja loi samalla uuden kansion susa@localhost, jonne tallennettiin kopioitu Kansio. Tarkistin vielä, että kansio ja tiedostot olivat kopioituneet. Komennolla pwd tarkistin sen hetkisen sijaintini, ja komennolla ls sain listan siellä sijaitsevista kansioista. Listassa näkyi susa@localhost -kansio. Valitsin kansion komennolla cd susa@localhost ja tarkistin sen sisällön ls. Siellä oli kansio Kansio, ja tarkistin vielä, että tekemäni tiedosto index.php oli varmasti kopioitunut. Valitsin Kansion cd Kansio ja tarkistin sisällön ls. Kansiossa oli tiedosto index.php ja avasin vielä tiedoston index.php nano index.php ja tarkistin sen sisällön. Kaikki oli kopioitunut alkuperäisestä Kansiosta, joten kopiointi onnistui.

Susanna Salmi

Lähde

Tero Karvinen

EDIT: Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

Tietokannan asennus, MySQL harjoittelua ja PhpMyAdminin kokeilua

Työympäristö ja taustaa

Käyttämäni tietokone on kannettava Lenovon ThinkPad Edge E420s, joka on ostettu 2012 syksyllä.

Käyttöjärjestelmä: Windows 7 Home Premium 64-bit

Suoritin: Intel Core i3 (2. sukupolvi) 2350M/2.3 GHz/3 Mt välimuisti

Muisti: 4 Gt DDR3

Näytönohjain: Intel HD Graphics 3000

Piirisarja: Intel HM65 Express

Käyttämäni liveromppu: Xubuntu 12.04 64-bit (xubuntu-12.04-desktop-amd64.iso)

Tietokannan asennus ja MySQL harjoittelua

Aivan ensiksi aloitin asentamalla suomenkielen näppäimistön komennolla setxkbmap fi ja päivittämällä ohjelmistopaketit sudo apt-get update. Tehtävää varten asensin Apachen ja MySQL:n: sudo apt-get install apache2 mysql-server. Latauksen jälkeen Linux pyysi luomaan salasanan MySQL:n root-käyttäjälle ja sen jälkeen toistamaan sen, että varmasti menee oikein. Seuraavaksi kirjauduin root-käyttäjänä SQL-tietokantaan: mysql -u root -p, jonka jälkeen täytyi antaa root-käyttäjän salasana, joka siis luotiin asennuksen yhteydessä aiemmin.

Tietokannan luonti ja tietojen tuominen sieltä

Tietokannan luominen tapahtui komennolla create database instruments;. Seuraavaksi annetaan kaikki käyttöoikeudet kyseiselle instruments-käyttäjälle tietokantaan instruments: grant all on instruments.* to instruments@localhost identified by ’VeryDifficultPassword’;.Sen jälkeen kokeilin toimiko uusi käyttäjä instruments oikein: ensin kirjauduin ulos MySQL:stä exit;, jonka jälkeen kirjauduin mysql -u instruments -p ja sen jälkeen valitsin tietokanta instruments use instruments. Kaikki toimi niin kuin piti ja jatkoin tehtävää: tein kyseiseen tietokantaan taulun, johon valitsin otsakkeiksi name ja description: create table instruments( name varchar(50), description varchar(50) );. Sitten tarkistin taulun sisiällön komennolla show tables ja desc instruments. Seuraavaksi tallensin tauluun seuraavat tiedot: insert into instruments value(’Piano’, ’Piano is a musical instrument’); ja insert into intruments value(’Guitar’, ’Guitar is also a musical instrument’); ja viimeiseksi hain tietokantaan tallentamiani tietoja komennolla select * from instruments;.

Screenshot - 02042013 - 09:05:30 PM

PhpMyAdmin kokeilu

Asensin PhpMyAdminin komennolla sudo apt-get install phpmyadmin ja valitsin asennuksen yhteydessä Apachen valmiin säädön rastittamalla kohdan apache. Sen jälkeen seuraavaan kysymykseen kyllä ja salasanojen jälkeen asennus oli valmis.

Kokeilin PhpMyAdminia kirjoittamalla URL-riville localhost/phpmyadmin/ ja sivu aukesi!

Screenshot - 02042013 - 09:22:39 PM

Sisäänkirjautuminen onnistui molemmilla käyttätunnuksilla (root ja instruments). PhpMyAdminin sivuilla oli helppo muokkailla tietoja: lisätä, poistaa tai muuttaa.

Screenshot - 02042013 - 09:24:49 PM

Susanna Salmi

Lähteet

Tero Karvinen

EDIT: Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html

PHP-kotisivut

Työympäristö ja taustaa

Käyttämäni tietokone on kannettava Lenovon ThinkPad Edge E420s, joka on ostettu 2012 syksyllä.

Käyttöjärjestelmä: Windows 7 Home Premium 64-bit

Suoritin: Intel Core i3 (2. sukupolvi) 2350M/2.3 GHz/3 Mt välimuisti

Muisti: 4 Gt DDR3

Näytönohjain: Intel HD Graphics 3000

Piirisarja: Intel HM65 Express

Käyttämäni liveromppu: Xubuntu 12.04 64-bit (xubuntu-12.04-desktop-amd64.iso)

”Hei maailma” -kotisivut

Esimmäiseksi asensin näppäimistön suomen näppäimistöksi komennolla setxkbmap fi. Sitten päivitin ohjelmistopaketit komennolla sudo apt-get update, ja asensin apachen komennolla sudo apt-get install apache2. Seuraavaksi käyttöoikeuksien sallimisen asesin komennolla sudo a2enmod userdir, minkä jälkeen täytyi käynnistää apache uudelleen komennolla sudo service apache2 restart.

PHP-moduulin asesin komennolla sudo apt-get install libapache2-mod-php5 ja käynnistin apachen uudelleen.

Kotisivujen luomisen aloitan tekemällä uuden kansin public_html käyttäjän kotihakemistoon: mkdir public_html. Seuraavaksi loin kyseiseen kansioon tiedoston index.php: nano index.php. Sinne kirjoitin

<!doctype html>
<html>
<head>
<title>Hei maailma</title>
<meta charset=”utf-8″ />
</head>
<body>
<h1>Hei maailma</h1>
<p><?php print 4+5?></p>
</body>
</html>

Kirjoitin osoiteriville localhost/~xubuntu, mutta sivut eivät avautuneetkaan normaalisti, vaan selain kysyi miten haluan avata/tallentaa kyseisen .php-tiedoston. Googletin ongelmaani ratkaisua, ja onnistuin löytämään muutaman vuoden takaisen postauksen (2011), jossa kirjoittaja opasti kyseistä ongelmatilannetta. Tein kaiken kyseisen sivun ohjeiden mukaan, ja TA-DAA!, sain kotisivuni toimimaan! Olin kokeillut ennen tätä monia muita googlen tuomia ratkaisuja, mutta mitkään niistä eivät toimineet tai pahensivat tilannetta niin, että tuli virheilmoitus 500 Internal server error… Kyseistä ratkaisua tarjonnutta sivua noudattaen asensin siis apache2 ja php5: sudo apt-get install apache2 php5, minkä jälkeen luonnollisesti apachelle uudelleenkäynnistys. Seuraavaksi neuvottiin tekemään toimettomaksi joitakin rivejä asetuksista komennolla sudoedit /etc/apache2/mods-available/php5.conf. Rivit sai toimettomaksi lisäämällä #-merkin rivin eteen (# ovat lisäämiäni muutoksia):

<IfModule mod_php5.c>
<FilesMatch ”\.ph(p3?|tml)$”>
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ”\.phps$”>
SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule …> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
#    <IfModule mod_userdir.c>
#        <Directory /home/*/public_html>
#            php_admin_value engine Off
#        </Directory>
#    </IfModule>
</IfModule>

Tämän jälkeen apachelle restarttia (taas) ja suurella jännityksellä taputtelin osoiteriville localhost/~xubuntu ja painoin enteriä. Tarpeetonta ehkä mainita, mutta oli kyllä niin voittaja olo kun ruudulle ilmestyi:

Hei maailma

9

Kaikki siis toimi niin kuin piti.

Yksinkertainen PHP-ohjelma

Kotitetäväni toinen osa oli luoda yksinkertainen PHP-ohjelma, joka kysyy käyttäjältä muutaman luvun, ja laskee ne sitten ja tulostaa vastauksen. Päätin tehdä ohjelman, joka laskee suorakaiteen pinta-alan.

Avasin kotisivutiedostoni (nano index.php) ja tein seuraavat muutokset:
<!doctype html>
<html>
<head>
<title>Calculator</title>
<meta charset=”utf-8″ />
</head>
<body>
<h1>Calculate the area of a rectangle!</h1>
<form action=”action.php” method=”post”>
<p>First lenght (cm): <input type=”text” name=”lenght” /></p>
<p>Second lenght (cm): <input type=”text” name=”height” /></p>
<p><input type=”submit” /></p>
</form>

</body>
</html>

Seuraavaksi loin kansioon public_html tiedoston nano action.php, jonne kirjoitin:

The area is <?php echo htmlspecialchars($_POST[’height’]*$_POST[’lenght’]); ?> cm2.

Kokeilin koodin toimivuutta ja avasin selaimen. Osoiteriville kirjoitin localhost/~xubuntu, ja ruudulle ilmestyi lupaava kuva:

Screenshot - 02022013 - 01:39:20 PM

Syötin tiedoiksi 4 ja 7, ja painoin Submit-nappulaa. Tulos näytti tältä:

Screenshot - 02022013 - 01:40:52 PM

Eli loppu hyvin, kaikki hyvin.

Susanna Salmi

Lähteet

Emphatic Nonsense

Tero Karvinen

EDIT: Tätä dokumenttia saa kopioida ja muokata GNU General Public License (versio 2 tai uudempi) mukaisesti. http://www.gnu.org/licenses/gpl.html