maanantai 10. joulukuuta 2018

Oma Moduli

 Squid proxy:n asennus ja konffaus Saltilla + URL block sääntöjä


Päätin ottaa omaksi modulikseni Squidin proxyn ja siihen ACL:n lisäksi ufw palomuurisääntöjä.


Koneen osat, jolla moduli testattii ja asennettiin:
  • Prosessori: i5-7300HQ 2.50GHz
  • Ram: 8 GB 2400 Mhz
  • GPU: Nvidia 1060 6GB
  • Käyttis: Xubuntu 18.04.01 LTS
  • Tallennustila: 1TB hdd ja 256GB M.2 ssd

 Tein 2 erillistä virtualbox konetta, jotka nimesin host2 ja xubuntu1

Host2 koneelle asensin salt masterin ja kun taas orjalle xubuntu1 juoksutin bootti scriptin joka asentaa salt-minionin ja konfiguroi sen. (laitoin varmuuden vuoksi vielä gitin asennuksen mukaan)
scriptin ajoin komennolla: bash boottiscripti Täten xubuntu1 kone oli nimellä Orja.




 Tämän jälkeen hyväksyin orjan masterilla:




Seuraavaksi otin käsittelyyn salt modulin rakentamisen.
Tein Host2-koneella /srv/salt kansioon tiedoston squid.sls ja koodasin siihen seuraavasti:


squid3:
 pkg.installed

squidguard:
 pkg.installed

/srv/salt/asetus.sh:
  cmd.script:
       - name: asetus.sh
       - source: salt://asetus.sh
       - creates:
          - /etc/logit/done.log

koodi:
https://github.com/samuli-salonen/salt/blob/master/squid.sls

Ylemmässä modulissa siis asennetaan squid3-proxy ohjelmisto squidguard-ohjelmiso URL:n filtteröimiseen, sekä ajetaan toinen scripti (asetus.sh), joka säätää UFW:n ja squidin asetukset, joka on tässä:


Tässä shell scriptissä sallitaan muunmuassa 8888 porttit proxylle ja blokataan muutama portti malliksi. 9.s rivi asettaa squidille conffifiluun tarvittavat säädöt ja määritykset. 11.s rivi taas tekee uuden tiedoston ja laitta sinne esimerkki URL:n blokattavaksi.

Huom! ilman 14 rivin sleep 20s minioni ei antanut vastausta, sillä proxy-palvelimen uudelleen käynnistys kestää pienen aikaa!

koodi:
https://github.com/samuli-salonen/salt/blob/master/asetus.sh

Ps. Ei ollut mielekästä laittaa copypastena asetustiedostoa, sillä squidin conffi-filu sisältää paljon tekstiä squidin asetusten osalta.



Ajettuani modulin komennolla  sudo salt '*' state.highstate  Host2-koneella sain tulosteen:

Summary for Orja
----------------
Succeeded: 3 (changed=1)
Failed:        0
----------------
Total states run:               3
Total run time:        52.490 s

Huom! Jotta state.highstate toimisi pitää moduli mainita top.sls:ssä!

Kokeilin vielä proxyä käytännössä estämässä päätelaitetta yhdistämään sivustoon. Yhdistin Host2 :n xubuntu1:een, johon moduli oli squidin asentanut ja kokeilin test.com.


Ja sehän toimi!

lähteet:
(salt)
http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example

(squid conf)
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/networking_guide/sec-squid-configuration

























maanantai 3. joulukuuta 2018

h6 tehtävät

Asenna Lamp-saltilla

Ensimmäisenä juoksutin orjalla scriptin, joka asentaa salt minionin ja konfiguroi koneen.

 
#!/bin/bash
sudo apt-get update
sudo apt-get -y install salt-minion
echo -e 'master: 192.168.0.150\nid: Orja'|sudo tee /etc/salt/minion
sudo systemctl restart salt-minion
setxkbmap fi
sudo apt-get install -y git
sudo git config --global user.email "a1704537@myy.haaga-helia.fi"
sudo git config --global user.name "Sam"
sudo git clone https://github.com/samuli-salonen/tesmi.git
sudo systemctl restart git
echo "done"

Sitten aloin tekemään /srv/salt/ kansioon tiedostoa nimeltä lamp.sls, johon laitoin:




apache2:
pkg.installed
php:
pkg.installed
mariadb:
pkg.installed:
- pkgs:
- mariadb-server
- mariadb-client
/var/www/html/index.html:
file.managed:
- source: salt://index.html
/etc/apache2/mods-enabled/userdir.conf:
file.symlink:
- target: ../mods-available/userdir.conf
/etc/apache2/mods-enabled/userdir.load:
file.symlink:
- target: ../mods-available/userdir.load
apache2service:
service.running:
- name: apache2
- watch:
- file: /etc/apache2/mods-enabled/userdir.conf
- file: /etc/apache2/mods-enabled/userdir.load
lampsh:
cmd.script:
- name: lampsh.sh
- source: salt://lampsh.sh
- creates:
- /etc/salt/tehty.log

