Palvelinten hallinta Viikko 2

04-11-2018

Harjoitus H2 – Torstain ryhmä

a) Opiskele yllä aikataulussa olevat artikkelit. (Tätä lukutehtävää ei tarvitse raportoida). Luettava materiaali on kunkin tapaamiskerran kohdalla, esimerkiksi nyt “2. Package-file-server. […] Luettavaa: Karvinen 2018: Pkg-File-Service – Control Daemons with Salt..”

b) Asenna SSH eri porttiin Package-File-Service rakenteella. Käytä service:watch -tekniikkaa niin, että demoni käynnistyy uudelleen, kun asetustiedosto muuttuu. (Vinkki: Pkg-File-Service – Control Daemons with Salt)

c) Asenna Apache käsin niin, että käyttäjien kotisivut näkyvät. Etsi muutetut tiedostot komennolla ‘find /etc/ -printf ‘%T+ %p\n’|sort’. (Muista korjata lainausmerkit oikeiksi, automaattimuotoilu usein sotkee ne). Yritä nyt tehdä tila, joka asettaa nuo tiedostot (file.symlink) paikoilleen. (Katso tarvittaessa: Apache User Homepages Automatically)

d) Eri package-file-service. Tee package-file-service tilalla jokin eri asetus tai asennus kuin tunnilla ja tehtävän muissa kohdissa.


Suoritan tehtävät omalla pöytäkoneellani, sekä Linux Palvelimet kurssilla vuokraamallani virtuaalipalvelimella DigitalOceanista. Molemmissa järjestelmissä käyttöjärjestelmänä pyörii Xubuntu 18.04.01 LTS. Pöytäkoneeni Linux pyörii livetikulta.

Koneiden rauta nähtävissä Viikon 1 tehtävissä.

Tehtäviä varten poistin virtuaalipalvelimelta jo löytyvät asetukset ja asennukset salt-master, sekä apachen osalta. Myös tulimuurin sääntölistalta poistettu salt:in vaatimat portit.

Käytin seuraavia komentoja:

apt-get purge salt-master

sudo ufw delete allow 4506/tcp
sudo ufw delete allow 4505/tcp

sudo apt-get purge apache2

sudo rm -r public_html/

sudo rm /var/www/html/index.html


b) Asenna SSH eri porttiin Package-File-Service rakenteella. Käytä service:watch -tekniikkaa niin, että demoni käynnistyy uudelleen, kun asetustiedosto muuttuu. (Vinkki: Pkg-File-Service – Control Daemons with Salt)

Virtuaalipalvelimellani oli valmiina jo ssh demoni asennettuna, sekä tätä varten tehty tulimuuriin reikä porttiin 22/tcp.

Ensimmäiseksi vaihdoin ssh:n oletusportin porttiin 8888.

Selection_001.png

sudoedit /etc/ssh/sshd_config

sudo systemctl restart ssh

logout

Tämän jälkeen yritin kirjautua ssh yhteydellä uudestaan virtuaalipalvelimelle.

Selection_002.png

En päässytkään kirjautumaan sisään ensiksi oletusporttiin (22), enkä myöskään uuteen porttiin (8888). Tämähän johtui tietysti siitä että unohdin lisätä virtualipalvelimen tulimuuriin allow säännön porttiin 8888.

Jouduin menemään DigitalOceanin sivujen kautta ja avaamaan console yhteyden weppiselaimella palvelimelleni, jotta saisin taas ssh yhteydet pelittämään.

Selection_003.png

Tämän korjauksen jälkeen sain taas ssh yhteyden virtuaalipalvelimelleni porttiin 8888.

Selection_004.png

SALT-Master ja Orja

Latasin ensin virtuaalipalvelimelleni salt-masterin viimeviikon tehtävien ohjeiden mukaisesti.

Master

sudo apt-get -y install salt-master

sudo ufw allow 4505/tcp

sudo ufw allow 4506/tcp

Orja

