Linux palvelimet H4

Tehtävässä käytetyt harjoitukset löytyvät osoiteesta : linux palvelimet.
Kurssin opettajana toimii Tero Karvinen.

Harjoitus toteutetaan jo aikaisemmassa harjoituksessa käytetyllä Lenovo T470P tietokoneella. Käyttöjärjestelmä on 64 bittinen Antergos. Tehtävä suoritettiin lauantaina 23.09.2017

r) Kokeile julkista virtuaalipalvelinta (VPS). Voit vuokrata palvelimen esimerkiksi Linodelta, Amazonilta, DigitalOceanilta, OVH:lta tai monista muista paikoista. Edullisinta on käyttää GitHub Education -paketista DigitalOceanin palveluita.

Tein tunnukset DigitalOceanille, tuli edullisimmaksi GitHub education pack.n kautta.


Valitsen Virtuaalipalvelimen pohjaksi ubuntu 16.04.2 64 bittisen version. Koska tämä on harjoitus, tyydyn 10$ kuukaudessa maksavaan alustaan koska sen tarjoamat resurssit ovat riittävät tähän tarkoitukseen. Valitsen palvelinmaaksi Saksan, teen tämän puhtaasti maantieteellisen läheisyyden takia.
Koska haluan käyttää SSH avaintani, lisään julkisen SSH avaimeni tiedot.
Annan palvelimelle nimen ja luon sen.

Luonti prosessi ei kestä kauan (n.2 minuuttia). Kun tämä on valmis on palvelin käytettävissä.


Otan yhteyden palvelimeen SSH yhteydellä. Aikaisemmin laitoin julkisen ssh avaimeni tiedot palvelimelle, kun ensimmäisen kerran kirjaudun, syötän SSH tunnuslauseeni ja palvelin lisätään näin luotettuihin host.n. Kun tämä on tehty, voin kirjautua suoraan sisään ilman salasanaa. Tunnuslausetta tosin tulee varautua käyttämään jatkossa.

Koska palvelin on julkinen, aloitan sen käytön tekemällä siitä hivenen turvallisemman käyttää.

Ensimmäiseksi laitan palomuurin (ufw) kuntoon.
Lisään ensimmäisenä säännön ssh palvelulle komennolla

sudo ufw allow 22/tcp

Tämän jälkeen laitan palomuurin päälle komennolla

sudo ufw enable

Luon tämän jälkeen käyttäjän tatu, jotta en käyttäisi palvelinta vain päätkäyttäjänä. Tätä ei itsessään suositella. Käytän komentoja:

sudo adduser tatu

Tämän jälkeen tulee kysely uuden käyttäjän tiedoista sekä salasanasta.
Turvallisen salasanan käyttämistä ollaan painotettu, joten loin sen aikaisemmassa tehtävässä esitellyllä pass ohjelmalla. Luon tätä tarkoistusta varten 15 merkkiä pitkän salasanan, joka on täysin sattumanvarainen ilman luettavia sanoja.
Teen käyttäjästä “tatu” pääkäyttäjän lisäämällä sen pääkäytäjä ryhmiin. Tämä tapahtuu komennolla:

sudo adduser tatu sudo
sudo adduser tatu adm
sudo adduser tatu admin

Testaan että käyttäjään saa järjestelmän sisällä yhteyden, komennolla

ssh tatu@[palvelimen-ip]”

Ongelmaksi muodostuu kun kirjautumisyrityksessä tulee viesti
Permission denied (publickey).”.

Tämä ongelma ratkeaa muokkaamalla “sshd_config” tiedostoa, joka sijaitsee “/etc/ssh”
Tiedostossa on merkintä “PasswordAuthentication no”, tämä arvo pitää korjata “yes”.

Käynnistän ssh palvelun uudesta komennolla

sudo service ssh reload

ja pääsen kirjautumaan käyttäjälle salasanan kanssa.

Jotta saisin käytettyä uutta käyttäjää samalla ssh avaimella, joudun siirtämään julkisen avaimen tiedot palvelimen käyttäjälle. Tämä tapahtuu komennolla

