Home » Linux – @Database, Webserver (Part 4)

Linux – @Database, Webserver (Part 4)

SSH ind til din jump og opret et script i bash, kan gøres ved at bruge følgende kommando:

$ touch init-db.sh

$ touch init-www.sh

######### DATABASE SCRIPT ###########

#!/bin/bash
# Opdatere serveren.
RED=”\033[1;31m”
GREEN=”\033[1;32m”
NOCOLOR=”\033[0m”

echo

echo -e “step 1: ${GREEN}update apt cache${NOCOLOR}”
sudo dnf update -y

echo

echo -e “step 2: ${GREEN}upgrade packages${NOCOLOR}”
sudo dnf upgrade -y

echo

# Sætte hostname på maskine (FQDN).

echo -e “step 1: ${GREEN}setting up new hostname${NOCOLOR}”
sudo hostnamectl set-hostname db.ton.local

echo

echo -e “step 2: ${GREEN}the new hostname${NOCOLOR}”
sudo hostname

echo

#Oprette brugeren pingu
echo -e “step 1: ${GREEN}adding a new user and setting a new password${NOCOLOR}”
sudo useradd pingu; echo ‘Pa$$w0rd’ | passwd –stdin pingu

echo

#Giv brugeren pingu sudo rettigheder
echo -e “step 3: ${GREEN}adding user to sudo group${NOCOLOR}”
sudo usermod -aG wheel pingu

echo

#Ændre SELinux til permissive (brug sed med følgende kommando).
dnf install nano -y
sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config

#Fjerne muligheden for root at logge ind via ssh (brug sed ).
sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin no/g’ /etc/ssh/sshd_config

#Tillade brugeren pingu at logge ind via ssh.
echo ‘AllowUsers pingu’ >> /etc/ssh/sshd_config

firewall-cmd –new-zone=secure –permanent

firewall-cmd –add-service=ssh –zone=secure –permanent

firewall-cmd –add-source=10.10.100.19 –zone=secure –permanent

firewall-cmd –remove-service=ssh –zone=internal –permanent

firewall-cmd –reload

#Genstart – som det sidste.
sudo reboot

########## DATABASE SCRIPT SLUT ##############

######### WWW SCRIPT ###########

#!/bin/bash
# Opdatere serveren.
RED=”\033[1;31m”
GREEN=”\033[1;32m”
NOCOLOR=”\033[0m”

echo

echo -e “step 1: ${GREEN}update apt cache${NOCOLOR}”
sudo dnf update -y

echo

echo -e “step 2: ${GREEN}upgrade packages${NOCOLOR}”
sudo dnf upgrade -y

echo

# Sætte hostname på maskine (FQDN).

echo -e “step 1: ${GREEN}setting up new hostname${NOCOLOR}”
sudo hostnamectl set-hostname www.ton.local

echo

echo -e “step 2: ${GREEN}the new hostname${NOCOLOR}”
sudo hostname

echo

#Oprette brugeren pingu
echo -e “step 1: ${GREEN}adding a new user and setting a new password${NOCOLOR}”
sudo useradd pingu; echo ‘Pa$$w0rd’ | passwd –stdin pingu

echo

#Giv brugeren pingu sudo rettigheder
echo -e “step 3: ${GREEN}adding user to sudo group${NOCOLOR}”
sudo usermod -aG wheel pingu

echo

#Ændre SELinux til permissive (brug sed med følgende kommando).
dnf install nano -y
sed -i ‘s/SELINUX=enforcing/SELINUX=permissive/g’ /etc/selinux/config

#Fjerne muligheden for root at logge ind via ssh (brug sed ).
sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin no/g’ /etc/ssh/sshd_config

#Tillade brugeren pingu at logge ind via ssh.
echo ‘AllowUsers pingu’ >> /etc/ssh/sshd_config

firewall-cmd –new-zone=secure –permanent

firewall-cmd –add-service=ssh –zone=secure –permanent

firewall-cmd –add-source=10.10.100.19 –zone=secure –permanent

firewall-cmd –remove-service=ssh –zone=internal –permanent

firewall-cmd –reload

#Genstart – som det sidste.
sudo reboot

########## DATABASE SCRIPT SLUT ##############

Nu eksekver scriptet fra din jump over til din  på 10.10.100.19
Skriv nedenstående:

# ssh root@10.10.100.19 ‘bash-s’ < init-db.sh

Nu eksekver scriptet fra din jump over til din storage på 10.10.100.50
Skriv nedenstående:

# ssh root@10.10.100.50 ‘bash-s’ < init-www.sh

######################################

Før vi går i gang med opsætning af database server.
Se gerne tilbage på din DNS opsætning for forward og reserve, det som vi lavede på VM ns1.
Dette er essentielt for at få denne guide til at fungere.

Hermed vil man opleve at firewall og rettigheder også vil melde fejl i denne vejledning, hvis det ikke opsat korrekt fra tidligere.
Derfor anbefales det måske at se tilbage på guide : , , og guide :
Husk at ved skrive kommandoerne selv, da symbolet ” – ” ofte kan give problemer ved kopiering af tekster fra nettet.

OBS: Der er også tidspunkterne i guiden, hvor jeg måske inkludere ekstra bogstaver eller glemmer et, det er naturligvis tastefejl.

Opsætning af Database server (@db)

mariadb installation, som skal håndtere vores forskellige databaser og tabeller:

#dnf install mariadb-server

Herefter installerer mysql

#mysql_secure_installation

Følger vejledningen og opret root password

Tildelt adgang til mysql i firewall i zone internal.

#firewall-cmd –add-service=mysql –zone=internal –permanent

#firewall-cmd –reload

#firewall-cmd –list-all –zone=internal

 

For at kunne indtaste i mysql, skrive følgende:

#mysql

Opret nu databaserne intra og blog:

mysql#create database intra;

mysql#create database blog;

Opret brugerne pingu og root med password og rettighedder til alt udefra:

mysql#grant all privileges on intra.* TO ‘root’@’%’ identified by ‘Pa$$w0rd’;

mysql#grant all privileges on blog.* TO ‘root’@’%’ identified by ‘Pa$$w0rd’;

mysql#grant all privileges on intra.* TO ‘pingu’@’%’ identified by ‘Pa$$w0rd’;

mysql#grant all privileges on blog.* TO ‘pingu’@’%’ identified by ‘Pa$$w0rd’;

mysql#flush privileges;

På www serveren installere mariadb-client og test om der er forbindelse, hvis ikke tjek firewall evt. –reload

#mysql -u root -h 10.10.100.22 -p

 

 

Her kan vi remote ind via mysql og åbne databaserne der er oprettet.

Opsætning på @WWW serveren:

Opsætning blev lavet via. script øverst i opgaven.

installere nu apache:

#dnf install httpd

Åben for firewallen til httpd i zonerne internal og secure

#firewall-cmd –add-service=http –zone=internal –permanent

#firewall-cmd –add-service=http –zone=secure –permanent

 

aktivere httpd som service og start den:

#systemctl enable httpd

#systemctl start httpd

Hent phpMyAdmin, fra deres hjemmeside:

#wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all- languages.tar.gz

#wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all- languages.tar.gz.sha256

laver en kontrol og validering af om filen er ok.

#sha256sum -c phpMyAdmin-5.2.1-all-languages.tar.gz.sha256

Herefter udpak filen:

#tar -xf phpMyAdmin-5.2.1-all-languages.tar.gz

Laver en greb og finder apache document root mappen:

#grep -i ‘DocumentRoot’ /etc/httpd/conf/httpd.conf

Flyt nu indholdet af mappen til apache root mappen. ” * ” betyder alt indhold efter /

#mv phpMyAdmin-5.2.1-all-languages/* /var/www/html/

Laver en kopi af config filen med nyt navn og sletter den gamle:

#cd /var/www/html

#cp config.sample.inc.php config.inc.php

#rm config.sample.inc.php

Retter i filen så den kender min database server:

#nano /var/www/html/config.inc.php

Linien:

$cfg[‘Servers’][$i][‘host’] =’localhost’;

ændre til database ip adresse.
Man kan også benytte sit hostname, som man vil gøre i et produktionsmiljø.

$cfg[‘Servers’][$i][‘host’] =’10.10.100.22′;

Installere php 7:

#dnf install php php-*

genstart servicen

#systemctl restart httpd

Opret mapperne til intra og blog

#mkdir /var/www/intra

#mkdir /var/www/blog

Opret en config fil til siderne, så serveren ved hvad den skal gøre ved request:

#touch /etc/httpd/conf.d/virtualhosts.conf

#nano /etc/httpd/conf.d/virtualhosts.conf

Og indsætter følgende:

Genstart httpd servicen:

#systemctl restart httpd

Hent wordpress fra wordpress hjemmeside til din www server:

#wget https://wordpress.org/wordpress-6.2.tar.gz

Udpak tar filen.

#tar -xf wordpress-6.2.tar.gz

kopiere wordpress over i intra og blog mapperne, som vi angav tidligere i conf filen:

#cp -R wordpress/* /var/www/blog/

#cp -R wordpress/* /var/www/intra/

Ændre rettighedderne, så vi har skrive rettighedder på filerne:

#chown -hR apache:apache /var/www/intra

#chown -hR apache:apache /var/www/blog

På gui maskinen tester vi om det hele virker.

www.ton.local

intra.ton.local

blog.ton.local

 

Note:

Setup af vores system:
Download Excel fil her -> IP Plan for Linux
10.10.100.0/24, 255.255.255.0
router.ton.local = 10.10.100.1
storage.ton.local = 10.10.100.2
jump.ton.local = 10.10.100.19

Fysisk Maskine : Fedora 37 KDE Plasma
VM 1 : Router = CentOS 9 Stream
VM 2 : Storage = CentOS 9 Stream
VM 3 : Jump = CentOS 9 Stream
VM 4 : Gui = Fedora 37 Workstation

Se Part 1 her : https://tobiasnawaphol.dk/linux-router-jump-part-1/
Se Part 2 her : https://tobiasnawaphol.dk/linux-storage-fileserver-part-2/
Se Part 3 her : https://tobiasnawaphol.dk/linux-dns-opsaetning-part-3/
Se Part 4 her : https://tobiasnawaphol.dk/linux-database-webserver-part-4/

Links og kilder:

https://getfedora.org/
https://www.centos.org/download/
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04
https://www.thegeekdiary.com/chcon-command-examples-in-linux/
https://ss64.com/bash/chmod.html

Hent dette indlæg i en PDF fil:

Download her -> LINUX – @DATABASE, WEBSERVER (PART 4)

Share:

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

This site uses Akismet to reduce spam. Learn how your comment data is processed.