Palvelinten hallinta ict4tn022-3002 Viikko 2

Alla kurssisivulla (http://terokarvinen.com/2018/aikataulu-%e2%80%93-palvelinten-hallinta-ict4tn022-3004-ti-ja-3002-to-%e2%80%93-loppukevat-2018-5p) annetut harjoitus tehtävät torstain ryhmälle:

h2 torstain ryhmä

Merkitse tehtävän alkuun, kumman ryhmän (tiistai vai torstai) h2-tehtävän olet tehnyt.

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.

Tehtävien suorittamiseksi palautin taas DigitalOcean serverini alkutilaan  samoin kuten aiemmassa Linux palvelimet kurssin tehtävässä: Linux palvelimet ICT4TN021-3003 H4. Suunnitelmieni mukaan teen tehtäviä kahtena päivänä ja käytän tehtävissä kannetavaani DigitalOcean serverini ohjailuun, sekä pöytäkonetta linux-livetikulla serverin orjana. Kuvissa alapuolella koneet ”sudo lshw -short -sanitize” komennolla:

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)

Klo 13:05
Aloitin asentamalla openssh-server ohjelman, vaikka tiesinkin ohjelman olevan jo Digital Ocean server koneella. Seuraavaksi menin muokkaamaan sshhd_config tiedostoa, josta jo aiemmin serveri nollauksen jälkeen muokkasinkin PermitRootLogin kohdan, jotta serveri koneen rootiin ei voisi kirjautua ssh:lla. Tällä kertaa poistan kommentti risuaidan Port kohdasta ja laitan portiksi 8635(Kuva muutoksista alla). Lopuksi käynnistän ssh:n uudelleen, jotta asetus tulee voimaan. Lisään tulimuuriin poikkeuksen portille 8635 ja poistan aukon portilta 22. Testaan toimivuuden kirjautumalla ulos ja sisään.

Komennot:
$ sudo apt-get install openssh-server
$ sudoedit /etc/ssh/sshd_config
$ sudo service ssh restart
$ sudo ufw allow 8635/tcp
$ sudo ufw delete 1
$ logout
$ ssh -p 8635 jarno@(adress.ip)

Terminal - jarno@harjoitus: ~_081.png

SALT asennus ja testaus.

Asensin Digital Ocean koneelle salt-master ohjelman ja loin /srv/salt kansiot. Asensin pöytäkoneelle salt-minion ohjelman ja asetin isännäksi Digital Ocean koneen(Kuva /etc/salt/minion tiedostosta alla). Avasin tulimuuriin saltin portit 4505 ja 4506. Hyväksyin pöytäkoneen avaimen ja testasin yhteyttä antamalla minion koneelle masterilta komennon.

Komennot:
$ sudo apt-get install salt-master
$ sudo mkdir -p /srv/salt/
$ echo ” ”|sudo tee /etc/salt/minion
$ sudoedit /etc/salt/minion
$ sudo systemctl restart salt-minion.service
$ sudo ufw allow 4505/tcp
$ sudo ufw allow 4506/tcp
$ sudo salt-key -A
$ sudo salt ’*’ cmd.run ’hostname -I’

Kuvat tiedostosta ja onnistuneesta etäkomennosta:

 SALT state luonti ja testaus

Klo 13:57
Ensin tein ssh/ kansion ja ssh.sls tiedoston /srv/salt/-kansioon. Tiedostoon ssh.sls laitoin alla olevan kuvan mukaiset tekstit, joiden lähde on tuo tehtävänannon linkki. Kopioin /srv/salt/ssh kansioon sshd_config tiedoston masterin koneesta, jossa asetuksia testasin. Lisäsin vielä tuohon sshd_config tiedostoon kommentin, että on etähallittu(kuva alla). Seuraavaksi kokeilin asetusten toimintaa laittamalla tämän tilan minion koneeseen(onnistui, kuva alla). Ja ottamalla ssh yhteyden omalta kannettavalta pöytäkoneeseen, mikä näytti onnistuvan muuten, mutta en ollut asettanut salasanaa pöytäkoneen xubuntu käyttäjälle(kuva alla). Tästä jatketaan seuraavalla kerralla.

Komennot:
$ sudo mkdir /srv/salt/ssh
$ sudoedit /srv/salt/ssh.sls
$ sudo cp /etc/ssh/sshd_config /srv/salt/ssh
$ sudoedit /srv/salt/ssh/sshd_config
$ sudo salt ’*’ state.apply ssh

