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