Linux Hardening Flashcards
Vilket kommando används för att lista filer?
ls
Vilket kommando används för att kopiera filer?
cp
Vilket kommando används för att veta vilken användare man är inloggad som?
whoami
Var hittar man systemets konfigurationsfiler?
/etc
Var hittar man systemets loggfiler?
/var/log
Var hittar man webroot-katalogen för t ex apache webserver?
/var/www
Var hittar man hemkatalogerna för vanliga användare?
/home/[användare]
Var hittar man hemkatalogen för root användaren?
/root
Var hittar man alias-filerna för hårdvaruenheter?
/dev
Vad står FHS för?
File Hierarchy Standard
Hur listar man “osynliga” filer?
ls -a
Vilket kommando används för att skapa en tom fil?
touch
Vilka två parametrar måste kommandot cp har för att kunna kopiera en fil?
source och destination
Vilket kommando skapar en katalog?
mkdir
Vilket kommando raderar en tom katalog?
rmdir
Vad betyder globbing?
att använda wildcards
Det finns ett kommando i Linux som både kan användas för att flytta filer och/eller ändra namn, vilket?
mv
Vad använder man för kommando för att visa innehållet i en fil?
cat
skickar filens innehåll till stdout
Med vilket kommando visar man filens innehåll med en sida i taget?
more
Vilket kommando används för att t ex räkna ord, rader eller tecken i en fil?
wc
- l för antalet rader
- w för antalet ord
- c för antalet tecken
Vi vill bara visa de 10 första raderna i en fil, vilket kommando använder vi?
head
head -8 för att visa de 8 översta raderna, osv…
Vill vi visa de 10 sista raderna i en fil, använder vi vilket kommando?
tail
tail -3 för de 3 sista raderna osv…
Vem uppfann Linux?
Linus Torvalds
Nämn de 3 huvudspår som Linux härstammar ifrån.
Red Hat
Slackware
Debian
Vilken och vems nyckel finner vi lagrad i ~/.ssh/id-rsa?
användarens privata nyckel
Vilket User ID har användaren root?
0
Vilket skal används när du loggar in på t ex Bettan?
Bash
Vad innebär det att ha x-rättigheter på en katalog?
Att kunna gå in i katalogen med cd kommandot.
Vad heter standardström 2?
standard error
Vad heter filen där användarens lösenordshashar ligger lagrad? Svara med den absoluta sökvägen.
/etc/shadow
Vilket kommando raderar en katalog som innehåller filer.
rm -r
I vilken fil på ssh-klienten lagras en hash av serverns publika nyckel för alla servrar man anslutit till?
~/.ssh/known_hosts
Vilken är den troliga exit-koden för cp-kommandot som framgångrikt kopierade en fil?
0
Vilket kommando använder du för att skapa partitioner på en nyinstallerad hårddisk i en Linux-dator?
fdisk
Vilka rättigheter kommer en nyskapad fil att ha om umask var satt till 067? Svara med 9 tecken (rwx osv…)
rw- - - - - - -
Vilka filer hittas med kommandot ”find / -perm -4000
Listar alla filer som kan köras med ägarens rättigheter.
Sticky User flagga (A Sticky bit is a permission bit that is set on a file or a directory that lets only the owner of the file/directory or the root user to delete or rename the file)
Vad är fail2ban?
Host intrusion detection system
Vad analyserar fail2ban?
Den analyserar systemets loggfiler.
Den analyserar inte trafik!
Vad står SQL för?
Structured Query Language
Vad används SQL till?
SQL är ett språk som används för att hämta information ur en databas.
Nämn de tre vanligaste datatyper i SQL.
int = heltal float = decimaltal varchar = text
Vilket kommando använder man för att ange vilken databas man vill använda i SQL?
use databasnamn;
Vilket kommando använder man för att visa tabellerna i en databas i SQL?
show tables;
Med vilket kommando raderar man en tabell eller en databas i SQL?
drop table tabellnamn;
drop database databasnamn;
Vad står PAM för?
Pluggable Authentication Module
Vad är PAM för system?
PAM är ett modulärt system för autentisering.
Vad använder man för kommando för att låsa ett konto?
usermod -L användarnamn
Vad använder man för kommando för att låsa upp ett konto?
usermod -U användarnamn
Vad ska man använda för kommando för att låsa ett konto genom att sätta lösenordet expired?
passwd -l användarnamn
och man låser upp kontot igen med usermod -u användarnamn
Vad står tr för?
Translate characters
Hur ersätter man små bokstäver mot stora i en hel text med hjälp av tr?
tr [a-z] [A-Z]
Vad står sed för?
Stream editor
Hur separerar man parametrar och kommandon när man använder sed?
Man separerar de med /
Om vi ska skriva ut rad 5 i en text med hjälp av sed, hur ser syntaxen ut?
sed -n 5p
Hur skriver man ut rader som innehåller specifika ord i en text med hjälp av sed?
sed -n /ord/p
Vad är awk?
En avancerad text-processor, den har eget programmeringsspråk med egen syntax.
Hur ser syntaxen ut för awk?
awk ‘kommando’ fil
Hur många ägare kan en fil ha?
Endast en ägare
Vilka är de uppsättningar av rättigheter som en fil eller katalog har?
r = read w = write x = execute
Vilka är filattributen?
u = user g = group o = others
Vad innebär att ha rättigheterna r (read) på en fil?
Man kan läsa innehållet.
Vad innebär att ha rättigheterna w (write) på en fil?
Man kan ändra innehållet.
Vad innebär att ha rättigheterna x (execute) på en fil?
Man kan köra filen som ett script.
Vad innebär att ha rättigheterna r (read) på en katalog?
Man kan lista innehållet i katalogen (ls-kommando).
Vad innebär att ha rättigheterna w (write) på en katalog?
Man kan skapa/radera filer/kataloger.
Vad innebär att ha rättigheterna x (execute) på en katalog?
Man kan köra cd till katalogen.
Vilket kommando använder vi för att ändra rättigheterna på en fil/katalog?
chmod
Med vilket kommando listar man filernas attribut?
lsattr
Med vilket kommando ändrar vi filers attribut?
chattr
Vad används umask till?
Den kan användas för att styra standardfilbehörigheten för nya filer.
Man ska aldrig editera /etc/sudoers direkt, vad ska man använda istället?
Man ska använda visudo.
Vilka permissons finner du på nedanstående rad?
chmod 550 filnamn
Raden ger filen Read + Execute-rättigheter för user och group, men inga rättigheter till others.
Vilket kommando med vilken option ger user, group och others både read + write-rättigheter till filen fil1.txt ?
chmod 666 fil1.txt
chmod ugo+rw fil1.txt
Vad innebär grep -v ?
grep “reverse” - matchar och visar allt förutom det man anger efter.
T ex
cat fil1.txt | grep -v “jag”
Då skriver den ut all text förutom alla jag
Vad är ett alternativt sätt att skriva “chmod 444 filnamn”?
chmod ugo +r (förutsatt att inga rättigheter var satta sen innan
Vilket kommando använder du för att modifiera vilken grupp en fil tillhör?
chgrp gruppnamn filnamn
eller
chown användare:grupp filnamn
Vilken option använder du med kommandot ls för att lista en fils inode?
ls -i
I filen passwd, vilket fält är användarens ID?
3:dje fältet
Hur refererar man till en variabel?
$VARIABELNAMN eller ${VARIABELNAMN}
Vad är miljövariabler?
Miljövariabler är variabler som kan användas för att ändra sättet hur operativsystemet fungerar.
Vad innehåller miljövariablen PATH?
PATH innehåller de absoluta sökvägar som skalet använder för att leta efter körbara filer.
Vilket kommando kan du använda för att leta upp var i PATH som skalet hittar en fil?
Med hjälp av “which”-kommandot
Vad gör command substitution?
Man ersätter en variabel med stdout från ett annat kommando.
Vilken typ av programmeringsspråk är skriptspråket bashscript?
Bashscript är ett interpreterande språk, d.v.s att det kan köras på valfri plattform som har bash installerad.
Vad innebär begreppet shebang och hur skrivs en korrekt bash-shebang?
Shebang är en rad som talar om för systemet vilken tolk som ska användas. Detta eftersom olika programmeringsspråk har olika syntax.
En korrekt bash-shebang skrivs: #!/bin/bash
Vad är en exit code och vad används den till?
Exit code är ett värde (0-255) som ett program eller script kan lämna ifrån sig då det avslutas
Exit code används ofta för att signalera till anropande program att t ex ett script “gick bra eller dåligt”.
Hur tar du reda på ett nyss avslutat scripts exit code?
Med hjälp av variabeln $?
Vilken krypteringsalgoritm använder oftast SSH-nycklar?
RSA
Vilket option måste du använda i “wc” för att endast visa antalet ord?
-w
Vad gör kommandot ps?
Ger dig en överblick över de processer som är aktiva i ditt system.
Tips: Med “ps -aux” kan du se samtliga processer som är aktiv
Vad gör följande rad?
cat ~/Testfil | grep e | sort > Sorterad-testfil
Plockar ut rader med bokstaven e i “Testfil”, sorterar den och skriver det till en ny fil med namnet “Sorterad-testfil”.
Hur fungerar det när du separerar kommandon med semikolon?
Kommandon som separeras med semikolon körs efter det föregående oavsett om kommandot innan lyckades eller inte.
Hur fungerar det när du separerar kommandon med dubbla och-tecken (&&)?
Kommandon som separeras med dubbla && körs efter det föregående ENDAST om kommandot innan lyckades (exitcode 0).
Motsatsen till att använda dubbla pipe-tecken, ||.
Hur fungerar det när du separerar kommandon med dubbla pipe-tecken (||)?
Kommandon som separeras med dubbla || körs efter det föregående ENDAST om kommandot innan INTE lyckades.
Motsatsen till att använda dubbla och-tecken, &&.
Vilket kommando används för att döda en process med ett specifikt PID (Process ID)?
kill 1234 (där 1234 ersätts med PID-nummer)
Beskriv systemd
systemd är en system- och servicehanterare. Den fungerar som ersättning för den traditionella init-processen.
systemd håller reda på bakgrundsprocesser (daemons) och sköter loggning. Modernare variant av “service”.
Vilket tecken kan du använda för att starta ett kommando i bakgrunden och direkt återgå till prompten?
&
Vilken är den vanligaste pakethanteraren för RedHat-baserade linux distributioner?
Yum
Hur gör du för att avinstallera ett paket i ubuntu?
apt remove paketnamn
Hur gör du när du vill redirecta output direkt till linux “papperskorg”?
1 eller 2 >/dev/null.
Vad innebär Local Port Forwarding?
Anslutningen från en lokal SSH klient vidarebefordras via en lokal SSH servers specifika port och sen vidare till destinationsservern.
Vad är syntaxen för local port forwarding?
ssh -L port1:remoteip:port2 user@host
Förklara följande kommando: tar -xf fil.tar
tar (tape archive) används i detta fallet för att extrahera det icke komprimerade tar-arkivet i nuvarande katalog..
Vilket kommando med vilken option används för att skapa ett komprimerat tar-arkiv med namnet file.tar?
tar -czf fil.tar *
glöm inte -z, optionen för själva komprimeringen
Vad är fördelen med att använda rsync vid backuper över internet jämfört med exempelvis scp?
rsync överför inte filer som redan finns på destinationen, d.v.s. sparar bandbredd.
Du skriver in rsync -avz, vad betyder optionerna?
- a betyder att överföringen ska ske rekursivt, med tidstämplar och rättigheter bevarade.
- v betyder att det visas vilken fil som överförs och summerar när överföringen är klar.
- z komprimerar de filer som överförs, vilket underlättar vid långsam internetuppkoppling.
Vad är en daemon?
En program som arbetar i bakgrunden med en tjänst istället för under direkt kontroll av användaren.
Hur gör du för att söka i kataloger + underkataloger med hjälp av ls kommandot?
ls -lR
Tips: kombinera detta med “grep filnamn” för att söka efter en specifik fil
Med vilket kommando hittar du alla miljövariablerna?
env
Det finns 3 “chains” i den tabell som hanterar trafikfiltrering. Vad heter dessa tre?
INPUT
FORWARD
OUTPUT
Kommando för att lista aktuell iptables config?
iptables -L
Vilka komponenter består en Linux distribution av?
- Kernel
- GNU Tools
- Övriga mjukvaror
Vilka fördelar har Linux?
- Gratis
- GPL licens
- Säkert
- Behöver inte startas om då och då
- Effektiv minneshantering
Vilka nackdelar har Linux?
- En djungel av distributioner
- Många kockar/viljor bakom
- I praktiken bara CLI
Vad är en GUI?
Ett grafiskt gränssnitt.
Vad kallas det grafiska gränssnittet i Linux?
- X-windows
- X11
- “x”
Nämn tre olika sätt och ansluta till en Linux-server.
- telnet
- rlogin
- ssh
Vad heter kommandot som listar de mest cpu-intensiva processerna överst i realtid?
top
Vad heter kernelfunktionen som möjliggör användandet av iptables?
netfilter
Vad innehåller de första raderna i /etc/passwd?
Systemkonton
Vilket kommando använder du för att lista användare som är inloggade just nu?
w
who
Vad betyder kompilerande programmeringsspråk?
Man skriver källkod som textfiler.
Denna kompileras
till binära körbara filer för det specifika OS:et
T ex C, C++, C#, Swift…
Vad betyder interpreterande programmeringsspråk?
Man skriver källkod som textfiler.
En interpreter
(tolk) läser sedan källkoden och utför direkt det som
står i källkoden.
T ex bash, python, javascript, ruby och perl
Vad är fördelarna och nackdelarna med kompilerande programmeringsspråk?
Fördel: Betydligt snabbare kod.
Nackdel: Binärfilen är plattformspecifik.
Vad är fördelarna och nackdelarna med interpreterande programmeringsspråk?
Fördel: Källkoden kan köras på valfri plattform som
har en tolk installerad.
Nackdel: Betydligt långsammare än kompilerad kod.
Vad är ett bashscript?
Är textfiler som innehåller bashkommandon, exakt samma kommandon som du kan köra vid bash-prompten.
Vad behöver en användare för att kunna köra ett script?
att användaren har x-rättigheter på scriptet.
Varför behöver man lägga till ./ innan script namnet för att kunna köra scriptet?
För att ens hemkatalog är inte med i PATH.
Vad är en exit code?
Det är ett värde mellan 0-255 som ett program eller ett script kan lämna ifrån sig då det avslutas.
Det kan vara för att signalera till anropade program att t ex ett script gick bra eller dåligt.
Ett sätt och kolla exit code är att skriva $? efter att programmet eller scriptet kört färdigt.
Man kan lista kommandon efter varandra på tre olika sätt, vilka?
kommando1 ; kommando2;
kommando1 && kommando2
kommando1 || kommando2
Vilken av följande är en relativ sökväg?
a) /home/jimmy
b) /
c) ..
..
Är filer och kataloger case sensitive i Linux?
Ja
script2 körs bara om script1 avslutas med exit code 0?
a) script || script2
b) script1 && script2
c) script1; script2;
b) script1 && script2
kommando1 och kommando2 körs samtidigt oberoende av varandra?
a) kommando1 && kommando2
b) kommando1 || kommando2
c) kommando1 & kommando2
d) kommando1; kommando2:
c) kommando1 & kommando2
En hård länk är en pekare från ett namn till en vad?
en inode
Kommandot script.sh 1> fil skickar scriptets standard error till fil, ja eller nej?
Nej
Vad heter kommandot som listar de mest cpu-intensiva processerna överst i realtid?
top
Vilket kommando tar bort ägarens rättighet att läsa en fil?
chmod u-r
Vilket lösenord ska anges?
Nisse kör kommandot su -
Roots
Vilket lösenord ska anges här?
Nisse kör kommandot su - pelle
Pelles
Vilket lösenord ska anges här?
Nisse kör kommandot sudo passwd
Nisses
Vilket lösenord ska anges här?
Nisse kör kommandot sudo -u pelle passwd
Nisses
Följande står i crontab: “0** script”
Hur många gånger per dygn körs scriptet?
24 gånger
Hur får man ut de sista 25 raderna i en fil?
tail -25
Hur listar man filers attribut?
lsattr
Hur visar man hur mycket ledigt utrymme som finns på /-partitionen?
df /
Vad heter kernelfunktionen som möjliggör användandet av iptables?
netfilter
Hur skapar man en hård länk?
ln
Hur skapar man en mjuk länk?
ln -s
kommando1 && kommando2
kommando2 kör enbart om ?
kommando1 lyckades
kommando1 || kommando2
kommando2 kör enbart om?
kommando1 misslyckades
Vad innebär command substitution?
Att ett kommando körs. Den text som kommandot skickar till stdout hamnar på kommandoraden för nästa kommando.
command substitution har två olika syntaxer, vilka?
‘kommando’ (backqoutes)
eller
$(kommando)
När man pratar om processer, vad kallas Linux-datorns Adam och Eva?
init
Den har PID 1 och är den enda processen som inte har nån PPID (Parent Process ID)
Med vilket kommando kan man se vilka processer som man kör just nu?
ps
Hur visar man samtliga processer i systemet?
ps -aux
Vilket option ska man använda tillsammans med ps kommandot för att lista processer tillsammans med PPID (Parent Process ID)?
ps -eaf
Varje process som startas, startar från en existerande process, vad kallas detta?
Fork
Hur visar man processer i en trädstruktur?
pstree
Hur listar man aktiva jobb som körs i bakgrunden?
jobs
Hur kör man “jobb” i bakgrunden?
kommando &
Hur avslutar man ett jobb som körs i bakgrunden?
kör jobs kommandot och ta reda på vilken PID jobbet har sedan kör:
kill PID
Hur tar man fram ett jobb som körs i bakgrunden?
fg
När man ska starta om en tjänst använder man systemctl, hur ser syntaxen ut?
systemctl restart bind9
systemctl status apache2
osv.
Vad är cron?
En tjänst som väntar på att en viss tidpunkt ska inträffa och utföra då kommandon.
Hur editerar man crontab-filen?
crontab -e
I crontab-filen finns det 5 *, vad används de för?
från vänster till höger:
- minuter 0-59
- timmar 0-23
- dag i månaden 1-31
- månad 1-12
- dag i veckan 1-7 måndag - söndag
en * är ett wildcard som matchar allt.
Hur fungerar crontab?
crond kontrollerar aktuell tid varje minut och jämför med alla raderna i crontab.
om alla 5 tidsfälten matchar körs kommandot.
Skriv exempel på crontab-jobb och förklara hur ofta det körs.
• Exempel:
- 0 * * * * kommando
- kommando körs varje heltimme, alltså 24 gånger per dygn.
- 15 * * * * kommando
- Samma som ovan men kvart över varje timme, alltså 4 gånger per timme.
• 1 2 3 4 5 kommando
• kommando körs kl 02:01 den 3:e april, om den dagen
råkar vara en fredag.
Hur ser det ut när man vill ha crontab-jobb som ska ske varannan timme eller varje kvart?
Varannan timme:
0 */2 * * * kommando
Varje kvart:
0, 15, 30, 45 * * * * kommando
Vad är .deb-filer för slags filer?
Färdigkompilerade filer för Debian-baserade Linuxar.
Hur fungerar pakethanterare?
En pakethanterare installerar paket (.deb, .rpm) åt dig och håller koll på beroenden.
- söker i en databas över tillgängliga paket.
- visar paket som är kompatibla med ditt system.
- installerar åt dig, ställer nödvändiga frågor.
- kontrollerar att alla beroenden uppfylls.
Vilka är de vanligaste pakethanterarna för Debian och RedHat?
Debian-Linux = apt (Aptitude) t ex för Ubuntu och Kali
RedHat-Linux = yum t ex för CentOS
Vilka är de vanligaste kommandon som används med apt? (för att installera paket eller uppdatera)
- apt search paket = leta efter paket i lokala cachen av tillgängliga paket
- apt update = uppdatera cachen
- apt install paket = installera paket
- apt upgrade = uppgradera installerade paket
- apt dist-upgrade = uppgradera Linux-distributionen
apt-get remove paket = ta bort paket
Hur kommer det sig att locate kommandot kan hitta filer betydligt snabbare än ls kommandot?
locate använder sig av en indexerad databas över filsystemet.
Nackdelen är att den måste uppdateras med kommandot updatedb.
Vad använder man rsync till?
- kopiering av filer
- mer effektivt än cp / scp
- kan användas lokalt eller över nätet
Hur ser syntaxen ut för rsync?
rsync source destination
T ex:
-rsync /var/www/* /backup/
- rsync /var/log/* jimmy@10.0.0.123:/home/jimmy/loggar
- rsync root@1.2.3.4:/etc/passwd
Vad betyder de olika optioner i detta exemplet?
rsync -avz
- a = archive
- v = verbose
- z = compress
Vilka fördelar har rsync?
- överför inte filer som redan finns på destinationen
- differentiell backup, alltså filer som har ändrats senast en backup gjordes kommer att kopieras
- jämför filers tids-stämpel, storlek och ev hash
Vad innebär arkivering och komprimering i Linux?
- arkivering = lägger ihop flera filer till en.
- komprimering = gör filer mindre.
- zip, rar t ex gör både arkivering och komprimering.
Vad har vi för nytta av att använda arkivering och komprimering?
- hantera många filer/kataloger lättare.
- skapa backup av viktiga filer
- spara diskyta
- snabbare filöverföringar
Det finns två slags komprimering, vilka?
- lossy
- lossless
Vad är lossy komprimering?
Lossy komprimering tappar data som inte går att återskapa. Försämrar kvalitén.
T ex ljud, bilder, film
Vad är lossless komprimering?
Med lossless komprimering kan man återställa varenda bit av originaldatat. Mindre effektivt
T ex loggfiler, binärfiler, konfigurationsfiler
Vad gör följande exempel?
-gzip fil1
-gunzip fil1.gz
- gzip fil1 = skapar fil.gz och raderar originalfilen fil1
- gunzip fil1.gz = packar upp fil1.gz till fil1 och raderar originalfilen fil1.gz
vad står tar för?
tape archive
Vilka optioner är de vanligaste att använda med tar?
- f optionen används alltid för att kunna jobba mot en fil.
- cf = create, skapa arkiv
- tf = visa info om arkivet
- xf = extract, packa upp
- czf = skapa komprimerat arkiv
- xzf = packa upp komprimerat arkiv
Var hittar man systemets hårddiskar? Absoluta sökväg tack!
/dev
Vanligtvis är de döpta till sd*. Och det står för att “filen” är en block device.
Första hårddisken heter /dev/sda, andra sdb osv.
Med vilket kommando kan man lista systemets hårddiskar? (block devices)
lsblk
Den visar även ev mount points för varje partition.
Hur listar man alla aktuella mounts?
mount
Ge exempel på de tre vanligaste filsystem.
- FAT
- FAT32
- NTFS
Vad är en swap-partition?
swap-partitionen följer oftast med ett Linux-system. Swap har inget filsystem och den används endast av kerneln som virtuellt minne när RAM tar slut.
Med vilket kommando skapar vi ett nytt filsystem?
mkfs för att skapa ext2-filsystem
Vad är alias och hur skapar man det?
alias används i bash för att göra kortkommandon.
T ex:
alias dir=”ls -al”
Med vilket kommando visar man ledigt utrymme per filsystem?
df
Vad är regexp?
Regular Expressions, det är språk/syntax för att söka i text.
Med hjälp av regexp, vad matchar följande tecken?
.
[ ]
*
+
$
- . = (punkt) matchar exakt ett valfritt tecken
- [ ] = matchar exakt ett tecken. Tecknet måste vara listat inom brackets eller del av range
- = (asterisk) matchar 0 eller flera av föregående tecken.
Inte lika användbart då det matchar alla rader
- = (asterisk) matchar 0 eller flera av föregående tecken.
- = (plus) matchar en eller flera av föregående tecken.
Det ska användas tillsammans med egrep eller grep -E
- = (plus) matchar en eller flera av föregående tecken.
- ^ = (caret eller tak) matchar början av raden.
- $ = matchar slutet på raden
Det finns två olika sätt att köra kommandon som root, vilka?
su -
sudo kommando
Vilka är de 3 special bits?
Bonus! Vad har de för oktalt värde?
setuid
oktalt värde = 4000
(chmod u+s)
setgid
oktalt värde = 2000
(chmod g+s)
sticky
(chmod o+t)
Hur ändrar man en fils attribut?
chattr filnamn