Komento kannettavassa:
$ ssh -p 8635 xubuntu@192.168.10.43

Uusi päivä ja testauksen viimeistely

Klo 7:20
Käynnistelin pöytäkoneen uudestaan, asensin salt-minionin ja laitoin minion tiedoston samanlaiseksi, kuin eilen. Lisäksi vaihdoin nyt salasanan xubuntu käyttäjälle.
Klo 8:35
Kokeilin toimiiko suoraan antamalla käskyn masterilta minionille, vaikkakin epäilin, ettei toimi ja eihän se toiminut. Tarkistin avainten tilanteen ja huomasin, että taisi olla virhe antaa sama id, sillä id oli nyt sekä accepted, että denied (kuva alla). Ensimmäiseksi poistin avaimet tältä id:ltä ja tarkistin sen jälkeen avainten tilanteen(kuva alla). Sain kaikki id:n avaimet poistettua, joten menin pöytäkoneelle käynnistämään salt-minionin uudelleen. Uudelleen käynnistyksen jälkeen tarkistin avainten tilanteen uudelleen ja hyväksyin nyt tulleen uuden avainpyynnön. Testasin yheyttä taas antamalla masterilta minionille komennon ja sain komentoon vastauksen, kuten pitikin. Ajoin eilen tehdyn ssh tilan uudestaan minion koneelle ja kokeilin ssh yhteydenottoa samassa verkossa olevalta kannettavalta. Eilen luotu ssh avain tuotti tässäkin yhteydenotossa ongelmia ja sain varoituksen mahdollisesta Man-in-the-middle hyökkäyksestä tiesin aiheuttaneeni ongelman itse joten poistin avaimen varoituksessa tulleen ohjeen mukaisesti. Muodostin ssh yhteyttä uudelleen ja tällä kertaa kaikki toimi hienosti(Kuva kaikista toimista ja varoituksesta alla).

Komennot:
$ sudo salt ’*’ cmd.run ’hostname -I’
$ sudo salt-key (*2)
$ sudo salt-key -A
$ sudo salt ’*’ cmd.run ’hostname -I’
$ sudo salt ’*’ state.apply ssh

Komennot kannettavalla
$ ssh -p 8635 xubuntu@192.168.10.43
$ ssh-keygen -f ”/home/jarno/.ssh/known_hosts” -R ”[192.168.10.43]:8635”
$ ssh -p 8635 xubuntu@192.168.10.43

Kuvat avaintarkastuksista ja kannettavalla tehdyistä toimista:

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)

Klo 9:15
Aloitin tekemällä Apachelle reiän Digital Ocean koneen palomuuriin ja katsomalla mitä kannettavan selain vastaa Digital Ocean koneen osoitteesta(Selaimen kuva alla). Jatkoin asentamalla Apache2:n Digital Ocean koneelle ja korvaamalla oletussivun toiseksi. Tämän jälkeen tarkistin selaimella uudestaan mitä näyttää(Kuva selaimesta alla). Käyttäjän kotisivut laitoin käyttöön enabloimalla Apachessa valmiina olevan modin. Lisäksi loin käyttäjälle publi_html-kansion ja sinne index.html tiedoston ja käynnistin apachen uudelleen. Näiden jälkeen tarkistin kannetavan selaimessa miltä käyttäjäkotisivu näyttää(Kuva alla).

Komennot:
$ sudo ufw allow 80/tcp
$ sudo apt-get install apache2
$ echo ”harjoitus.me etusivu”|sudo tee /var/www/html/index.html
$ mkdir public_html
$ echo ”Ennen harjoitusta kuppi kahvia”|cat > public_html/index.html
$ sudo systemctl restart apache2

Kuvat selaimesta eri vaiheissa:

Apache tilan luonti SALT:iin

Klo: 09:42
Ensimmäiseksi kokeilen tehtävänannossa annettua komentoa ja sain ilmeisesti kaikki koneen etc kansiossa tapahtuneet muutokset aikajärjestyksessä(Kuva osasta alla). Käyttäjäkotisivujen näkymiseen merkittävimmät muutokset ovat kaksi alimmaista riviä. Lähden tekemään salt tilaa luomalla ensin kansion apache ja tiedoston apache.sls polkuun /srv/salt/. Tiedostoon apache.sls kopioin sisällön lähes suoraan tehtävänannossa annetusta linkistä(Tiedostosta kuva alla). Kopioin vielä index.html tiedoston koneen oletuskansiosta /srv/salt/apache kansioon.

