Linux Hardening Flashcards
Vad gör “who”?
Skriver ut info om alla som är inloggade.
Vad gör “pwd”?
Skriver ut hela path name till directoryn som du befinner dig i.
Från root directoryn
Vad gör “id”
Skriver ut user och grupp namn, samt UID och GID
UID = user id, GID = group id
Vad gör “ls”
Listar filer i aktuell katalog
Vad gör kommandot “ls /etc”?
Listar filer i katalogen /etc
Hur listar man gömda filer?
(ett kommando)
ls -a
Vad får man reda på när kommandot “ls -l” körs?
ls -l listar en fil per rad där man får reda på dess filrättigheter, antal “hard links” som är kopplade till filen, ägaren av filen, den grupp som filen tillhör, filstorleken, när senaste ändringen gjordes och sist filens namn.
-rw-r–r– 1 user group 4096 Jan 1 10:00 filename
Vilket kommando används för att få ut “bruksanvisningen” för ett annat kommando?
man följt av kommandot du vill söka upp
Ex: man ls
Vilket kommando använder man för att kopiera filer?
cp
Vad gör följando kommando?
cp example.txt /home/user/backups/
Kopierar filen example.txt från mappen du står i till mappen backups.
(/home/user/backups)
du kan även kopiera filer från en annan mapp till mappen backup genom att skriva: cp /home/user/documents/example.txt /home/user/backups/
Hur kopierar man en fil från en mapp till mappen du står i?
Genom att skriva följande ex:
cp /documents/example.txt .
Argumentet “.” betyder “current directory”
Vad används kommandot “cd” till?
cd används för att byta directory
cd = change directory
Vilket kommando använder du för att flytta upp en nivå i fil-hierarkin?
cd ..
Vart hamnar du om du kör kommandot “cd /”
I root-katalogen
Hur tar du dig som enklast tillbaka till din hemkatalog?
cd ~ eller bara cd
Hur skapar man en tom fil?
touch HelloWorld
Kommandot touch följt av filnamnet HelloWorld
Vad gör kommandot rm?
rm raderar filer
Hur skapar man en ny katalog?
mkdir backup
Kommandot mkdir följt av ett namn
Hur tar man bort en katalog?
rmdir backup
Varför kan kommandot “ rm -rf * “ vara farligt?
För att det raderar alla filer rekursivt i katalogen du står i och alla underkataloger utan varningar.
-rf * = alla filer rekursivt utan varningar
Hur flyttar man en fil från en plats till en annan?
Genom att använda kommandot “mv” och ange source samt destination.
mv /path/to/src/example.txt /path/to/dst/example.txt
Hur listar man info om diskar?
fdisk -l
Vad är skillnaden på absolut sökväg och relativ sökväg?
- Absolut sökväg utgår alltid från root och börjar alltid med /
- Relativ sökväg utgår från nuvarande katalog och börjar aldrig med /
Absolut: /etc/network
Relativ: kalle/pelle/HelloWorld.txt
Vilken user id (UID) har root
0
Vad heter själva kärnan i Linux?
Kernel
Vad är det enda i Linux som inte går att modifiera?
Kernel
Vad är Kernels uppgift?
Det är en länk mellan hårdvara och mjukvara. Hanterar kommunikationen mellan dem två.
Vad heter lagret mellan Kernel och mjukvaran?
System call library
Vilka är de tre största Linux distribubtionerna?
Debian, RedHat och Slackware
Vilket skal använder vi?
Bash
Vad heter raden i ett script som berättar vilken tolk som ska användas för scriptet?
Shebang! (!#)
Hur kan man anropa det senste körda kommandot?
Genom att skriva “!!”
Vad gör kommandot scp?
Man kopierar filer med ssh som “bärare”.
Vad hittar du i katalogen /etc/shadow?
Lösenords-hashar till varje använder i systemet.
Vad innehåller directoryn /etc?
systemets konfigurationsfiler
Vad innehåller directoryn /var/log?
systemets loggfiler
Vad innehåller directoryn /var/www?
webroot-katalogen för t.ex apache webserver
Vad innehåller directoryn /home/nisse?
hemkataloger för “vanliga” användare
Vad innehåller directoryn /root?
Hemkatalog för användaren root
Vad innehåller directoryn /dev?
Alias-filer för hårdvaruenheter
Vad står “FHS” för?
File Hierarchy Standard
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf
Vad är skillnaden på absolut sökväg och relativ sökväg?
- Absolut sökväg utgår alltid från root och börjar alltid med /
- Relativ sökväg utgår från nuvarande katalog och börjar aldrig med /
Absolut: /etc/network
Relativ: kalle/pelle/HelloWorld.txt
Vad använder man kommandot grep för?
Man använder det för att filtrera text.
t.ex. grep nisse nissesfil
Hur ändrar man ägare av en fil eller katalog?
Genom att använda kommandot chown
t.ex. chown användare fil/katalognamn
Vad är nano?
Nano är en av flera text-editors i Linux.
Hur dödar man en process?
Genom att skriva kill följt av PID eller JID
t.ex. kill 12345 eller kill %1
Vad gör kommandot top?
Det visar in real time information om de processer som körs.
Vad gör kommandot sort?
sort filnamn sorterar raderna i filen i bokstavsordning.
Vad gör kommandot wc?
Skriver ut antalet rader, ord och tecken efter varandra.
vad gör dessa tre kommandon?
wc -l
wc -w
wc -c
wc -wc
wc -l=räknar antal rader
wc -w=räknar antal ord
wc -c=räknar antal tecken
wc -wc= räknar antal ord och tecken
Hur visar man endast de 6 första samt sista raderna i en fil?
head -6 filnamn ; tail -6 filnamn
Varför är tail -f användbart i loggfiler?
tail -f avslutar inte programmet när det kommit till sitt slut utan uppdatreras och väntar på nytt innehåll hela tiden. Det blir alltså användbart i loggfiler då man kan se filen uppdateras med nya loggar in real time så fort det blir en ändring.
Vad gör kommandot whoami
Skriver ut vem du är inloggad som.
Vilka rättigheter fås när man skriver chmod 673
(9 tecken)
rw-rwx-wx
Vilka rättigheter fås när man skriver chmod 154
(9 tecken)
–xr-x–r
Vilka rättigheter fås när man skriver chmod 163
(9 tecken)
–xrw–wx
Vilka rättigheter fås när man skriver chmod 282
(9 tecken)
Går inte, 8 är ingen rättighet.
Går endast att ha en kombination av 4, 2 eller 1. 0-7
Vilka rättigheter fås när man skriver chmod 4000
ex: rwsrw-r–
s istället för x på user-rättighet
Setuid
Vilka rättigheter fås när man skriver chmod 2000
ex: rw-rwSr–
S istället för x på group-rättighet
Vad är namn och nummer på de tre standardströmmarna?
Stream 0 stdin
Stream 1 stdout
Stream 2 stderr
Hur omdirigerar du ström 1 information till en fil?
Ett kommando
ex: echo Hej > hej.fil
skriver in hej i filen hej istället för att skriva ut hej på skärmen.
Vad gör en enkel “pipe”? (|)
En enkel | kopplar ihop ett programs stdout till ett annat programs stdin. Båda programmen körs samtidigt och kommunicerar med varandra!
Förklara kommandot cut
cut filtrerar ut delar av rader baserat på fält med avgränsare.
ex: cut -d “ “ -f 2 visar andra fältet i varje rad, där fälten är separerade med mellanslag.
**
Vad innebär ett Inode-nummer
Det är filens riktiga “namn”
En fil/mapps unika ID
Förklara vad en hård länk är.
En hård länk är ett filnamn som är kopplat till ett specifikt inode-nummer. Ett nummer kan ha flera hårda länkar, alltså flera filer som pekar på samma plats i hårddisken.
Förklara vad en mjuk länk är.
En mjuk länk fungerar som en genväg till en fil via dess filnamn.
Hur skapar man en hård respektive mjuk länk?
Hård: ln “existerande fil” “ny fil”
Mjuk: ln -s “filnamn/filväg” “länknamn”
Hur ser man att en fil har en mjuk länk?
Kör kommandot ls -l, leta efter “länknamn => fil”
Nämn 3 saker som gör ssh-protokollet säkert
- Autentiserat
- Krypterat
- Signerat
Vilka 2 roller finns i en ssh-session?
En klient som ansluter och en server som svarar på inkommande anslutningar?
Hur skapar man ett ssh-nyckelpar?
Genom att skriva kommando ssh-keygen
Vad är default rättigheter på en fil samt katalog.
Fil: -rw-rw-r–
Katalog: drwxrwxr-x
Vilket kommando använder man för att ändra default rättigheter?
umask
Oavsett umask: nyskapade filer får ALDRIG x-rättigheter
Vilka rättigheter får en fil eller katalog om du skriver umask 532
-w-r–r-x för en katalog
-w-r–r– för en fil
Vilka rättigheter får en fil eller katalog om du skriver umask 124
rw-r-x-wx för en katalog
rw-r—w- för en fil
Vilka rättigheter får en fil eller katalog om du skriver umask 463
-wx–xr– för en katalog
-w—-r– för en fil
Vad heter pakethanteraren för Debian respektive RedHat?
aptitude (apt) för Debian
yum för RedHat
Hur fungerar pakethanteraren?
Den installerar och håller koll på beroenden åt oss. Dem söker i en databs över tillgängliga paket och varje pakets beroende.
Hur uppdaterar man pakethanterarens cache-minne?
apt update
“yum update” i Redhat-distrubution.
Hur installerar man samt tar bort paket?
apt install PAKET
apt remove PAKET
Vad använder man kommandot lsb_release -a till?
För att ta reda på vilken systemversion som körs.
Vad är en variabel?
Man kan se en variabel som en tom låda man stoppar in ett värde i.
Hur tilldelar man en variabel ett värde?
Exempelvis: VARIABEL=värde
Hur anropar man en varibel?
$VARIABEL
Ge exempel på några viktiga miljövariabler.
SHELL=vilket skal som körs
PWD=nuvarande katalog
TERM=vilken typ av terminalanslutning som körs
PATH=sökväg till körbara filer
Vad innehåller miljövariabeln PATH
PATH innehåller ett antal absoluta sökvägar till körbara filer separerade med kolon.
Vad gör kommandot which
Det söker igenom PATH:en efter ett kommando och skriver ut vart det ligger.
Vilka två typer av programmeringsspråk har vi pratat om?
Kompilerande och interpreterande
Vad är skillnaden mellan ett kompilerande och ett interpreterande programmeringsspråk?
Kompilerande: koden skrivs som textfiler och kompileras till binära körbara filer för det speciefierade OS.
Interpreterande: koden skrivs som textfiler och en tolk (shebang!) läser sedan koden och utför direkt det som står i koden.
Vad betyder följande:
1. kommando1 ; kommando2
2. kommando1 && kommando2
3. kommando1 || kommando2
- kommando1 körs först sen kommando2
- kommando2 körs endast om kommando1 lyckas
- kommando2 körs endast om kommando1 misslyckas
Vad är en exit code
En exit code är ett värde mellan 0-255 som signalerar om ett script gick bra eller dåligt.
Vad är local port forwarding?
Local port forwarding är en teknik som används inom datornätverk för att omdirigera nätverkstrafik från en lokal port på en klientmaskin till en specifik destinationsport på en fjärrserver genom en säker tunnel.
Ge ett exempel på hur man skriver en local port forwarding.
ssh -L port1:remoteip:port2 user@host
Vad innebär command substitution och hur skriver man det i Linux?
Innebär att ett kommando körs inom ett annat kommando. Ex:
123@u2:~$ echo “Du är user $(whoami)”
Du är user 123
Vad är Crontab
Det är ett system för att schemalägga och köra kommandon samt script.
Vad händer när du skriver kommandot crontab -e?
Du öppnar crontab-filen och kan editera den.
Crontab
Hur skriver du om du vill köra ett kommando varje timme 24/7
0 * * * * kommando
Crontab
Hur skriver du om du vill köra ett kommando kvart över varje timme 24/7
15 * * * * kommando
Crontab
När och hur ofta körs nedanstående kommando:
43 5 6 8 5 echo “Partytime!”
05:43 6 augusti om det är en fredag
Crontab
När och hur ofta körs nedanstående kommando:
*/2 */2 * * * echo “Th23”
Kommandot körs varannan minut i varannan heltimme varje dag året runt.
Crontab
Vad står varje * för när man ska schemalägga ett kommando?
( * * * * * )
- Minuter 0-59
- Timmar 0-23
- Dag i månaden 0-31
- Månad 1-12
- Dag i veckan 0-6
Obs, går även att skriva jan, feb samt sun, mon istället för nr på 4 & 5
Hur kan man se vilka processer som körs?
Genom att skriva kommando ps
Vilken process är den enda som inte har ett PPID och vad heter denna proccess?
Det är den första processen som heter init.
Vilken option visar samtliga processer?
ps -aux
Hur kan man visa PPID?
ps -eaf
Hur kan man visa de processer som körs i bakgrunden?
Genom att skriva kommandot jobs
Vad gör kommandot fg %12345
Det tar fram bakgrundsprocessen 12345 till “förgrunden”
Vilka två kommandon finns det för att starta och stoppa init script?
service
&
systemctl
Vad är den stora skillnaden mellan find och locate?
Find söker igenom en katalog och dess underkataloger med specifika attribut.
Locate använder sig av en databas som innehåller en lista över alla filer och deras sökvägar i systemet. (behöver manuellt uppdateras då och då)
Hur hittar du alla filer som har namnet “mög” i sig?
find / -type f -regex “.*mög.*”
Vad visar följande kommando?
find ~/ -type d -perm 752
Listar alla kataloger i användarens hemkatalog som har rättigheterna:
rwxr-x-w-
Hur gör du för att ta bort alla filer med namnet mög i sig i katalogen ~/Mög?
Använd kommandot find
find ~/Mög -type f -name “^mög^” -delete
OBS tecknet ^ representerar wildcard tecknet *
Förklara setuid samt setgid
När setuid-behörigheten är inställd på en körbar fil körs programmet med rättigheter från användaren som äger filen, istället för användaren som kör programmet. Det är samma för setgid fast den körs med gruppens rättigheter istället!
vad gör chmod o+t?
Sätter en “sticky” på en katalog så att filerna i katalogen endast kan raderas av root eller användaren som äger filen.
Vilka andra avancerade filattribut finns det?
- -i, filen får inte ens raderas av root
- -a, append only (lägger endast till text)
Vart finns systemets hårddiskar?
/dev
Hur listar man systemets hårddiskar?
lsblk
Vad gör kommandout mount respektive unmount?
mount används för att mounta partitioner
unmount används för att unmounta partitioner
Vilket filsystem använder sig Linux av?
ext2, ext3, ext4
Vad heter den partitionen som Kernel använder som virtuellt minne när RAM är slut?
swap-partition
Hur skapar man en ny partition?
fdisk /dev/sda
OBS!! Hårddisk inte partition
Hur skapar man ett nytt filsystem
mkfs /dev/sda1
OBS!! Partition inte hårddisk
Vad står PAM för?
Pluggable Authentication Module
Vad är PAM?
Det är ett bibliotek som kan användas för att konfiguera autentiseringsmetoder.
Kan vim köra kommandon i sin editor?
Ja
Vad gör ett Alias i bash?
Det används för att göra kortkommandon.
aliasnamn=kommando
ex: alias l=”ls -la”
Hur gör man ett Alias permanent?
Man lägger in det i ~/.profile
Vad innebär arkivering i Linux?
Arkivering lägger ihop flera filer till en, bevarar namnen och katalogstrukturen.
Nämn 4 saker som är bra med arkivering?
- Hantera många filer/kataloger lättare
- Backuper
- Sparar diskyta
- Snabbare filöverföringar
Nämn två olika komprimeringssätt och vad som skiljer dem åt!
- Lossy: Komprimeringen tappar data som inte går att återskapa och försämrar kvaliteten.
- Lossless: Varenda bit går att återställa från originaldatan och blir då mindre effektivt.
Vad gör gzip mög?
Skapar mög.gz och raderar mög.
Komprimerar
Vad gör gunzip mög.gzip?
Skapar mög och raderar mög.gz
Packar upp
Vad är tar?
Används för att skapa, komprimera och packa upp arkiv.
Förklara nedanstående optioner:
* tar -cf fil.tar
* tar -tf fil.tar
* tar -xf fil.tar
* tar -czf fil.tar
* tar -xzf til .tar
- Skapar arkiv
- Visar info om arkiver
- Packar upp arkivet
- Skapar komprimerat arkiv
- Packar upp komprimerat arkiv
Vad är Regular Expressions?
Det är ett standardiserat språk/syntax för att söka i text. Används av de flesta programmeringsspråk, OS, editorer mm.
Regular expressions
Vad betyder tecknet “.”
Matchar exakt ett valfritt tecken.
Flera punkter ger flera tecken.
Regular expressions
Vad är escaping?
Användningen av specialtecken för att förhindra att skalet tolkar dem på ett speciellt sätt genom att skriva **\ ** före ett tecken.
Regular expression
Vad gör kommandot cat hhgttg.txt | grep “s[ie]x”
Markerar alla ord i filen hhgttg som är antingen “six” eller “sex”.
Regular expressions
Vad gör kommandot cat hhgttg.txt | grep ”This.* record”
Ger ALLA rader med “This -någonting- record”
Regular expressions
Vad gör tecknet ^?
Matchar början av raden med angivet värde, ex:
cat hhgttg.txt | grep ”^Because”
skriver ut alla rader som börjar med exakt “Because”
Regular expression
Vad gör tecknet $?
Matchar slutet av raden med angiver värde, ex:
cat hhgttg.txt | grep ”father$”
skriver ut alla rader som slutar med exakt “father”
Vad gör kommandot tr?
Ersätter tecken enligt parameter
Vad gär tr -s “ “
Tar bort alla repeterande förekomster av “ “
-s = squeeze
Hur skiljer sig tr och sed åt?
tr används för enkel byte-för-byte-översättning av tecken, medan sed är en kraftfull textredigerare som kan hantera mer avancerade och mönsterbaserade textmanipulationer över flera rader.
Vad gör kommandot sed s/nisse/kalle/?
Ersätter första “nisse med “kalle” på varje rad.
Vad gör kommandot sed s/nisse/kalle/g?
Ersätter alla “nisse” med “kalle” på varje rad
g = global
Hur lägger man till samt tar bort en användare?
adduser
deluser
Vilka krav har ubuntu som default på lösenordskomplexitet?
Inga krav, allt går att ha som lösenord
Vilket paket kan hjälpa med lösenordskomplexitet?
libpam-pwquality
libpam= PAMs bibliotek med autentiseringsmoduler
Hur kan man manuellt låsa konton? (2 olika sätt vi pratat om)
-
usermod -L user
* Sätter ett ! framför hashen i /etc/shadow -
passwd -l user
* Låser kontot genom att sätta lösenordet som expired
Hur låser man upp ett konto efter använt usermod -L eller passwd -l?
usermod -U user
passwd -u user
Vad gör kommandot chage?
Hanterar periodiska lösenordsbyten.
Hur skapar man en tillfällig användare?
adduser consultant
usermod -e 2021-12-31 consultant.
Ge exempel på hur man kan redigera innehållet på en fil med hjälp av sed.
Kräver skrivaccess till filen
sed ”s/bash/BASH/g” passwd -i
-i står för inline och modifierar innehållet enligt det som anges.
Vad är rsync?
Liknande kommandot scp fast rzync känner av vad som redan är kopierat och kopierar endast de filer som är ändrade efter senaste kopieringen.
Hur ser rsync kommandot ut när man kopierar från lokal dator till extern server?
rsync ssh /local/path user@ip:/extern/path
Hur ser rzync kommandot ut när man kopierar från extern server till lokal dator?
rsync ssh user@ip:/extern/path /local/path
Vilka tre optioner rekommenderas alltid att ha med vi rsync och vad gör dem?
- -a, används istället för -rlptogD (bara smidigare)
- -v, verbose, visar hur lång tid det tar att skicka
- -z, komprimerar filerna inna det skickas och packar upp dem när de kommer fram
Vad är NFS och vad använder man det till?
NFS = Network File System. Används för att komma åt filer över ett delat nätverk.
Hur kontrollerar NFS användaren?
NFS kan inte autentisera per användare utan kontrollerar att klienten har rätt IP-adress.
Vad gör kommandot ifconfig?
Används för att visa och konfigruera nätverksgränssnittet på ett system.
Vad gör kommandot ip addr?
Visar information om nätverksgränssnittet i större grad än t.ex. ifconfig
ip addr = ett modernare/bättre ifconfig
Vart kan en användare ändra sin ip-adress?
Genom att editera filen /etc/netplan/50-cloud-init.yaml
Vad är /etc/resolv.conf för fil?
Den innehåller information om DNS-servrar och sökdomäner som systemet bör använda för DNS-upplösning.
Vad är syslog?
Det är ett protokoll för logghantering som är okrypterat och ej autentiserat. Den har UDP/514 (UDP port 514 (standardport)) som default och är inbyggt i alla linux-system.
Nämn de två begreppen inom syslog och vad de står för.
- Facility, vilken applikation skickar meddelandet? (loggen)
- Severity, hur viktigt är meddelandet? (loggen)
Nämn de 8 olika nivåerna för severity. Från högst kritisk till lägst.
OBS 0-7 ;)
- 0 – Emergencies – System unusable
- 1 – alerts – immediate action needed
- 2 – critical – critical conditions
- 3 – errors – error conditions
- 4 – warnings – warning conditions
- 5 – notifications – normal but significant conditions
- 6 – informational – informational messages only
- 7 – debugging – debugging messages
Är det möjligt att endast få loggar med en viss severity-nivå och värre?
Ja! Det går att ändra i /etc/syslog.conf
Ge exempel på tjänster/applikationer som loggas mha facility.
Kernel, user, mail, daemons, auth, syslog m.fl.
Vad är Netfilter i Linux?
Netfilter är Linux brandvägg.
Vilket kommando används för att konfigurera netfilter?
iptables
Hur ser relationen ut mellan netfilter, ufw och iptables?
När du konfigurerar regler med ufw översätts det till iptables-regler, iptables integrerar sedan med netfilter i Linux-kärnan.
ufw –> iptables –> netfilter
Hur listar man inställningarna för brandväggen i Linux?
Vem får göra det?
sudo iptables -L, får göras av root eller användare med sudorättighet till kommandot.
Vilka tre “tabeller” är iptables uppbyggt på?
- En tabell som hanter Qos, t.ex. trafikprioritering
- En tabell som hanterar trafikfiltrering.
- En tabell som hanterar NAT
NAT=adressöversättning
Vilka 3 “chains” finns i tabellen trafikfiltrering?
Förklara varje chain
- INPUT, Trafik som ska till Linux-enheten
- FORWARD, Trafik som ska igenom Linux-enheten
- OUTPUT, trafik som kommer från Linux-enheten
Chains
Vad betyder “policy ACCEPT” samt “policy DROP
- ACCEPT, Betyder att standard för kedjan är att tillåta trafiken
- DROP, kasta/ignorera den trafik som inte matchar kriterierna
Ge exempel på ett par iptables optioner som Jimmy har nämnt
- -A, lägger till regel i slutet av kedjan
- -F, Flush, tar bort alla regler i kedjan
- -p, protokoll, tex tcp, udp, icmp, all
- -s, sourceadress
- -d, destinationsadress
- -i, input-interface
- -o, output-interface
- -j, jump-action
Vilka 4 jump actioner ska vi kunna.
- ACCEPT
- DROP
- REJECT
- LOG
Vad säger detta kommando?
iptables -A INPUT -i lo -j ACCEPT
Tillåter all trafik till interfacet localhost.
Vad säger detta kommando?
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
Tillåter all trafik från 192.168.0.0/24
Vad säger detta kommando?
iptables -A INPUT -p tcp –dport 5000:5010 -j ACCEPT
Tillåter all trafik med tcp destinationsport 5000 tom 5010
Vad säger detta kommando?
iptables -A FORWARD -p tcp –dport 80 -s 10.0.0.0/24 -d 10.0.5.99 -j ACCEPT
Tillåt all okrypterad webtrafik från 10.0.0.0/24 till 10.0.5.99
Vad betyder detta kommando?
iptables -A INPUT -j DROP
Blockera all övrig trafik.
Ett sätt att låsa ute sig själv från sin Linux-miljö. :)
Vad är fail2ban?
Det är ett “host intrusion detection system” som analyserar systemets loggar istället för trafiken. Kan applicera iptables-regler.
Vart konfigurerar man fail2ban?
/etc/fail2ban/fail2ban.conf
eller
/etc/fail2ban/jail.conf
Två olika typer av konfigurations-möjligheter.