Permalänk
Inaktiv

linux delar av laboration6

Hej, behöver hjälp i en Linux kurs som jag läser. Vi som läser den uppmuntras att ta hjälp av lärare i just denna kursen. Löste laboration 4 och 5 själv. Har gjort större delen av laboration 6 och behöver hjälp med att förstå och göra följande:

Uppgift 3
Installera en NFS-server och NFS-klient. Ställ in dem så att katalogen /srv/data görs läsbar för hela det lokala nätverket men skrivbar endast från en maskin. Om man inte har flera
maskiner i LAN:et, exempelvis om man installerat på en Raspberry Pi, så kan man installera
server och klient på samma maskin. Men då måste man testa genom brandväggen, d.v.s.
montera NFS genom maskinens nätverksadress och inte genom localnet (127.0.0.0/8)
eller localhost (127.0.0.1). Redovisa de kommandon du använder samt hur inställningsfilen ser ut.

Eller ok. "Uppgift 3..." försöker jag själv med först då jag inte har försökt med den innan. Tack på förhand ni kunniga och hjälpsamma sweclockare.

Permalänk
Sötast

Du har glömt att ställa din fråga till oss.

Permalänk
Inaktiv

Hm nu när jag läser igen förstår jag att det var inga uppgifter till kursen utan bara info. Återkommer med vad jag verkligen behöver hjälp med i den här uppgiften.

Här är i alla fall en sak som jag undrar:
Uppgift 2
Installera apache2 (eller någon av de andra befintliga webbservrarna) i din server. Ändra
innehållet i webbsidan (index.html) så att den inte har standardvärdet. Titta sedan på
sidan via lämplig URL, som exempelvis http://localhost/ om ni kör webbläsaren på
samma maskin som apache2. Annars så kan ni prova http://server/ om ni kör webbläsaren från någon annan maskin. Eventuellt så kan ni behöva använda IP-adressen till
servern istället för namnet server. Dokumentera vilka kommandon nu kör samt vilka filer
ni ändrar i. Det skall vara lätt att följa vad ni gjort. Visa med en skärmdump från webbläsaren att standardsidan index.html är ändrad.

Så här ser det ut i min webbläsare när jag har gjort uppgiften och jag undrar om det är rätt, för hittar ingen info om vad standardvärdet är eller var det finns. Är det samma som stanza- värde? Har jag klarat uppgiften om man kollar på mina bilder?

Vore schysst om ni gör skärmdumpar av Linux terminal som ni ritar, stryker under eller gör annat i för att få mig att fatta eller åtminstone göra rätt.

Permalänk
Inaktiv

Glömde visst.

Permalänk
Medlem
Citat:

Ändra
innehållet i webbsidan (index.html) så att den inte har standardvärdet

Behöver instruktionen verkligen vara tydligare än så?

Se till att sidan säger ”Övning 2 - sn11” i stället för ”Apache2 Debian Default Page” eller gör någon annan liknande övertydlig ändring.

Permalänk
Inaktiv

Aha. Man kunde visste bläddra ner och hitta den raden. Tack, Kad. Ändrade den, sparade, öppnade filen med nano igen och såg att ändringarna hade sparats.

Permalänk
Inaktiv

apache2 är felinstallerat men kan inte installera det rätt och ufw verkar startas men sudo ufw status visar ändå att ufw är inaktivt. Hur löser man det?

apache2 är felinstallerat men kan inte installera det rätt och ufw verkar startas men sudo ufw status visar ändå att ufw är inaktivt. Har fil /etc/exports konfigurerats rätt? Kommenterade bort koden och lade till flera rader som följde kurslitteratur och ai -robotar då jag tänkte ut att det måste vara bäst och att kurslitteraturen kan vara obsolet och inaktuell, men det verkade inte hjälpa.

Hur löser man de här sakerna så att uppgift 3 och uppgift 4 här under blir lösta?