Komennot:
$ find /etc/ -printf ”%T+ %p\n”|sort
$ cd /srv/salt/
$ sudo mkdir apache
$ sudoedit apache.sls
$ sudo cp /var/www/html/index.html /srv/salt/apache/

Kuvat komennon tuloksesta ja apache.sls tiedostosta:

Salt Apache tilan testaus

Klo 10:10
Ensin kokeilin kannettavan selaimella mitä pöytäkoneen ip-osoite vastaa(Kuva alla). Seuraavaksi ajoin apache tilan minion koneeseen, mikä antoi onnistuneen tuloksen(Kuva alla). Testasin selaimella miten ip-osoite tällä kertaa vastaa(Kuva alla). Otin kannettavalla ssh yhteyden pöytäkoneeseen ja loin sinne public_html kansion, johon index.html tiedoston. Näiden toimien jälkeen tarkistin kannetavan selaimella vastaako pöytäkoneen käyttäjäsivu ja sehän vastasi(Kuva alla). Väitän testiä onnistuneeksi, sillä asensin olohuoneen pöytäkoneeseen Apachen jossa näkyy käyttäjäsivut nousematta penkistä keittiössä.

Komennot:
$ sudo salt ’*’ state.apply apache

Komennot kannettavalla:
$ ssh -p 8635 xubuntu@192.168.10.43
$ mkdir public_html
$ echo ”Olen koneesi olohuoneessa”|cat > public_html/index.html

Kuvat selaimen eri vaiheista ja tila asennuksen yhteenvedosta:

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

Klo 10:30
Näiden tilojen kaveriksi, sopii mielestäni oikein hyvin jo viime viikon tehtävässä tekemäni tulimuuri tila Palvelinten hallinta ict4tn022-3002 Viikko 1. Teen suurinpiirtein saman tilan uudestaan, mutta yritän käyttää watch tekniikkaa ja määrittää vain minion koneella tarvittavat portit auki. Teen /srv/salt/ polkuun kansion firewall ja tiedoston firewall.sls. Tiedostoon firewall.sls yhdistin tällä kerralla opittuja ja viime viikon tietoja(Kuva tiedostosta alla). Kopioin nykyiset user.rules ja user6.rules tiedostot oletuskansiosta /srv/salt/firewall-kansioon. Editoin noista kopioidusta user.rules ja user6.rules-tiedostostoista portteja 4505 ja 4506 koskevat rivit pois(Kuva user.rules-tiedostosta ennen ja jälkeen alla).

Komennot:
$ sudo mkdir firewall
$ sudoedit firewall.sls
$ sudo cp /etc/ufw/user.rules /srv/salt/firewall
$ sudo cp /etc/ufw/user6.rules /srv/salt/firewall

Kuvat:

Tulimuuri tilan testaus

Klo 11:05
Kirjauduin kannettavalta pöytäkoneelle ssh yhteydellä ja tarkistin tulimuurin tämän hetkisen statuksen(Kuva alla). Ajoin master koneelta firewall tilan minion koneille ja sain virheitä(Kuva alla). Katsoin lokia(kuva alla) ja muistin, että viime viikollakin tiedostoille piti vielä lisätä lukuoikeus muille käyttäjille. Lisäsin oikeudet ja kokeilin uudestaan ajaa tilan minion koneisiin. Tällä kertaa kaikki onnistui(Kuva alla), joten katsoin pöytäkoneelta ufw statuksen(Kuva alla). Tulimuuri meni päälle oikeilla asetuksilla ja tila näyttäisi siis toimivan.

Komennot:
$ ssh -p 8635 xubuntu@192.168.10.43
$ sudo ufw status
$ tail /var/log/salt/master
$ sudo chmod o+r firewall/user6.rules
$ sudo chmod o+r firewall/user.rules
$ sudo salt ’*’ state.apply firewall
$ sudo ufw status

Kuvat testauksen vaiheista:

 

Mainokset

3 Comments

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out /  Muuta )

Google photo

Olet kommentoimassa Google -tilin nimissä. Log Out /  Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out /  Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out /  Muuta )

Muodostetaan yhteyttä palveluun %s