Ubuntu Nas
Konfiguration

Nu hvor vi har installeret grundstammen i vores NAS, og konfigureret netværket, så skal vi til at sætte tjenester og programmer op.

Jeg vil anbefale at du anvender ssh til dette, da det vil give dig mulighed for at kopiere kommandoer og konfigurationsfiler fra denne hjemmeside.

SSH

Så længe serveren kun bliver brugt lokalt kan man egentlig nøjes med den grundopsætning som den kommer med.

Jeg vil dog anbefale at man laver to ændringer, som begge skal laves i filen /etc/ssh/sshd_config:

Lav en backup og åbn filen med kommandoen:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup sudo nano /etc/ssh/sshd_config

Fjern root adgang

På denne måde sikrer man sig at brugeren kun har de rettigheder, som der er givet på NAS-serveren

Indsæt følgende i bunden_

PermitRootLogin no

Ændr tilladte brugere

Her kan du administrere hvem der har adgang til at bruge ssh

Gå ned i bunden af filen og tilføj linien (hvor du erstatter tj med dit brugernavn):

Allowusers tj

Aktiver ændringer

For at aktivere vores ændringer skal vi genstarte tjenesten:

sudo service ssh reload

Webserver

For at kunne tilgå vores server fra en browser skal vi først have installereret LAMP, som er en komplet webserverløsning til Linux.

Først installerer vi tasksel

sudo apt install tasksel

Herefter installerer vi LAMP-serveren ved hjælp af tasksel

sudo tasksel install lamp-server

Tjek at webserveren kører ved at indtaste serverens IP-adresse i en browser:

Konfigurer MySQL

Som standard er MySQL serveren sikret ved hjælp af en funktion der hedder Unix_socket. Den betyder at brugere der er oprettet på serveren, og som har en database ved sammen navn/password kan logge ind uden at angive password. Denne Feature beholder vi fordi det sikrer, at kun lokale brugere har adgang til databasen på vores NAS.

For yderligere at højne sikkerheden kører vi nedenstående script

sudo mysql_secure_installation

Herunder er der en gennemgang af scriptet

Sæt root password

Hvis man ønsker at databasen skal være styret af passwords, kan man her sætte minimumskravene til passwords og lave et MySQL root password. Uanset hvad du sætter dette password til, vil det blive forbigået af Unix_socket.

  • Password kontrol
  • For at sikre at brugerne vælger gode passwords kan man oprette en funktion der kontrollerer dette.

    Her er den sat til niveau 0, som reelt kun sikrer at det er over 8 tegn langt. Skal den i produktion (anvendes i tilgængelige miljøer) bør man vælge niveau 2

  • Sætte password
  • Indtast og genindtast det valgte root-password-

tj@nas:~$ sudo mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Please set the password for root here.

New password: ← Indtast root-passwordEnter

Re-enter new password: ← Genindtast root-passwordEnter

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Fjern anonyme brugere

MySQL har som standard installeret nogle anonyme brugere. De er gode til test, men vi vælger at fjerne dem.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.

Root fjernadgang

Man bør også fjerne muligheden for at root-brugeren kan tilgå databasen fra andre maskiner en den, som den er installeret på. Skal MySQL administreres over netværk bør det være over en SSH forbindelse

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

Fjern test-database

MySQL kommer med en testdatabase installeret. Den er ikke nødvendig, så vi fjerner den

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Genindlæs database

For at få ændringerne til at slå igennem genindlæser vi databasen.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Test database

For at teste at databasen er konfigureret korrekt logger vi ind på den:

tj@nas:~$ sudo mysql -u root -p
[sudo] password for tj: ← Indtast system password
Enter password: ← Indtast mysql root-password
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.22-0ubuntu18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> quit ← Indtast "quit", for at afslutte MySQL
Bye
tj@nas:~$

Installer WebMin

Webmin bliver af forskellige årsager ikke tilbudt ved hjælp af de normale repositories. Derfor skal vi lave lidt indledende arbejde selv (brug samme metode som ovenfor)

