tenta plugg Flashcards
Proprietär mjukvara
Closed Source Code
får/kan inte se eller ändra koden
t.ex. Windows
Open Source code
fri och öppen att använda eller ändra, t.ex. Linux distar
Hur installeras linux?
genom olika open source distributioner
Live dist
körs volatilt i RAM, oftast genom en CD eller USB
Rolling Release
Små kontinuerliga uppdateringar, t.ex. 10.1.3
säkrare i och med att det är oftast weekly/monthly patches/security updates.
“patch tuesday”
Cummulative Release
Större paketerade uppdateringar, t.ex. windows 10>11
Stabilare för uppdateringen har oftast gått igenom en väldigt noggrann alpha/beta testning.
Admin Rättigheter
i Linux = Root/sudo/su
i Windows = Admin/Administrator
Shell
ett användargränssnitt som t.ex. CLI/GUI/BASH
översätter source kod till maskin kod så att processor/ram förstår vad som behövs göras i binär/hexadecimal kod.
Hur kan ett vanligt kommando se ut?
[commando] [-flagga] [argument]
sudo tail -f /var/log/haproxy.log
hur är ett filträd uppbyggt i linux?
tillskillnad från windows där allt börjar med en partition “C:” så börjar allt med root “/”, där efter kommer de olika top katalogerna” /etc /var /bin /usr” osv.
hur flyttar man mellan de olika katalogerna?
cd tar en tillbaks till home katalogen
cd .. flyttar dig ett steg tillbaka, t.ex. /etc/dhcp/ (cd ..) /etc/
cd följt av katalogen tar dig till katalogen t.ex. cd /etc/haproxy
Relativ sökväg
med en relativ sökväg så skriver du bara in den katalogen du vill in till,
t.ex. nano playbooks/pb1.yaml
Detta fungerar enbart om du är säker på att där inte finns fler kataloger som har samma namn.
finns där fler katalogen som har samma namn så går den enligt filträdet till den närmsta.
Absolut sökväg
En absolut sökväg är det säkraste sättet att garantera att du kommer till den katalogen du söker efter. Skrivs alltid ut som full sökväg t.ex.
sudo nano /etc/dhcp/dhcpd.conf
hur ser man vad som finns i en katalog?
kommandot ls används för att lista innehållet i katalogen, kan kombineras med flaggor som t.ex.
ls -a exempelkatalog, för att lista dolda filer i katalogen
ls -l exempelkatalog, för att visa filrättigheter till de filer/kataloger i katalogen.
hur vet jag vart jag är någonstans i linux?
lättast är att kolla i prompten, t.ex. user@debian:/home/catalog/$
då vet vi att vi är i en katalog som heter catalog som finns i home. “$” betyder att vi är inloggad som user, hade det varit ett “#” så hade vi varit inloggade som root.
annars kan vi använda kommandot “pwd” för att skriva ut i terminalen vart vi befinner oss.
hur skapar man filer/kataloger?
du kan skapa filer med antingen kommandot ‘touch’ för att skapa en tom fil, eller så kan vi använda oss utav en text editor som t.ex. nano eller vim om filen inte redan existerar så skapar vi den.
för att skapa en katalog så använder vi oss utav ‘mkdir’.
hur visar vi innehållet i filer?
genom att använda våra text editors, vi, vim och nano så kan vi ju se innehållet i filen och redigera det. Men om vi vill spara tid och bara snabbt skriva ut i terminalen så kan vi använda oss utav följande kommandon:
Cat - visar allt i filen
Head - visar början av filen
Tail - visar slutet av filen
less - öppnar filen
hur kopierar vi innehållet i en fil till en annan?
genom att använda kommandot ‘cp’ följt av filens namn och sedan den filen vi vill kopiera det till.
cp file1 file2
kan kombineras med flaggan -r för att kopiera innehåll ifrån kataloger
cp -r cat1 cat2
hur gör vi om vi har lagd en fil i fel katalog?
då kan vi använda oss utav ‘mv’ kommandot för att flytta filen till rätt katalog. Vi kan även använda ‘mv’ för att döpa om filen.
hur gör vi om vi vill ta bort en fil eller katalog?
kommandot ‘rm’ tar bort en fil och dess innehåll.
kommandot ‘rmdir’ tar bort en katalog om den är tom.
antingen tar man manuellt bort filerna i katalogen eller så använder man sig utav flaggan ‘-r’ för att ta bort allt som finns i katalogen, t.ex.
rm -r cat1
detta kallas även för att ta bort saker rekursivt, (recursive)
Hard links
hard links fungerar lite som när man gör en genväg till en app på skrivbordet i windows. då filen ligger gömd djupt in i filsystemet men du kan ändån starta den genom att klicka på genvägen i skrivbordet.
När du tar bort länken så blir datan kvar.
Soft links
är även kallad för “symbolic link”, precis som hard links så är det en genväg till en fil/katalog. Men skillnaden är att när du tar bort soft linken så försvinner även all data till filen/katalogen.
lagring och partitioner
kommandot ‘lsblk -l’ används för att lista alla blocks, här visas all information om olika partitioner, filsystem, storage osv.
kommandot ‘fdisk’ används för att formatera om olika partitioner.
partitionerna måste monteras i filsystemet genom “mount points” som oftast ställs i katalogen ‘fstab’.
När partitionerna monterats i ‘fstab’ så kommer dem automatiskt köras vid uppstart.
UUID
Detta är ett unikt ID för hårddiskar och annan lagring, används för att specificera vilken partition som ska monteras.
Swap
swap är data i RAM-minnet som byts ut mot data på hårddisk.
används när RAM-minnet överbelastas och blir fullt.
Vad är ACL subjects?
de olika subjectsen är:
user
group
other
———————————–
skrivs ut som följande:
rwxr-x-rw- user3 group1 <output> fil</output>
vad är ACL permissions?
do olika permissions är:
read
write
execute
—————————————-
skrivs ut i tre kollumer
d|rwx|rwx|rwx
Den första kolumnen är user
Den andra kolumnen är group
Den tredje kolumnen är other
‘d’ betyder att det är en katalog (Directory)
Hur bestämmer vi vilka rättigheter filen ska ha?
antingen binärt eller med bokstäver.
rwx|rwx|rwx
421|421|421
så om vi vill ge users rwx, och dem andra bara r och x så skriver vi kommandot ‘chmod’ följt av följande:
chmod 755 filen
————————————–
då vi bara plussar ihop de olika siffrorna i var kolumn.
vi kan även använda oss utav:
chmod u=rwx filen, för att ändra rättigheterna till users.
Hur ändrar vi ägarskap och grupp ägarskap?
Genom kommandot chown och chgrp.
chown user6 fil3
chgrp group2 fil4
elller kombinera dem för en och samma fil/katalog:
chown user5:group1 fil2
hur installerar vi program i linux?
Vi använder oss utav pakethanterar som t.ex. apt, apt-get, dnf, yum.
dem hämtar sedan paketen från en mirror.
Vad är en mirror?
en mirror är en domän som t.ex. http://ftp.se.debian.org/debian/
som sedan har ett repository (repos) som fungerar som ett bibliotek/databas för alla möjliga sorters paket/program.
i Redhat så heter detta Content Delivery Network då Redhat har sina egna servrar.
hur kan vi använda root i Linux?
antingen så loggar vi in som root i terminal genom ‘su -l’, men vi ska helst undvika att göra detta så mycket som möjligt.
därför kan vi installera ett program som heter “sudo” och sedan lägga till vår använder i sudo gruppen genom att skriva:
usermod -aG sudo user1
efter det så kan vi använda temporära sudo rättigheter när vi kör vanliga program.
Vad händer när vi startar våra linux maskiner?
- Firmware - bios/uefi
- Boot sector - mbr/gpt
- Boot loader - grub
- Kernel - linux
- Init system - daemons (systemd)
hur ställer vi in en statisk ip address i linux?
Debian:
sudo nano /etc/network/interfaces
här inne skriver vi om filen från dhcp>static
och sedan ip konfigurationen:
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
dns-servers 1.1.1.1, 1.0.0.1
starta sedan om nätverkskortet med:
sudo ifdown enp0s3
sudo ifup enp0s3
———————————————————
Rhel:
gå först in i katalogen:
cd /etc/sysconfig/network-scripts/
skriv ls för att lista de olika filerna
kör sedan sudo nano mot det nätverkskortet du vill ändra och konfigurera en statisk adress.
starta sedan om daemonen med:
sudo systemctl restart NetworkManager
SSH
progam: openssh-server
port: tcp 22
ansluter till andra enheter genom:
ssh username@ipaddress
olika felsöknings verktyg
vi kan felsöka daemoner med hjälp av systemd
sudo systemctl status/enable/restart/disable [demonen]
och vi kan få fram loggar med hjälp av:
sudo journalctl -xu [daemonen]
vi kan även använda oss utav ‘ss -tulpn’ för att få fram information om vilka portar som används.
Loggar
hittas oftast under katalogen /var/log/
kan kombineras med systemd, journald, cat, tail
Regular Expressions
är olika flaggor som vi kan använda oss för att söka efter något, kan kombineras med sök kommandot ‘grep’.
grep $regex fil2.
så söker vi efter alla rader i filen ‘fil2’ som slutar på bokstäverna ‘regex’.
några vanliga Regular Expressions är:
^ början av en rad
$ slutet på en rad
. alla tecken förutom ny rad
[ ] ett set av tecken
[^] ett inverterat set av tecken
* föregående tecken 0 eller fler gånger
vad är en DHCP server?
DHCP server är en server som vi kan konfigurera i linux med hjälp av programmet “ISC DHCP” som används i nätverks miljöer för att hyra ut ipv4/ipv6 addresser automatiskt till klienter.
hur konfigurerar man en dhcp server?
först och främst måste man gå in i /etc/dhcp/dhcpd.conf
här kan vi bestämma default och max lease time, dns server, och det viktigaste av allt, deklaration av nätverk.
NTP
Network Time protocol
ntp används för att säkerställa att korrekt tid körs på systemet, så att de olika paket som kräver korrekt tid fungerar som de ska, t.ex. dhcp/dns
i debian NTPsec
i Rhel Chrony
Clock skew och clock drift?
Clock skew är den tidsskillnad mellan två olika klockor.
Clock drift är vad som händer när klockor inte synkroniseras, då glider dem ifrån varandra mer och mer tids mässigt.
Hur får NTP sin tid?
Genom ett hierarki system som kallas stratum. då en ntp server med stratum 4 hämtar sin tid ifrån stratum 3 som hämtar sin tid från stratum 2 osv.
16 stratum är max.
Hur sätter man upp en NTP server?
börja med att manuellt ställa in tid med ‘date -s’ synka sedan hårdvaru klockan med ‘hwclock –systohc’, starta sedan om systemet.
installera sedan ditt ntp program och konfigurera det.
hur vet vi om NTP servern fungerar?
med hjälp av ‘NTPstat’ och ‘ntpq -nq’.
här måste vi även använda oss utav “tally code”
generell regel, ‘+ # *’ betyder att det fungerar ‘x . - ‘ betyder att det inte fungerar.
NTP DDoS?
en vanlig NTP DDoS attack är DDoS Amplification och detta kan vi motverka genom att konfigurera följande i vår NTP server:
restrict default kod limited nomodify nopeer no query
restrict 127.0.0.1
restrict ::1
webserver
de två vanligaste typerna av webbservrar är Apache2 HTTPD och NGINX
webbservrar används för att hosta websidor genom transport protokollen HTTP och HTTPS
port: TCP 80/443
HTTP Requests och response?
Requests:
GET : hämtar data
DELETE : ta bort data
POST : applicerar data
PUT : byter ut data
Response:
200+ = success
400+ = error (404)
hur testar vi om vår webserver fungerar?
Först och främst kan vi använda oss utav Curl och wget.
då skriver vi ‘wget’ eller ‘curl’ följt av ip adressen till webservern, då får vi utskrivit index.html filen i terminalen.
annars kan vi använda oss utav systemd eller webläsaren.
Virtual hosts
Virtual hosts är virituella websidor som körs på webservern, som konfigureras under:
/etc/apache2/sites-enabled/
Proxy
Proxy är en server som kopplas upp mellan klienten och webservern för att avlasta webservern från ingående trafik.
används oftast tillsammans med round robin när man har flertal servrar.
ett vanligt proxy program är “HAProxy”
KeepAliveD
är ett open-standard VRRP program som används för att lastbalansera trafik mellan proxy servrar genom en virtuell ip address, precis som HSRP.
en server agerar master och en server agerar backup
Hostname
hostname används för att ge datorn/servern ett namn.
Används för DNS genom “CNAME” / “alias”
går att hitta namnet under /etc/hostname
static hostname
ställs in i /etc/hostname
Transient hostname
Detta är när hostname setts dynamiskt genom dhcp.
Vilka portar använder DNS?
UDP:53 - för vanliga frågor
TCP:53 - för zone transfer och större frågor
Vad gör en dns server?
den tar emot en fråga från en client som vill åt en websida, sedan frågar den iterativt root servern och top domäner efter IP addressen till den websidan.
de tre olika domän typerna
Root.
Top-level Domain.
Second-level domain.
vad är en top-level domän?
En top-level domän är t.ex:
.com
.se
.nu
.org
.net
vad är FQDN?
Fully Qualified Domain Name.
Det är när domänen är komplett, så t.ex. google.com
vad är en second-level domain?
en second-level domain är steget under top-level domains i hierarkin. så google.com. då google ligger under .com.
Vad är ett record?
ett record är något som vi använder i dns för att identifiera olika poster associerade med domännamet.
Några vanliga DNS-records
A: IPv4 addresser
AAAA: IPv6 addresser
CNAME: alias (hostname)
NS: Authoritative Name Server
SOA: Start of Authority
Vad är en resolver/open resolver
en resolver eller öppen resolver är en dns server som är öppen för alla. t.ex. google’s 8.8.8.8 eller cloudflare’s 1.1.1.1
Vad är resolution?
resolution är den processen som krävs för att clienten ska få ett svar från resolvern.
med andra ord, från och med att klienten skickar en request tills att resolvern har gått igenom den iterativa processen och skickat tillbaks en IP-adress.
Hur fungerar DNS hierarkin?
dns hierarkin börjar med att resolvern frågrar root, root skickar tillbaks att “.se” vet mer om websidan, så resolvern frågar “.se” och får tillbaks att ip adressen finns under “nicslab.se”
Root hints
Root hints är en listan som medföljer de flesta resolver program som t.ex. Bind som innehåller ip adresser till de alla root servrar
Recursive/Iterative
recursive sökväg är den fullständinga sökvägen, med andra ord:
mellan clienten och resolvern. Då klienten skriver google.com och resolvern skickar tillbaks 8.8.8.8
Iterativ sökväg är det som händer bakom kulisserna när resolvern frågar root, som skickar tillbaks att .com vet och resolver frågar .com som säger att google.com vet och google.com skickar tillbaks 8.8.8.8.
Vad är Caching-only servrar?
En caching-only server är en resolver utan zon-ansvar, den ställer frågor och cachar svar, detta gör så att resolvern med zon filen inte behöver söka upp addresser iterativt, vilket ökar hastigheten på hur servern jobbar.
Vad är zon-filen och vad ska den innehålla?
Zon filen är den fil i DNS-server som innehåller all information som domän-namn, ip addresser, sub zoner.
den måste innehålla domän namnet och start of authority.
Vad är dns-delegation?
delegation inom dns hierarkin är när man har en sub zone inom huvud zonen, t.ex. dnlab.se. och sub.dnlab.se.
addressen till sub-zonen måste deklareras i zon filen på huvud servern.
Vad är Glue?
Glue är det vi använder oss utav för att koppla ihop dns hierarkin, t.ex. att ip addressen till subzonen skrivs i zon filen och kopplas ihop med ‘ns’ namn servern.
för att enklare förstå det så kan man jämföra det med ett nätverk där varje router har sin egna ip address på varje port och allt kopplas ihop med routing protokoll.
Zone transfer
Zone transfer delas upp på två olika servrar i samma zon, där en är primary och den andra är secondary. Används i samband med delegation.
TCP:53
Vad ingår i Start of Authority?
Serial - 10 siffrigt version nummer, zone transfer hämtar zon filen om serial numret är ändrat.
Refresh - Bestämmer hur många sekunder det ska gå mellan serial kollen.
Retry - hur många sekunder den ska vänta innan den hämtar zon filen ifall något gick fel.
Expire - om inte zon filen kan hämtas inom dessa sekunder så antas det att zonen är offline.
Minimum - baseras på TTL värdet.
Vad är reverse lookup?
Reverse lookup är när man har ip addressen men vet inte om vad websidan heter. Använder sig utav dns-record PTR (pointer) och är lätt att känna igen pga. “in-addr.arpa.” som alla addresser avslutas på.
Vad är local i dns sammanhang?
local är en lokal top-level domain som man kan använda sig av i privata nätverk. t.ex. dnlab.local
vad är en Forwarder och en Conditional forwarder?
En forwarder skickar alla requests till en viss ip address, medans en conditional forwarder skickar alla requests som tillhör en viss domän till en viss ip address.
DNS-Säkerhet
vanligtvis vill man undvika att använda kryptering inom dns för att det blir för långsamt.
men de vanligaste typerna av säkerhet för dns är:
DNSSEC
DoT (TCP:853)
DoH (TCP:443)
dessa fungerar som VPN tunnlar för den recrusiva delen mellan client och resolver.
Vad är den vanligaste typen av attack inom DNS?
DDoS Amplification är den vanligaste typen av attack, då gör man en request mot resolvern och ber om alla records för domänen och skickar svaret till en spoofad ip adress.
vad är Origin?
Origin används i zon filen genom att skriva längst upp i filen “$ORIGIN”, följt av domänen, detta gör så att du kan kalla på domänen i filen genom att skriva ‘@’ eller så autofylls den i slutet av domäner, därför är det extremt viktigt att alltid avsluta domänerna med “.” i zon filen.
Vad är bash?
Bash är ett skal (shell) som vi använder i linux CLI’n som vi kan manipulera för att skapa script som automatiserar åt oss.
Vad krävs för att ett script ska kunna köras?
Först och främst måste vi skapa en katalog där vi placerar scriptet i, när vi har gjort det så måste vi logga ut för att lägga till katalogen i $PATH-variabeln.
Därefter måste vi ge vår användare rättigheterna att köra filen, där efter så är det bara till att skriva själva scriptet.
Vad ska ett Script innehålla?
först och främst vill vi att filen ska avslutas med ‘.sh’ t.ex. scriptfil.sh.
sedan inne i filen så vill vi ha:
#! /usr/bin/env bash
därefter kan vi fylla scriptet med det vi behöver, varibler, strängar, vilkorssatser, kommandon och mycket mer.
vad är exit codes och hur används det?
exit codes är enkelt definierat genom 0=success och >1=failure.
detta är ett svar som skrivs ut i terminalen när du kör ditt script, och det informerar dig ifall scriptet fungerar eller inte.
Vad är Villkorliga satser?
if = om
else = annars
elif = om annars
används för att kolla om något är eller inte är, och så fall ska något göras.
Vad är redirect och hur kan vi använda det?
Redirect defineras med ‘>’ och vi kan använda det i kommandon i prompten eller i script.
Då tar vi output från något och skriver över det till en till en annan fil.
Skriver vi dock “»” så lägger vi till innehållet istället för att skriva över det.
Kan kombineras med /dev/null i script tillsammas med stderr ‘2’ för att skriva felmeddelande till “papperskorgen”
if ! systemctl status 2> /dev/null
Vad är pipes och hur kan vi använda det?
pipes definieras genom ‘|’ och används för att separera kommandon i prompten så man kan göra flera saker med ett o samma kommandon, t.ex. kombineras med “grep” för att söka efter saker.
t.ex.
ls /etc/ | grep ssh
Vad är cron och hur kan vi använda det?
Cron är en schemaläggnigns demon som vi kan använda för att se till så att våra scripts körs vid t.ex. en specifik tid på en specifik dag i en specifik vecka m.m.
IAC
Infrastructure as code
Används oftast genom CM-verktyget Ansible.
Ansible
Ansible är ett modul baserat scripting verktyg som används för att konfigurera flera enheter samtidigt istället för att konfigurera alla för hand.
Hur konfigurerar ansible klienter?
Push - Servern skickar ut konfiguration till klienterna.
Pull - Klienter hämtar själv konfiguration ifrån servern.
Agent - En mjukvara som konfigurerar / styr klienten
Agentlös - Använder befintliga protokoll för att konfigurera / styra t.ex. ssh
Hur definieras konfigurationen?
Antingen så definieras den procedurellt, då definieras hur något ska göras step-by-step.
Eller så görs det deklarativt, då bestämmer verktyget beroende på “desired state”
Vad är Idempotency?
Det är när man anpassar sin ansible konfiguration så att samma steg kan köras om och om igen utan att något påverkas.
Så om t.ex. programmet bind9 redan finns installerat så ska ansible bara se till att det håller sig installerat, skulle det dock försvinna så installeras det på nytt.
Vad är Configuration Drift?
Configuration Drift är något som uppstår med tiden, allt mer man kör det så kommer fel och nya konfigurationer dyka upp. Vilket gör att ansible konfigurationen inte längre stämmer och behövs uppdateras.
Vad är Remediation
Remediation är när Ansible söker efter Configuration Drift och rättar till fel, enklaste sättet att få det här att fungera är att schemalägga ansible playbooken i Cron.
Hur skrivs en ansible konfiguration?
Först måste vi skapa en katalog för IAC.
Därefter lägga till våra enheter i en host fil, där vi sorterar clienterna i grupper.
Där efter måste vi lägga till username+passwords i vårt Ansible vault.
efter det måste vi lägga till ip adresserna i en host_vars katalog.
Där efter så gör vi en playbook där vi skriver scriptet i ett språk som heter “yaml”
Vad är minsta krav för att ansible ska fungera?
att klienterna och server har ssh eller winRM installerat.
Hur inleds och avslutas en yaml fil?
Filen inleds alltid med “- - -“ och avslutas med “…”
’- - -
name: yamlfil
task: get W på tenta
. . .’
Vad är viktigt att tänka på när man konfigurerar en yaml fil?
att “tab” inte fungerar, för hela script språket är baserat på mellanslag.
Detta kan vi ändra genom att skriva nano -mET2 när vi öppnar filen, då tab=2st mellanslag istället.
Vilka är de vanligaste brandväggarna för linux?
ufw och nftables, för rhel så är det även firewalld
Vad är chains och actions?
Chains och actions är något som används i nftables för att definierar vad som är tillåtet och vad som inte är tillåtet.
chains = input/output
actions= Accept; drop; log;