sudo apt-get -y install salt-minion
sudoedit /etc/salt/minion

  • master: 104.248.162.226
  • id: poytakone

sudo systemctl restart salt-minion

Virtuaalipalvelimelle tuli pyyntö pöytäkoneeltani ja hyväksyin avaimen komennolla:

sudo salt-key -A

Testasin että master-slave yhteys toimi oikein viimeviikolla tekemälläni grains komennolla.

Selection_006.png

SALT SSH state

Tässä osiossa käytin http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port kyseisestä linkistä löytyvää ohjetta, sekä pohjaa sshd.sls tiedostolle.

sudo mkdir /srv/salt/ssh

sudoedit sshd.sls

openssh-server:
 pkg.installed

/etc/ssh/sshd_config:
 file.managed:
   - source: salt://ssh/sshd_config

sshd:
 service.running:
   - watch:
     - file: /etc/ssh/sshd_config

sudo cp /etc/ssh/sshd_config /srv/salt/ssh/

sudoedit sshd_config

# DO NOT EDIT  – this is a managed file, changes will be overwritten

Viimeisin rivi on tärkeä lisätä mikäli jokin tiedosto kopioituu orja koneelle, sillä kaikki orjan tekemät muutokset poistuvat kun master ajaa taas highstaten ja korvaa kaiken /srv/ssh kansiosta löytyvällä.

Seuraavaksi ajoin seuraavan komennon ja katsoin toimiiko uusi ssh state.

sudo salt ‘*’ state.apply sshd

Katsoin tämän pöytäkoneeltani johon state oli ajettu.

Selection_007.png

Lisäsin vielä  pöytäkoneen tulimuuriin säännön portille 8888.

sudo ufw allow 8888/tcp

Seuraavaksi yritin ottaa virtuaalipalvelimeltani ssh yhteyden pöytäkoneeni porttiin 8888. Tämä ei toiminut, mitään ei tapahtunut. Virtuaalipalvelin jää vain miettimään eikä anna mitään error viestiä tai muuta.

Koitin etsiä lokitiedostoista, mistä toimimattomuus voisi johtua, mutta tuloksetta. Lokitiedostoihin ei kerry mitään dataa epäonnistuneesta yrityksestä.

Selection_009

Seuraavaksi koitin kirjautua pöytäkoneellani ssh yhteydellä pöytäkoneeseeni. Tämä onnistui porttiin 8888 normaalisti.

Selection_010.png

Epäilin että sshd_config tiedostossa olisi jotain häikkää. Muutin PermitRootLogin No kohdan “Yes” ja ajaa taas state.apply ssh, mutta tuloksetta. Koitin myös lisätä “#” kyseisen rivin kohdalle ja ajaa state.apply ssh, eikä sekään toiminut. Tälle ongelmalle selvisi syyksi se että kotikoneeni on reitittimen takana, josta tuo portti 8888 ei ole avattu. En halua avata reitittimestäni mitään ylimääräistä, joten tila saa jäädä noin.


 

06-11-2018

Uusi päivä uudet haasteet. Pöytäkoneeni linux on puhdas livetikku boot. Päivitin paketinhallinnan, sekä latasin shutter ohjelman kuvakaappauksia varten. Asensin uudestaan ssh demonin etäyhteyttä varten, sekä asensin salt-minion palvelun uudestaan, johon laitoin virtuaalipalvelimeni masteriksi.

c) Asenna Apache käsin niin, että käyttäjien kotisivut näkyvät. Etsi muutetut tiedostot komennolla ‘find /etc/ -printf ‘%T+ %p\n’|sort’. (Muista korjata lainausmerkit oikeiksi, automaattimuotoilu usein sotkee ne). Yritä nyt tehdä tila, joka asettaa nuo tiedostot (file.symlink) paikoilleen. (Katso tarvittaessa: Apache User Homepages Automatically)

Latasin ensiksi Apachen virtuaalipalvelimelleni, sekä latioin kotisivut näkymään alla vaiheet:

