Palvelinten hallinta h2

Tein torstain ryhmän tehtävät.

Tavoitteena oli asentaa SSH eri porttiin, Apache ja jokin muu package-file-service. Tehtävät tehtiin jälleen omalla Windows pöytäkoneella josta otettiin etäyhteys salt masteriin, joka pyörii virtuaalipalvelimella. Salt minionina toimi Acer Aspire kannettava kuten edellisessä tehtävässä (tarkemmat tiedot tästä). Kannettavalla pyörii Xubuntu usb-tikulta ja siihen tehtiin perus asetukset heti kuntoon, jotta yhteys saatiin ssh:lla (palomuuri, ssh-server, wlan, salt-minion). SSH-yhteydet hoidetaan Putty:lla.

SSH:n asennus eri porttiin package-file-service rakenteella

Käytin tehtävässä Tero Karvisen tekemään ohjetta, joka löytyy osoitteesta http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port.

Aloitin tehtävän tekemällä uuden kansion salt hakemiston sisään, jotta salt root pysyy siistinä.

$ sudo mkdir /srv/salt/ssh

Kyseiseen hakemistoon tein sshd_config tiedoston ja sinne seuraavan sisällön (Karvinen: Pkg-File-Service, http://terokarvinen.com/2018/pkg-file-service-control-daemons-with-salt-change-ssh-server-port, verkkosivu)

# DON'T EDIT - managed file, changes will be overwritten
Port 8888
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes

Ainoa muutos normaaliin sshd_config tiedostoon on muutettu porttinumeroksi ’8888’ ja kommentit poistettu.

Seuraavaksi annoin komennon, jotta minion saa nykyisen tilan.

$ sudo salt '*' state.apply sshd

Tila näytti päivittyneen onnistuneesti, joten kokeilin uutta ssh-yhteyttä minioniin. Yhteyttä ei kuitenkaan saatu ja samalla muistin, että palomuuriin on sallittava tuo 8888 portti kannettavalla.

$ sudo ufw allow 8888/tcp

Nyt kokeilin uudelleen ja sain yhteyden toimimaan putty:lla.

Apache ja käyttäjän kotisivut

Seuraavaksi lähdin asentamaan Apachea. Asensin ensin kannettavalle Apachen käsin, jotta nään mitä tiedostoja minun tarvitsee muokata, jotta käyttäjän kotisivut saadaan toimimaan.

$ sudo apt-get -y install apache2

Tein kaikki apachen vaatimat perusasetukset toimimaan, jotta voin jatkaa (mkdir public_html, a2enmod userdir, ufw allow 80/tcp).

Seuraavaksi tein Apachelle hakemiston salttiin.

$ sudo mkdir /srv/salt/apache

Hakemistoon loin init.sls tiedoston, johon sisällöksi:

apache2:
 pkg.installed

/var/www/html/index.html:
 file.managed:
   - source: salt://apache/default-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

default-index.html:n luonti:

$ sudoedit default-index.html
Apache is working like a charm!

Ja kokeilu toimiiko:

$ sudo salt '*' state.apply apache

Komento tuotti halutun lopputuloksen ja kannettavan ip-osoite vastaa edellä luodun mukaan.

apache.jpg

Kokeilin vielä käynnistää kannettavan uudelleen ja tein alkutoimet uudestaan, jotta näen apachen varmasti toimivan. Sain saman tuloksen, eli nyt salt-master asentaa apachen ja käyttäjän kotisivut valmiiksi!

Palomuurin asetukset saltin kautta

Halusin saada asetukset automatisoitua uusille koneille. Palomuuri pitää kytkeä päälle ja siinä pitää liikenteen kulkea tcp-porteissa 22&80. Käytin tähän pohjana esimerkkiä https://www.richterich.me/index.php/salt-states/ufw/.

Ensiksi loin hakemiston /srv/salt/ufw ja sinne muutaman tiedosto palomuuria varten. Näihin tiedostoihin otin asetukset suoraan ufw:n omista tiedostoista joihin oli jo avattu portit 22&80.

ufw.conf

# /etc/ufw/ufw.conf
#

# Set to yes to start on boot. If setting this remotely, be sure to add a rule
# to allow your remote connection before starting ufw. Eg: 'ufw allow 22/tcp'
ENABLED=yes

# Please use the 'ufw' command to set the loglevel. Eg: 'ufw logging medium'.
# See 'man ufw' for details.
LOGLEVEL=low

IPV4 asetukset

user.rules

*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-logging-deny - [0:0]
:ufw-logging-allow - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###

### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 22 -j ACCEPT

### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -p tcp --dport 80 -j ACCEPT

### END RULES ###

### LOGGING ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###

### RATE LIMITING ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT
-A ufw-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT

IPV6 asetukset

user6.rules

*filter
:ufw6-user-input - [0:0]
:ufw6-user-output - [0:0]
:ufw6-user-forward - [0:0]
:ufw6-before-logging-input - [0:0]
:ufw6-before-logging-output - [0:0]
:ufw6-before-logging-forward - [0:0]
:ufw6-user-logging-input - [0:0]
:ufw6-user-logging-output - [0:0]
:ufw6-user-logging-forward - [0:0]
:ufw6-after-logging-input - [0:0]
:ufw6-after-logging-output - [0:0]
:ufw6-after-logging-forward - [0:0]
:ufw6-logging-deny - [0:0]
:ufw6-logging-allow - [0:0]
:ufw6-user-limit - [0:0]
:ufw6-user-limit-accept - [0:0]
### RULES ###

### tuple ### allow tcp 22 ::/0 any ::/0 in
-A ufw6-user-input -p tcp --dport 22 -j ACCEPT

### tuple ### allow tcp 80 ::/0 any ::/0 in
-A ufw6-user-input -p tcp --dport 80 -j ACCEPT

### END RULES ###

### LOGGING ###
-A ufw6-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw6-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw6-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw6-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw6-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###

### RATE LIMITING ###
-A ufw6-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw6-user-limit -j REJECT
-A ufw6-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT

Ja viimeiseksi ufw.sls salt:in juureen.

ufw:
 pkg.installed:
   - pkgs:
     - ufw

/etc/ufw/ufw.conf:
 file.managed:
   - source: salt://ufw/ufw.conf
   - target: ../ufw.conf

/etc/ufw/user.rules:
 file.managed:
   - source: salt://ufw/user.rules
   - target: ../user.rules

/etc/ufw/user6.rules:
 file.managed:
   - source: salt://ufw/user6.rules
   - target: ../user6.rules

ufwservice:
 service.running:
   - name: ufw
   - watch:
     - file: /etc/ufw/ufw.conf
     - file: /etc/ufw/user.rules
     - file: /etc/ufw/user6.rules

Nyt kokeilin toimiiko komento.

$ sudo salt '*' state.apply ufw

Ja lopputulos.

xubuntu@xubuntu:/etc/ufw$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)

Hienosti toimi. Lisäsin tämän vielä top.sls tiedostoon, jotta asetukset menevät automaattisesti voimaan.

base:
  '*':
    - ufw
    - sshd

 

 

Mainokset

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