ssh-copy-id tatu@[palvelin-ip]”

Tämän jälkeen syötetään palvelimen käyttäjän salasana.
Tämän jälkeen palvelimelle voi kirjautua suoraan SSH avainta käyttäen.

Tämän jälkeen lukitsen root käyttäjän ja estän kirjautumisyrityksen sillä.
Tämä tapahtuu komennolla

sudo usermod – -lock root

Tämän jälkeen muokaan “sshd_config” tiedostoa jota muokkattiin jo aikaissemmin.
Teen muutoksen “permitRootLogin yes” merkintään, korvaan arvoksi “no”.
Tämän jälkeen käynnistän ssh palvelun uudestaan, jotta muutoksen tulevat voimaan.

x) Laita julkinen domain-nimi osoittamaan koneeseesi. NameCheap ja Gandi ovat tunnettuja nimien vuokraajia. GitHub Education -paketista saa NameCheapilta .me domainin ilmaiseksi vuodeksi.

Minulla on entuudestaan jo domain-nimi namecheap.a käytössä (tämä domain),
lisään uuden virtuaalipalvelimeni ip-osoitteen “advanced DNS” välilehden kautta.
Luon A recordin nimellä “tatu”.
Tämä näkyy verkossa muodossa “tatu.erkinjuntti.me”.
Testaan että muutos on tullut voimaan komennolla “host tatu.erkinjuntti.me”.

s) Laita julkiselle palvelimellesi käyttäjän kotihakemistoon tallennettu sivu näkymään Apachen oletussivuna.
Minulla ei virtuaalipalvelimella ole vielä mitään asennettuna, joten tätä varten asennan LAMP.n (tarvitsen tätä myöhemmissä tehtävissä). Tämä onnistuu komennolla

sudo apt-get install lamp-server^

Luon MySql server.e vahvan salasanan pass ohjelman kautta.

Jotta apache.a voi testata, pitää palomuurista avata portti 80 (http) jotta tämän voi tehdä.
Komento on samanlainen kuin aikaisemmin

sudo ufw allow 80/tcp”.

Testaan apache.a menemällä selaimella osoitteeseen tatu.erkinjuntti.me

Tämän jälkeen annan oikeudet apache.n käyttää käyttäjän kotihakemistoja. Tämä tapahtuu komennolla

sudo a2enmod userdir

Tämän jälkeen käynnistän apache palvelimen uudestaan komennolla

sudo sercive apache2 restart”.

Luon käyttäjän tatu kotihakemistoon hakemiston “public_html” komennolla
mkdir public_html

ja sinne luon index.html tiedoston komennolla

nano index.html”.

Kirjoitan ekaksi sivuksi klassisen “Hello World!!”.

Jotta saan tämän näkymään apache.n oletus sivuna, tulee minun muokata tiedostoa
“000-default.conf”, joka sijaitsee etcapache2/sites-enabled” ja tehdä muokkaus että “DocumentRoot /home/tatu/public_html”. Käynnistän apache palvelimen uudestaan ja testaan että muutos toimii.

 

y) Etsi julkisen palvelimesi lokeista esimerkkejä murtautumisyrityksistä. Voit etsiä lisätietoa IP-osoitteista ottamatta niihin yhteyttä esimerkiksi komennoilla geoiplookup tai whois.

Seurasin järjestelmän “auth.log” tiedostoa ,
joka sijaitsee “/var/log/”. käytin tähän “less” komentoa.
Löysin kuin löysinkin murtoyrityksen, tarkastin ip-osoitteen whoisip.n avulla ja sijainti viittaa Vietnamiin.

 

t) Asenna WordPress. Se on maailman suosituin sisällönhallintajärjestelmä (CMS). Samalla opit asentamaan kolmannen osapuolen valmiita PHP-ohjelmia. WordPress kannattaa asentaa wordpress.org:sta löytyvästä tervapallosta (.tar.gz).