lähde: https://github.com/a1704565/salt/blob/master/raportti-h6.md
koodi: https://github.com/samuli-salonen/salt/blob/master/lamp.sls



















Tämän jälkeen tein shell scriptin, joka tekee databasen ja antaa sille oikeudet mariadb:ssä


#!/bin/bash
echo "CREATE DATABASE testi10;" | sudo mariadb -u root
echo "GRANT ALL ON testi.* TO lamporja@localhost IDENTIFIED BY '1234';"$
echo "Test database on tehty" | sudo tee /etc/salt/tehty.log

Mainitsin lamp.sls top.sls:ssä, Josta sain tulokseksi ajamalla komennon sudo salt '*' state.highstate.
(Ps. olin jo ajanut koodin testauksen aikana)

orja:
----------
ID: apache2
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 17:35:44.196544
Duration: 624.695 ms
Changes:
----------
ID: php
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 17:35:44.821361
Duration: 2.779 ms
Changes:
----------
ID: mariadb
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 17:35:44.824213
Duration: 3.74 ms
Changes:
----------
ID: /var/www/html/index.html
Function: file.managed
Result: True
Comment: File /var/www/html/index.html is in the correct state
Started: 17:35:44.832391
Duration: 18.069 ms
Changes:
----------
ID: /etc/apache2/mods-enabled/userdir.conf
Function: file.symlink
Result: True
Comment: Symlink /etc/apache2/mods-enabled/userdir.conf is present and owned by root:root
Started: 17:35:44.850561
Duration: 1.162 ms
Changes:
----------
ID: /etc/apache2/mods-enabled/userdir.load
Function: file.symlink
Result: True
Comment: Symlink /etc/apache2/mods-enabled/userdir.load is present and owned by root:root
Started: 17:35:44.851857
Duration: 1.03 ms
Changes:
----------
ID: apache2service
Function: service.running
Name: apache2
Result: True
Comment: The service apache2 is already running
Started: 17:35:44.853956
Duration: 33.428 ms
Changes:
----------
ID: lampsh
Function: cmd.script
Name: lampsh.sh
Result: True
Comment: All files in creates exist
Started: 17:35:44.889189
Duration: 0.686 ms
Changes:
Summary for orja
------------
Succeeded: 8
Failed: 0
------------
Total states run: 8
Total run time: 685.589 ms


Sitten katsotaan tuliko database Orjalle:



Ja tulihan se!



lähde: https://github.com/a1704565/salt/blob/master/raportti-h6.md

lähde:  http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port

sunnuntai 25. marraskuuta 2018

h5 tehtävät

a) windows salt-orjana

 Ensiksi asensin windows 10 pöytäkoneelle ja asensin myös salt-minionin (https://repo.saltstack.com/windows/Salt-Minion-2018.3.0-Py3-AMD64-Setup.exe) Laitoin Masterin ip:n 192.168.1.148.



Sitten hyväksyin salt minionin orjaksi linuxilla, joka on läppärilläni Bridged-tilassa. (sudo salt-key '*' -A)

Testasin orjan sudo salt '*' test.ping -komennolla.

Asensin myös firefoxin:




b) Salt local windows

 Käynnistin windows powershell administartorina ja tien seuraavat komennot:

cd /salt/
ls
./salt-call --local test.ping
salt-call --local pkg.install vlc

Näyttäisi toimivan !!

lähde: http://terokarvinen.com/2018/control-windows-with-salt

c) Windows salt - ohjelman säätö

 Yritin saada toimimaan hello.txt tiedoston windowssilla, mutta en saanut toimimaan.

tein tiedoston h5.sls ja sinne laitoin seuraavasti:
tässä vielä hello.txt
tässä yritys saada toimimaan.


Lähde: http://terokarvinen.com/2018/configure-windows-and-linux-with-salt-jinja-if-else-and-grains

d)  Kurssityön valinta

Valitsen kurssityön aiheeksi:
Squid proxy ja asetukset + palomuurisääntö ja ACL lista

Squid proxy website: http://www.squid-cache.org/
 

Lähde:  http://terokarvinen.com/2018/control-windows-with-salt


maanantai 19. marraskuuta 2018

h4 tehtävät

a) Salt-orja script
 Ensimmäiseksi tein scriptin, joka tekee koneesta salt-orjan, joka laittaa myös koneen näppäimistön suomeksi:

#!/bin/bash salt orja scripti
sudo apt-get update
sleep 5s
sudo apt-get -y install salt-minion
sleep 5s
echo -e 'master: 192.168.1.\nid: Orja'|sudo tee /etc/salt/minion
sudo systemctl restart salt-minion
sleep 5s
setxkbmap fi

(huom! "sleep 5s" -komento on hyvä, sillä muuten kone ei kerkeä prosessoida komentoja niin nopeassa tahdissa.)

Nimesin scriptin run.sh;ksi ja kokeilin scriptiä. Sehän toimi kuten oli toivottu. (olin kokeillut scriptiä jo aikaisemmin)



Ja Salt-masterilla hyväksytään orja:

lähde: http://terokarvinen.com/2018/automatically-provision-vagrant-virtualmachines-as-salt-slaves