sudo apt-get -y install apache2

echo Default VEX! | sudo tee /var/www/html/index.html

This slideshow requires JavaScript.

Apache toimi kuten piti, sekä vaihdoin default sivun pois. Seuraavaksi laitoin käyttäjän kotisivut näkymään:

mkdir public_html

cd public_html/

nano index.html

sudo a2enmod userdir

sudo systemctl restart apache2

Selection_004.png

Nyt käyttäjänkin kotisivut toimivat ja näkyivät oikein.

Seuraavaksi rupesin tekemään tilaa joka tekisin automaattisesti käyttäjän kotisivut näkyviin.

find /etc/ -prinfind /etc/ -printf ‘%T+ %p\n’|sorttf ‘%T+ %p\n’|sort

Selection_005.png

Kopioin pohjan sls tiedostoon suoraan TÄSTÄ linkistä.

Selection_006

Selection_008.png

Sitten ajoinkin jo seuraavan komennon ja tulokset olivat vastaavia :

sudo salt ‘*’ state.apply apache

This slideshow requires JavaScript.

Apache asentui oikein automaattisesti pöytäkoneele, sekä muokkasi apachen default pagen omaan tekstiini. Sivu vastasi localhostista ja ip:stä yllä olevan kuvan tavalla.

Sitten testasin vielä käyttäjällä omien kotisivujen luomista:

Selection_010

Kotisivut näkyvät käyttäjälle suoraan, eli salt tila on onnistuneesti luotu. YIHUU


d) Eri package-file-service. Tee package-file-service tilalla jokin eri asetus tai asennus kuin tunnilla ja tehtävän muissa kohdissa.

Lähdin tekemään tilaa joka asentaa php moduulin apacheen, ja tätä kautta sallii php:n ajon weppisivulle.

Ensimmäiseksi latasin virtuaalipalvelimelleni php moduulin.

sudo apt-get -y install php

Seuraavaksi enabloin php:n ajon sivuilla apachen asetuksista.

cd /etc/apache2/mods-available/

sudoedit php7.2.conf

“#” risuaidoitin IF moduulin conf tiedostosta.

Seuraavaksi käynnistin apachen uudelleen ja tein public_html kansiossa olevasta index.html tiedostosta php tiedoston.

sudo systemctl restart apache2

sudo rm index.html

nano index.php

miika@Ubuntu-LinuxPalvelimet:~/public_html$ cat index.php
<?php

print “hello world!”

?>

Selection_011.png

Php toimii oikein weppisivulla, joten seuraavaksi tein tästä tilan.

cd /srv/salt/

sudo mkdir php

cd php/

sudoedit init.sls

Selection_012.png

Seuraavaksi kopioin php7.2.conf tiedoston apachen mods-available kansiosta, lisäsin myös oikeudet muokata varmuuden vuoksi.

sudo cp /etc/apache/mods-available/php7.2.conf /srv/salt/php/php7.2.conf

sudo chmod ugo+x php7.2.conf

Ajoin tilan seuraavaksi orjalle

sudo salt ‘*’ state.apply php

Tila asentui oikein pöytäkoneelleni, joten tein pöytäkoneen public_html/index.html tiedostosta php tiedoston. Indexi täytyy tehdä itse, sillä tila ei tee automaattisesti uutta php indexi tiedostoa ainoastaan mahdollistaa php:n käytön.

Selection_013.png

Seuraavaksi koitin weppiselaimella toimiiko sivu, ja eihän se toiminut….

Tila ei käynnistä apachea uudestaan, eli uudet php asetukset eivät tule käyttöön.

Käynnistin apachen manuaalisesti uudestaan ja tulos on vastaava:

sudo systemctl restart apache2

Selection_014.png

It’s ALIVE ! Php tilan asetukset ovat onnistuneesti ajettu pöytäkoneelleni saltin avulla.

2 thoughts on “Palvelinten hallinta Viikko 2”

Leave a comment