Vi skal:

  1. Tilføje Webmins eget repository
  2. Installere en GPG-nøgle, sådan at vi sikerer os at opdateringerne kommer fra den rigtige kilde
  3. Opdatere vores repositories
  4. Installere apt-transport-https og webmin.

Udfør:

  • Tilføj følgende linie i bunden af /etc/apt/sources.list
  • echo 'deb https://download.webmin.com/download/repository sarge contrib' | sudo tee -a /etc/apt/sources.list
  • Tilføj GPG-nøgle
  • wget http://www.webmin.com/jcameron-key.asc sudo apt-key add jcameron-key.asc
  • Opdatere repositories
  • sudo apt update
  • Installere Webmin
  • sudo apt-get install -y apt-transport-https webmin

Første start af Webmin

Læg mærke til følgende i output fra installtionen:

Webmin install complete. You can now login to https://NAS:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.

Da vi ikke har sat vores server op med DNS, skal vi anvende IP-adressen i stedet. Indtast 192.168.0.10 i browseren

Grunden til at vi bliver advareret er, at browseren ikke kan finde noget certifikat - hvilket vi heller ikke har lavet. Klik på AVANCERET

Vælg: Fortsæt til 192.168.0.10 (usikkert).

Log ind med din almindelige bruger, da han er en del af sudo-gruppen:

Nu er webmin installeret. Du kan bruge webmin til at administrere din server, men det går ud over denne guides.

SAMBA

Samba installeres med følgende kommando:

sudo apt install samba -y

Backup

Er du ikke vant til at arbejde med konfigurationsfiler, så bør du lave en backup af konfigurationsfilen (smb.conf). Det gør du med følgende kommando.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup

Hvis vi senere laver fejl kan vi komme tilbage til udgangspunktet med kommandoen:

sudo cp /etc/samba/smb.conf.backup /etc/samba/smb.conf
Hvis du mister overblikket

Hvis du i løbet af guiden kommer til at lave fejl og har brug for at lave en helt ny installation skal du anvende følgende kommando.

sudo apt purge samba samba-common

Herefter skal du geninstallere SAMBA og starte forfra på guiden.

sudo apt install samba -y

Generel konfiguration

Indsæt følgende i bunden af filen /etc/samba/smb.conf for at lave den overordnede kjonfiguration:

sudo nano /etc/samba/smb.conf [global] workgroup = NAS server string = Samba Server %v netbios name = NAS security = user map to guest = bad user dns proxy = no

Workgroup navnet er det navn som din NAS-server bliver genkendt med i resten af systemet.

Genstart SAMBA

sudo systemctl restart smbd nmbd

Sambabrugere

SAMBA er en tjeneste der kører på Linux og brugere på systemet skal tilføjes til SAMBA, for at de kan anvende tjenestenen. I dette afsnit skal vi lære at:

  • Tilføje brugere til NAS-serveren
  • Tilføje grupper til NAS-serveren
  • Tilføje brugere til SAMBA

Tilføj brugere (NAS)

Brugere tilføjes med følgende kommando:

sudo adduser *brugernavn*

Her er et eksempel med forklaringer til:

tj@nas:~$ sudo adduser test
[sudo] password for tj: ← indtast dit root password og tast Enter
Adding user `test' ...
Adding new group `test' (1006) ...
Adding new user `test' (1001) with group `test' ...
Creating home directory `/home/test' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ← indtast ny brugers password og tast Enter 
Retype new UNIX password: ← gentag ny brugers password og tast Enter  
passwd: password updated successfully
Changing the user information for test
Enter the new value, or press ENTER for the default
	Full Name []: ← Tast Enter 
	Room Number []: ← Tast Enter 
	Work Phone []: ← Tast Enter 
	Home Phone []: ← Tast Enter 
	Other []: ← Tast Enter 
Is the information correct? [Y/n] y ← Tast y 

Tilføj grupper (NAS)

Hvis man vil have at flere brugere skal have samme rettigheder til forskellige ressourcer på NAS-serveren sætter man dem sammen i grupper.

Grupper oprettes med følgende kommando:

sudo addgroup *gruppenavn*

Brugere tilføjes med kommandown:

sudo adduser *brugernavn* *gruppenavn*

Herunder oprettes gruppen systemadmin og vil tilføjer vores oprindelige bruger til den (her tj).

sudo addgroup systemadmin sudo adduser tj systemadmin

Vi kan controllere om brugeren tj er i gruppen ved hjælp af følgende kommando:

tj@nas:~$ cat /etc/group | grep smbgrp
systemadmin:x:1005:tj ← Gruppens brugere står til sidst

Tilføj brugere (SAMBA)

Sambabrugere administreres seperat fra brugerne på systemet, så de skal tilføjes, hvis man ønsker at ens delinger skal have beskyttet brugeradgang.

Her tilføjer vi brugeren tj (erstat med din bruger)

sudo smbpasswd -a tj
tj@home:/srv$ sudo smbpasswd -a tj
New SMB password:  			← indtast samba-kodeord
Retype new SMB password:	← gentag samba-kodeord
Added user tj.

Hvis du senere har brug for at ændre brugerens password bruges samme kommando.

Intet password

Hvis brugeren ikke skal have noget password bruger du kommandoen:

sudo smbpasswd -n *brugernavn*

Delinger

Her vil vi oprette to typer delinger. Delinger der er åben for alle og delinger der er brugerbegrænsede.

Mappe Ejer Gruppe Alle Beskrivelse Placering
Fælles Læse/skrive Læse/skrive Læse/skrive Til forefaldende filer /srv/fælles
System Læse/skrive Læse/skrive - Systembackup osv /srv/system
tj Læse/skrive - - Private filer /srv/tj

Læg mærke til at jeg har givet min egen bruger (tj) sin egen mappe. Den skal erstattes med dit brugernavn.

Her er der vist nogle forskellige setups, men i praksis vil

Opret mapper

sudo mkdir -p /srv/fælles /srv/system /srv/tj

Sæt rettigheder

Sæt rettigheder på fælles

sudo chown -R nobody:nogroup /srv/fælles sudo chmod -R 775 /srv/fælles

Sæt rettigheder på system

sudo chown -R root:systemadmin /srv/system sudo chmod -R 775 /srv/system

Sæt rettigheder på tj

sudo chown -R tj:tj /srv/tj sudo chmod -R 700 /srv/tj

Vi kontrollerer at alt er sat korrekt op

tj@home:/srv$ ls -al /srv
total 24
drwxr-xr-x  6 root   root        4096 May 13 19:30 .
drwxr-xr-x 23 root   root        4096 May 12 08:07 ..
drwxrwxr-x  3 nobody nogroup     4096 May 13 20:00 fælles
drwxrwxr-x  2 root   systemadmin 4096 May 13 19:30 system
drwx------  2 tj     tj          4096 May 13 19:30 tj

Konfigurer delinger

Jeg har i denne guide valgt 4 grundlæggende delingsformer, som er praktiske at kende til på en NAS. Brugere kan oprettes ved hjælp af deres home mappe i systemet, men det vil kræve ekstra administration.

De er sat op på følgende måde:

Fælles (Alle) System (Gruppe) tj
Alle har skrive/læse adgang Gruppe har skrive/læse adgang Bruger har skrive/læse adgang
Konfigurer Fælles

Denne mappe skal være tilgængelig for alle på nettet uden kodeord.

[fælles] path = /srv/fælles browsable =yes writable = yes guest ok = yes read only = no public = yes force user = nobody Konfigurer System [system] path = /srv/system browsable =yes writable = yes guest ok = no read only = no Konfigurer tj [privat] path = /srv/privat browsable =yes writable = yes guest ok = no read only = no

Genstart Samba

sudo systemctl restart smbd nmbd

Flere brugere

Hvis man ønsker flere brugere der skal anvende NAS'en