NFS
För att dela filer i ett lokalt nätverk finns det många protokoll att använda. Exempelvis så
kan man använda protokollet NFS (Network File System) för att dela filer, framförallt mellan Linux/Unixdatorer. För att dela filer (och skrivare) med MS Windows-maskiner så använder man vanligen SMB/CIF (Server Message Block/Common Internet File System), även
om NFS fungerar med.
Eftersom vi håller på med Linux, så kommer vi att titta på NFS. NFS finns med direkt i Linux,
men man behöver installera några paket på klienten som skall använda NFS och några
andra paket på NFS-servern. Då kan man göra kataloger och underkataloger tillgängliga
över nätverket.
NFS kommer i (minst) två varianter, NFS version 3 (och lägre) samt version 4. NFSv4 är
krypterad och förbättrad jämfört med NFSv3. Dessutom så kan den se till att samma användarnamn fungerar mellan klienten och servern utan problem, även om de har olika uid
och gid i klienten och servern. Den översättningen görs då automatiskt av NFSv4.
Högskolan i Gävle Sida 5 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
Men om man behöver använda NFSv3, så är det mycket fördelaktigt om man se till att alla
maskiner som använder NFS har samma värden för en användare/grupp i /etc/passwd
och /etc/group. Det som är viktigt är att användarna med samma namn har samma användar-id (uid) samt att alla grupper med samma namn har samma grupp-id (gid) på alla
maskinerna. Annars kan man bli lite förvirrad när en användare på servern plötsligt dyker
upp under ett annat namn på klienten när man gör ls -l. Linux använder nämligen bara
uid och gid för att avgöra användar- och gruppnamn. Så när man loggar in så letar Linux
upp namnet i /etc/passwd och så använder det uid och gid som identitet på vilken användare man är och vilken grupp man tillhör. Se manualsidorna för passwd(1),
passwd(5) och group(5).

NFS-klient
För att använda NFS från en klient så installerar man paketen nfs-common och rpcbind
(tjänsterna fanns tidigare i paketen nfs-client och portmap, vilka kan dyka upp i äldre
instruktioner).
När de är installerade kan man montera (göra tillgänglig) filsystem från servern med kommandot mount(8), som med andra filsystem. Så om man vill göra alla filer och kataloger
från servern srvr i katalogen /srv/home/kalle tillgängliga i katalogen /home/kalle, så
kan man skriva mount srvr:/srv/home/kalle /home/kalle. Detta förutsätter att
katalogen /home/kalle redan existerar.
Vill man att katalogen skall monteras varje gång som maskinen startar, så kan man skriva in
en ny rad i /etc/fstab, så kommer monteringen att ske automatiskt. Den kan se ut så här:
srvr:/srv/home/kalle nfs /home/kalle nfs default 0 0
För att se vilka filsystem som en server exporterar med NFS, så kan man med fördel använd
kommandot showmount -e srvr från en klient (eller servern själv).

