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.
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)