Alun perin tein tätä tehtävää käyttäjän kotihakemistoon tehdylle kansiota varten. Syystä tai toisesta, en saanut wordpress.a toimimaan siinä, selaimen ikkuna oli vain valkoinen. Sain loppujen lopuksi sen toimimaan kun siirsin sen hakemistoon “/var/www/html/”.

edit 09.10.2017. Tämä virhe johtui siitä, että en ollut sallinut Php.n käyttöä käyttäjien kotikansioissa.

Aloitin tehtävän määrittelemällä tietokannan wordpress.a MySql.a käyttäen, loggasin sisään komennolla “mysql -u root -p”, luon kanna komennoilla”

CREATE DATABASE wpdb;
​GRANT ALL PRIVILEGES ON wpdb.* TO ‘tatu’@’localhost’ IDENTIFIED BY ‘[salasana]’;
​FLUSH PRIVILEGES;
​EXIT;

Tämän jälkeen latasin wordpress.n hakemistoon “/var/www/html”, käytän komentoa

“sudo wget https://wordpress.org/latest.tar.gz

puran tiedoston komennolla

sudo tar -xf latest.tar.gz”.

Menen uuteen wordpress hakemistoon tekemään pienet säädöt ennen käytön aloittamista.
Luon config tiedoston uutta alustaa varten komennolla

sudo mv wp-config-sample.php wp-config.php

Tämän jälkeen käsittelen hieman uutta konfiguraatiotiedostoa, komennolla

sudo nano wp-config.php

Syötän tarvittaviin sarakkeisiin tiedot käytettävästä tietokannasta,
kannan käyttäjästä sekä käyttäjän salasanan.

Ennen kuin otan palvelun käyttöön, muokkaan hosts tiedostoa sekä luon “erkinjuntti.me.conf” tiedoston kansioon “/ect/apache2/sites-available”.

Otan uuden sivuston käyttöön komennolla

“a2ensite erkinjuntti.me.conf”

Tämän jälkeen uudelleen käynnistän apache sekä MySql palvelut, teen tämän komennoilla “sudo systemctl restart apache2.service

sudo systemctl restart mysql.service

Tämän jälkeen menen selaimella osoiteeseen tatu.erkinjuntti.me.

 

u) Kokeile WordPressia kirjoittamalla esimerkkisisältöä.

Tein kokeeksi uuden sivun, aiheena jo klassinen hello world!.

WordPress vapaaehtoisia:

e) Varmuuskopioi sisältö
Varmuuskopion sisällön wordpress.n export → “all content”. Tämä luo xml tiedoston jota voi käyttää sivuston siirtämisessä. Teen varmuuskopion aktiivikäytössä olevasta wordpress.a.

f) Palauta varmuuskopioitu sisältö puhtaaseen WordPress-asennukseen

Mietin että nyt kun on wordpress asennettu uudelle palvelimelle, voisin siirtää vanhan tiedot siihen.
Siirrän xml tiedoston palvelimelle komennolla
scp tatuerkinjuntti.wordpress.2017-09-24.xml tatu@46.101.243.151:/home/tatu”.

Tämän jälkeen joudun hieman muokkamaan oikeuksia jotta voin käyttää sekä lataa tiedostoja wordpressiin. Teen tämän komennoilla
sudo chmod -R 755 /var/www/html/wordpress

sudo chown -R www-data:www-data /var/www/html/wordpress“.

Kaiken varalta käynnistän vielä apache.n uudestaan komenonlla

sudo systemctl restart apache2.service”.

Tämän jälkeen menen wordpressin kontrollipanelilla import välilehdelle ja asennan WordPress importer.n.

Valitsin siirrettävän xml-tiedoston ja valitsin mille käyttäjälle sen liitän.

Jälkeen päin huomasin että tiedoston siirto palvelimelle oli turhaa, koska pystyin latamaan sen suoraan käytetävältä koneeltani.

Kun siirto oli valmis, sain sivut samantien käyttööni.

Lähteet:

http://www.techrepublic.com/article/how-to-install-wordpress-on-ubuntu-16-04/

http://terokarvinen.com/2017/first-steps-on-a-new-virtual-private-server-an-example-on-digitalocean

WordPressin asennus