NFS-server
För att göra /srv/home/ (eller /srv/home/kalle/) tillgänglig från servern, så måste man
först installera paketen för NFS-server, nfs-kernel-server, nfs-common och rpcbind.
Man kan även kontrollera att översättningen mellan användarnamn fungerar, genom att
kontrollera att i filen /etc/default/nfs-common står NEED_IDMAPD=YES.
Sedan ser man till att konfigurationsfilen /etc/exports innehåller en rad som gör
/srv/home/ (eller /srv/home/kalle/) tillgänglig över NFS. När man gör det kan man
Högskolan i Gävle Sida 6 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
begränsa så att bara vissa maskiner eller nätverk kan montera och använda katalogen. Man
kan även begränsa så att de bara kan läsa filer. Exempel på en rad kan se ut så här (notera
att raden är så lång, så att den automatiskt bryts här):
/srv/home 192.168.2.0/24(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
www.first.com(ro)
Denna rad gör att allt under katalogen /srv/home är läs- och skrivbart från hela nätet men
bara läsbart från maskinen www.first.com. Normalt har man mer specifik i början, men
här går det bra, så länge som www.first.com inte finns i det privata nätet
192.168.2.0/24.
Notera att maskiner som skrivs efter en annan maskin får samma inställningar som föregående maskin, förutom de förändringar som står inom parenteserna för de maskinerna. Se
manualsidan för exports(5) samt dokumentationen för paketen som är installerade i
kataloger under /usr/share/docs.

Uppgift 3
Installera en NFS-server och NFS-klient. Ställ in dem så att katalogen /srv/data görs läsbar för hela det lokala nätverket men skrivbar endast från en maskin. Om man inte har flera
maskiner i LAN:et, exempelvis om man installerat på en Raspberry Pi, så kan man installera
server och klient på samma maskin. Men då måste man testa genom brandväggen, d.v.s.
montera NFS genom maskinens nätverksadress och inte genom localnet (127.0.0.0/8)
eller localhost (127.0.0.1). Redovisa de kommandon du använder samt hur inställningsfilen ser ut.
Del tre
Här ska vi skydda server genom att installera en brandvägg. Vi kommer att använda oss av
ufw (uncomplicated firewall) eftersom den är lite enklare att hantera än kraftfullare brandväggar, som t.ex. shorewall.
Alla brandväggar i Linux baseras på iptables2
(respektive ip6tables för IPv6), men
eftersom det är så komplicerat att sätta upp en korrekt brandvägg med iptables, så används programmen ufw eller shorewall för att gör det enklare att konfigurera brandväggar. Dessa program använder enklare regler som sedan görs om till iptables.
2 För närvarande så håller Linux-världen på att byta ut iptables mot nftables.
Kommandot nft kommer då att ersätta flera olika verktyg (iptables, ip6tables etc.). Se
Wikipedia för mer information.
Högskolan i Gävle Sida 7 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
Brandväggsprogrammet ufw har stöd för IPv6 redan från början, vilket är en fördel jämfört
med många andra brandväggsprogram. För att veta vilka tjänster som används på maskinen så kan man använda nmap eller netstat. Då vet man vilka tjänster som används, och vilka som skall skyddas.
Grunden när det gäller datorsäkerhet är att begränsa tillgången till det minimala. Det vill
säga att se till att så få tjänster är igång som möjligt, samt att de som är igång har så begränsad tillgång som möjligt från nätet. Lämpligen görs det genom att blockera allt, och sedan ta
bort blockeringen på tjänster allt eftersom man ser att man behöver access till tjänsterna
som man blockerat.
När man ställer in en brandvägg, så avgör man först vad man skall göra om inget annat sägs.
Detta görs genom att ställa in ett standardvärde. En brandvägg kan göra tre saker på varje
försök till anslutning över nätverket. Den kan godkänna anslutningen, ACCEPT; den kan tala
om att anslutning inte är tillåten, REJECT; eller så kan den bara ignorera anslutningen,
DROP.
ACCEPT betyder att anslutningen fortsätter som om brandväggen inte fanns, medan de andra två hindrar anslutning. Vad är då skillnaden mellan REJECT och DROP? REJECT skickar
ett ICMP-meddelande tillbaka och talar om varför anslutningen nekats. DROP slänger bara
bort paketet och den andra datorn får inte veta varför den inte fick ansluta till maskinen
och porten.
Att göra REJECT är snällare än DROP eftersom avsändaren inte behöver vänta så länge innan den får reda på att anslutningen inte fungerar. Men är man väldigt försiktig, så använder man kanske hellre DROP. Detta eftersom ICMP-meddelandet från REJECT talar om att det
finns en maskin på den adressen, vilket någon som attackerar kan använda sig av. Vilket
man använder är upp till var och en, men standardinställningen för inkommande TCP/UDP
är att neka anslutning med REJECT eller DROP.
Därefter tillåter man varje anslutning som behöver anslutning explicit. Då minimeras risken
att man av misstag tillåta något man inte vill tillåta. Om man glömmer att tillåta någon port/
tjänst, så märker man det normalt ganska snart. Men om man glömmer att stänga en tjänst,
så är det inte säkert att det upptäcks i tid.
Om man har sin server bakom en s.k. NAT, så måste NAT:en i brandväggen konfigureras så
att anslutningar mot tjänsten skickas vidare in i LAN:et. Det kan göras på flera sätt, exempelvis så kan man sätta att bara en viss port-anslutning från Internet skickas till en specifik
maskin. Eller så kan man säga att alla anslutningar från Internet (som inte är speciellt specificerade ovan eller som brandväggen själv använder) skickas till en speciell maskin, som
Högskolan i Gävle Sida 8 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
brukar kallas DMZ-host (demilitarized zone). Den maskinen måste man då vara noga med,
eftersom en angripare kan komma åt hela ditt nätverk om den maskinen komprometteras
(hackas).
Detta innebär att man bara kan ha en IPv4-server, som ju har minst en tilldela port, hemma
som man har åtkomst via internet. Det kan lösas genom att man kan ha vissa tjänster, som
webbserver, tillgänglig på andra portar (som port 80 och 8080 för webbservrar). Allt detta
p.g.a. att IPv4- adresserna har tagit slut. Dessa begränsningar finns inte med IPv6, som vi
skall titta på i projektet.

Brandväggen i servern med ufw
Det första man gör är lämpligen att installera paketet ufw. Kontrollera därefter i filen
/etc/default/ufw att inställningarna ser bra ut, d.v.s. att IPv6-stödet är aktiverat.
Sedan ställer man in standardinställningen för inkommande TCP/UDP genom brandväggen.
Man kan då ställa in allow, deny eller reject. Inställningen allow är samma som ACCEPT,
deny är samma som DROP och reject är samma som REJECT i iptables.
sudo ufw default reject
Man kan även ställa in hur mycket data man vill skriva i loggen om en nekad anslutningar
(vanligtvis logg-filen /var/log/syslog, kom ihåg tail -f /var/log/syslog i ett annat
terminalfönster för att lätt se vad som händer i servern i realtid). Det kan vara bra att ha
ganska mycket information i loggen i början, för att sedan minska ned hur mycket man vill
skriva i loggfilen när man vet att det fungerar. Så här slår man på loggningen.
sudo ufw logging on
Så för att ställa in brandväggen så tar man först reda på vilka portar man vill tillåta, vilket
görs med allow. Normalt är det SSH, så att man kan ansluta med programmet ssh(1) för
att administrera datorn. Eftersom ssh är krypterat, så är det ok, ingen kommer att kunna
avlyssna nätverket och se lösenord, som man kan med exempelvis telnet och ftp. Därför,
undvik dessa protokoll. Vissa protokoll, som ssh, kan man lämpligen begränsa antalet anslutningar per minut från samma maskin, vilket görs med limit. Exempelvis så kan det se
ut så här.
sudo ufw allow app OpenSSH
sudo ufw limit app OpenSSH
Högskolan i Gävle Sida 9 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
När det är gjort, så kan man aktivera brandväggen. Notera att man först godkänner att man
ansluter till SSH innan man startar brandväggen. Om man inte gör det, så kan av misstag
låsa ut sig själv från maskinen när brandväggen aktiveras. Kommer man då inte åt maskinen fysiskt, kan det bli jobbigt.
sudo ufw enable
Sedan så tillåter man var och en av de andra tjänsterna. Då kan man tala om ifall tjänsten är
tillgänglig från hela Internet, från vissa nätverk, eller vissa datorer. Det gör man genom att
skriva ett ufw-kommando för var och en av tjänsterna. Då kan man även specificera om
man vill ha extra loggning etc. för varje rad. När man är klar, så skriver man ut status så att
man kan se hur brandväggen är inställd.
sudo ufw status
Om man vill återställa brandväggen i ursprungsläge, så går det enkelt att göra med kommandot sudo ufw reset. Man kan även lägga till eller ta bort regler som är inlagda ett i
taget genom att ange vilket radnummer som regel skall läggas till som eller vilken som skall
tas bort.
Notera att reglerna används i den ordning de listas av ufw status. Så se till att mera specifika regler står före de mer allmänna reglerna. Vill man tillåta en maskin i det lokala nätverket men inte de andra, så tillåt först den enskilda maskinen innan regeln för att neka alla
andra läggs in. Notera även att man vanligtvis bara skriver regler om inkommande anslutningar.
Andra möjliga inställningar med ufw är att man begränsar antal anslutningsförsök till 6 st
under senaste 30 sekunderna. Om det blir fler, så stängs alla anslutningar från den maskinen som den regeln bevakar under en längre tid. Detta görs med limit och är lämpligt för
ssh, men inte webbservern. Läs gärna manualsidan för ufw(8).

Uppgift 4
Ställ in brandväggen för servern så att alla maskiner kan komma åt SSH och HTTP, men
bara maskiner i det lokala LAN:et kan komma åt NFS-tjänsterna. Notera att det är flera
portar som används av NFS. Ställ in att antalet uppkopplingar mot SSH från samma adress
begränsas med limit.
Ställ in så att maskinen som du kör nmap från inte kommer åt HTTP. Redovisa vilka kommandon ni har använt samt resultatet. Det sista gör ni lämpligen med ufw status.
Högskolan i Gävle Sida 10 av 12 Anders Jackson
Laboration 6 Introduktion till Linux och små nätverk 2021-02-07
Demonstrera hur brandväggen fungerar med nmap, d.v.s. vilka anslutningar som blockeras
och vilka som tillåts, dels från servern och dels från en annan maskin. Om ni inte har möjlighet att göra demonstrationen, visa mot någon annan maskin hur nmap fungerar, exempelvis
maskinen www.hig.se , abacus.student.hig.se och rigel.hig.se.