c) Vagrant
Tehtävässä pyydettiin asentamaan vagrant ja kokeilemaan toista käyttiskuvaa, joten päätin kokeilla: https://app.vagrantup.com/ubuntu/boxes/trusty64 

 Ensimmäiseksi piti asentaa Vagrant ja virtualbox.

sudo apt-get install Vagrant
sudo apt-get install Virtualbox

Tämän jälkeen tein uuden directoryn selkiyttääkseni mihin laitan tiedoston.

mkdir distro

ja tein distro directoryssä komennot:

vagrant init ubuntu/trusty64
vagrant up

ja toimii! (Mahdollisesti vaarallista asentaa muiden tekemiä distrojamuunnoksia!!)

Sitten tein komennon, joka yhdistää virtuaalimasiinaan.
vagrant ssh


Tämän jälkeen tein testikomentoja vagrantkoneella:

whoami
printf "hello!"



d) USB-tikku


 Tehtävänä oli tehdä usb-tikusta bootattava Windows tikku, käytin itse Windows 10 iso:a ja poltin sen tikulle käyttäen Rufusta.

https://rufus.ie/en_IE.html

maanantai 12. marraskuuta 2018

h3

a) kohdan lukutehtävää ei tarvinnut raportoida.


b) Ohjeet, joidenmukaan tein: http://terokarvinen.com/2016/publish-your-project-with-github

Ensiksi asensin gitin
sitten laitoin asetukset ohjeiden mukaan:

tämän jälkeen tein gitissä repon, jonka nimeksi tein "git-salt" kuvasta poiketen.
sitten cloonasin repositoryn etc hakemistoon.


Tämän jälkeen tein report.md raportin ja tein komennot erikseen, sillä ilmeisesti oikeudet ovat vain sudolla.


ja git push toimi!
















c)
tässä tein "salt" repon githubiin.


sitten tein kansion /etc/:n ja kopioin /srv/salt kansion tiedostot tänne
tässä vielä todistus toimivuudesta.



ja lopuksi sudo git commit ja sudo git push heitti kaikki tiedostot salt repoon.

d)

git log näyttää kuka on lisännyt ja minkä commitin, eli version ja tiedon mitä päivitti.



git diff näyttää mikä on muuttunut jaetussa repossa, minulla ei eo ole muuttunut mitää, sillä en ole muuttanut mitään tiedostoa.



git blame näyttää tiedostokohtaisesti milloin se on luotu siihen kansioon jaetussa repossa.




e)
   Päätin poistaa ping.sh tiedoston

sitten tein sudo git reset --hard ja sehän toimi!




f)

Tein openvpn modulin ja merkkasin sen top.sls baseen:




ja asennus onnistui:
























maanantai 5. marraskuuta 2018

h2 tehtävät (Torstain ryhmä)

a) Oli lukutehtävä, jota ei tarvinnut raportoida.

b)Asensin ohjeiden (http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port) mukaan seuraavasti:

sshd.sls ja sinne kirjoitin:


Sitten tein sshd_config.


sudo salt '*' state.apply sshd
Onnistui!
Sekä
nc -vz [ip] 8888 Onnistui




c)

Eka asensin apachen minion koneella.

sitten otin a2enmodin käyttöön

ja toimii!



Sitten tein ohjeiden (http://terokarvinen.com/2018/apache-user-homepages-automatically-salt-package-file-service-example) mukaan:



Juoksutin modulin, mutta olin unohtanu tehdä sivun ja tein sen /srv/salt/apache/default-index.html



ja kokeilin uudestaan. Toimi!











d) Asensin squid 3 proxy palvelin-ohjelmiston:
(jätin kaksi alinta riviä pois)



Ja toimi! sudo salt '*' state.apply squid - komennolla.














tiistai 30. lokakuuta 2018

h1 tehtävät

a), b) Olivat lukutehtäviä, joita ei tarvinut raportoida.

c)
 Tässä asennusvaihe:

Tässä taas todistus, että ottaa yhteyttä masteriin:
 
Piti hyväksyä sudo salt-key -A, että ottaa parin slavesta.


 Minion.conf:iin (slavella) laitoin:
id: xubuntu1
master:(mestarikoneen IP)

ja tässä sys.doc komento suoritettu minionilla.


d)

 tein mkdir /srv/salt
--> top.sls
base:
  '*':
    - hei2


-->hei2.sls
( /tmp/helloSam.txt
  file.managed:
    - source: salt://helloSam.txt ) 

-->helloSam.txt
(morjens!)

ohjeeni eli lähteeni: http://terokarvinen.com/2018/salt-states-i-want-my-computers-like-this


e)

komennolla: sudo salt '*' grains.items saadaan esim seuraavia tietoja orjasta.
 komennolla: sudo salt '*' grains.items |less
saadaan vähemmän "turhia" tietoja:


f)

Tein helpon ping 0.0.0.0 käskyn ping.sh nimellä.
sitten tein Ftehtava.sls
koodasin ylhäällä olevan mukaisesti.


ja sain toimimaan.