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)

Linux – @DNS Opsætning (Part 3)

#!/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

echo -e “step 3: ${GREEN}clean up${NOCOLOR}”
sudo dnf autoremove -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

#Tilføjer til Sudo group
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 –change-interface=enp1s0 –zone=internal –permanent

firewall-cmd –reload

#Genstart – som det sidste.
sudo reboot

 

 

 

 

 

 

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

Hvad er ACL?

IPv4 ACLs (Access Control Lists) er en mekanisme i IP-protokollen, der giver netværksadministratorer mulighed for at definere, hvilke IP-pakker der kan passere igennem en given router eller firewall.

IPv4 ACLs anvendes til at kontrollere trafikken på netværksniveau ved at filtrere indkommende eller udgående IP-pakker baseret på en række regler. Disse regler kan defineres på forskellige måder, herunder IP-adresser, protokoller, portnumre og andre faktorer, der kan identificere og klassificere netværkstrafikken.

ACL-reglerne er normalt konfigureret på en router eller firewall og fungerer ved at sammenligne de forskellige attributter i en indkommende IP-pakke med regelsættet. Hvis pakken opfylder reglerne, tillades den at passere gennem routeren eller firewallen, ellers blokeres den.

IPv4 ACLs kan bruges til at forbedre netværkssikkerheden ved at give netværksadministratorer mulighed for at definere tilladelige trafiktyper og blokere uønsket trafik. De kan også hjælpe med at forbedre netværksydelsen ved at begrænse uønsket trafik og prioritere vigtig trafik.

 

En god øvelse vil være og tage testen, som :
Packet Tracer Opgave 5.4.13 Configure Extended IPv4 ACLs Scenario 2

 

Router RT1

enable
configure terminal
ip access-list extended ACL
 deny tcp host 172.31.1.101 host 64.101.255.254 eq www
 deny tcp host 172.31.1.101 host 64.101.255.254 eq 443
 deny tcp host 172.31.1.101 host 64.103.255.254 eq www
 deny tcp host 172.31.1.101 host 64.103.255.254 eq 443
 deny tcp host 172.31.1.102 host 64.101.255.254 eq ftp
 deny tcp host 172.31.1.102 host 64.103.255.254 eq ftp
 deny icmp host 172.31.1.103 host 64.101.255.254
 deny icmp host 172.31.1.103 host 64.103.255.254
 permit ip any any
interface GigabitEthernet0/0
 ip access-group ACL in
end

Forklaring

Router RT1

enable (for at enable router)
configure terminal (Tilgå config)
ip access-list extended ACL 
-- ip access hvor vi opretter det med navnet ACL

 deny tcp host 172.31.1.101 host 64.101.255.254 eq 80 
-- afviser tcp på pc1 172.31.1.101 på bruge http/www på server 1


 deny tcp host 172.31.1.101 host 64.101.255.254 eq 443 
-- afviser tcp på pc1 172.31.1.101 på bruge https på server 1


 deny tcp host 172.31.1.101 host 64.103.255.254 eq 80 
-- afviser tcp på pc1 172.31.1.101 på bruge http/www på server 2


 deny tcp host 172.31.1.101 host 64.103.255.254 eq 443 
-- afviser tcp på pc1 172.31.1.101 på bruge https på server 2


 deny tcp host 172.31.1.102 host 64.101.255.254 eq ftp
 deny tcp host 172.31.1.102 host 64.103.255.254 eq ftp
 deny icmp host 172.31.1.103 host 64.101.255.254
 deny icmp host 172.31.1.103 host 64.103.255.254
 permit ip any any 
-- For at tillade alt andet, som vi ikke har præciseret


interface GigabitEthernet0/0
 ip access-group ACL in 
-- Tillader access-group med navnet ved skrev, som var ACL på interfacet g0/0


end
Nyheder
Søg
Konto
0
Menu
×