HomeLab 4. dio — File server instalacija

Dickobraz
10 min readMar 4, 2024

--

Nastavak serije članaka o HomeLabu. Nakon što smo instalirali Proxmox, kreirali prvu virtualnu mašinu (VM) na njemu, vrijeme je za kreiranje File servera koji će nam poslužiti kao dijeljeni mrežni disk, ne samo za naš HomeLab nego za cijelu kućnu mrežu. Za taj servis iskoristit ćemo vanjski USB disk.

Članci iz serijala:

Da li je ovo nužni korak? Treba li nam ovo? Pa, ako ćemo iskreno, i ne baš. Možemo kreirati particiju na samom Proxmoxu i dodijeliti ga VMu kao mjesto za spremanje video sadržaja. Isto tako, korištenje vanjskih USB diskova nije baš preporučljivo. Pogotovo ako će se često koristiti za download/upload. Idealno rješenje za takve slučajeve bi bio neki NAS (Network-attached storage), ali za moje potrebe to mi je overhead, jer nemam namjeru (za sada) previše skidati i koristiti taj disk. A druga, podjednako važna stvar je — tišina. Ne želim slušati buku ventilatora iz NASa, jednako kao što ne želim ni gledati u NAS. Zato je ovako rješenje meni, za sada prihvatljivo. Tim prije što na ovaj način uvijek imam dostupan disk na LANu za razne potrebe koje imam ili bih mogao imati.

Krenimo sa vodičem kako instalirati File Server

Prvi korak je logiranje kao root na naš mini server (ako ste pratili vodič do sada znate da se to može učiniti na 2 načina, preko Puttya ili preko Administratorskog sučelja Proxmoxa, gdje se odabira opcija “>_ Shell”.

Nakon što se ulogiramo u miniserver treba upisati slijedeću komandu:

pveam update

Ovo će, među ostalim, osvježiti listu templateova koje ćemo koristiti za kreiranje File Servera. Ovaj put nećemo raditi Virtualnu mašinu (VM) nego ćemo File Server smjestiti u Linux Container. Za sada se možemo odlogirati sa miniservera, jer nam više neće trebati.

Prije nego krenemo sa kreiranjem LXC (Linux Containera) u koji ćemo smjestiti File Server, trebalo bi spojiti vanjski USB disk. Nakon što je disk spojen na miniPC, pojavit će se u listi “Disks”.

  • Ako se na disku nešto nalazi, sada je vrijeme da se to obriše na način da se odabere disk i iz gornjeg menija odabere “Wipe Disk”.
  • Slijedeći korak je odabir “LVM” opcije (odmah ispod opcije “Disks”) te klik na “Create: Volume Group”
  • U novom prozoru odaberemo USB disk, dodamo mu naziv (“media” u mojem slučaju), uključimo opciju “Add Storage” ako nije uključena i kliknemo na “Create”

Time je vanjski USB disk spreman za korištenje unutar File Servera

Instalacija File Servera (Samba)

Ranije je spomenuto da ćemo za File Server koristiti LXC (Linux Container) i za to ćemo koristiti Turnkey templateove (koje smo updatali na samom početku vodiča). Zašto baš njih?! Pa zato što u njima dobijamo jednostavno web sučelje za konfiguraciju.

Izbornik “CT Templates” se nalazi kada odaberemo “local”

Klikom na “Templates” otvara nam se prozor sa odabirom templateova (ima ih). U “Search” upišite “file” i ostat će vam samo “turnkey-fileserver”. Označite ga i kliknite na “Download”.

Pričekajte da se template downloada, te nakon toga odaberite opciju “Create CT” (prvi vrhu desno).

Otvara se prozor u kojem, kroz nekoliko koraka definiramo parametre našeg LXCa.

  • pod “Hostname” upišite naziv tipa “TurnkeyFS”
  • pod “Password” upišite password koji se ponavlja u “Confirm Password”. Prilikom prvog logina ovaj password ćemo promijeniti.
  • kliknite na “Next”
  • Na slijedećem ekranu odaberite “debian-11-turnkey-filserver” pod “Template”. Kliknite na “Next”.
  • Na “Disk” dijelu ćemo dodati još jedan disk (vanjski USB disk) klikom na “Add”. Odaberemo novo dodani disk. Pod “Storage” odabrat ćemo USB disk (ja sam ga ranije nazvao “media”), upišemo veličinu u GiB koju ćemo dodijeliti File Serveru, te upišemo path (kod mene “/media”) te isključimo opciju “Backup”. Klik na “Next”.
  • Pod “CPU” stavio sam 2 jezgre (“Cores”), zatim “Next”
  • Kod “Memory” postavio sam 1024 MiB
  • Pod “Network” ima promjena. Kod “IPv4” odaberite opciju “Static” te u polje “IPv4/CIDR” upišite IP adresu koju će server imati. Kod mene je adresa “192.168.0.166/24”, a “Gateway” je “192.168.0.1”. Opet ću napomenuti da kod vas ne mora biti isto. Ove adrese sam odabrao zato jer:
    — na IPu 192.168.0.164 se nalazi Proxmox, a na IPu 192.168.0.165 Virutalna Mašina (VM) koju smo instalirali ranije.
    — IP adresa 192.168.0.166 na mom LANu je slobodna (nitko je do sada nije zauzeo).
    Kod vas situacija može biti drugačija. Provjerite.
  • I to je sve što se tiče konfiguracije, jer na “DNS” i “Confirm” ekranima ne mijenjamo ništa.
  • Prije klika na “Finish” uključite opciju “Start after created”. Time će se nakon kreiranja LXCa isti odmah i pokrenuti.

Nakon što se završi kreiranje LXCa on će se odmah startati i biti vidljiv unutar Proxmoxa.

Linux Container je uspješno kreiran i pokrenut, sada nam slijedi konfiguracija servera za naše potrebe.

Prvo što ćemo napraviti jest ulogirati se kao root u novokreirani File Server, preko opcije “>_ Console”. Root password je onaj koji smo kreirali prilikom kreiranja LXCa.

  • Nakon logina odmah će se pojaviti ekran za promjenu root passworda. Stoga, unesite novi root password, te ga ponovite na slijedećem ekranu.
  • Na ekranu “Initialize Hub Services” odabiremo opciju “<Skip>”
  • “<Skip>” biramo i na slijedećem ekranu “System Notifications…”
  • Na ekranu “Security updates” biramo opciju “<Install>”
  • Nakon što je sve završilo, trebao bi se pojaviti slijedeći ekran, na kojem se vidi kako doći do web sučelja za administraciju. Zapišite adresu (u mojem slučaju je to 192.168.0.166 te je upišite u web browser. Konzolu možete zatvoriti jer nam više neće trebati.

Web admin konfiguracija

Unošenjem adrese u browser pojavit će vam se slijedeći ekran:

Početni ekran admin sučelja za File Server
  • Klikom na Webadmin pojavit će se ekran sa informacijom o “nesigurnoj vezi” — isto kao i kada smo se po prvi put spojili na Proxmox admin sučelje. I u ovom slučaju radimo isto — klik na “Advanced” pa zatim na link “Proceed to 192.168.0.166 (unsafe)”
  • Sad se pojavljuje ekran za unos korisničkog imena i passworda za web admin. Upisujete podatke od root accounta (root kao username i odgovarajući password u password polje).
  • U hrpi opcija za konfiguriranje, krenut ćemo od korisnika, klikom na “Users and Groups” opcija koja se nalazi pod “System”.
  • Pojavit će se lista kreiranih korisnika, a klikom na “Create a new user”, otvara se novi ekran sa formom za kreiranje korisnika
  • Na ovom ekranu potrebno je samo unijeti “Username”, ostalo se ne treba mijenjati. Nakon unosa korisničkog imena kliknuti na “Create”
  • Novokreirani korisnik se pojavio na dnu liste. Sada kliknite na “Local Groups”, pa na “Create a new group”
  • Opet, unosimo samo neku vrijednost u polje “Group name”, te u listi “Members” dodajemo korisnika kojeg smo ranije kreirali.

Mali prekid u konfiguraciji radi pojašnjenja. Linux svoja prava i dozvole bazira na korisniku, grupu kojoj korisnik pripada i ostalima. Znači ako imamo više korisnika za koje želimo da imaju ista prava, tipa da pristupe istom direktoriju, kreiramo grupu, grupi dajemo pravo na pristup direktoriju te dodajemo korisnike kojima želimo dozvoliti pristup. To smo sada napravili ovdje.

  • Nastavljamo sa konfiguracijom, pod “Tools” biramo opciju “File Manager”
  • Na desnom dijelu ekrana odaberite direktorij na kojeg smo mapirali vanjski disk (u mojem primjeru je taj folder “/media”). Najjednostavniji način za odabrati root direktorij u desnom dijelu je, kliknuti na “media” u lijevom, a kada se u desnom dijelu prikaže sadržaj “/media” direktorija (samo “lost+found”) kliknemo na “..” iznad što će nas odvesti u root direktorij gdje se vidi “/media” direktorij.
  • Iz “Tools” padajućeg izbornika (gore), odaberite “Change ownership” te u polje “User name” upisujemo korisničko ime korisnika kojeg smo kreirali ranije, a pod “Group name” ime korisničke grupe. Kada smo dovršili klik na “Change” će promijeniti vlasništvo.
  • Označimo “/media” direktorij te idemo na padajući izbornik “Tools” iz kojeg biramo opciju “Change permissions”. U “Mode” polju upisujemo “775” čime dozvoljavamo pisanje vlasniku direktorija (korisniku kojeg smo kreirali), te svim korisnicima koji se nalaze u grupi. “Change” snima promjene.

Samba sharing

Idemo dalje, pod “Servers” kliknite na opciju “Samba Windows File Sharing”. Pojavit će se ekran sa trenutno dijeljenim direktorijima. Budući da nam to, ne treba, klikom na “Select all” odabiremo ih sve, a klikom “Delete Selected Shares” — mičemo ih iz liste.

  • Slijedeća akcija je kreiranje Samba korisnika, klikom na “Convert Users”. Otvara se novi ekran. Označimo “Only listed users or UID ranges”, kliknemo na ikonicu pored input polja te odaberemo korisnika kojeg smo ranije kreirali te kliknemo na “Select”
  • Nakon toga označimo “Use this password” te upisujemo password s kojim će se korisnik autorizirati na Samba server. Nakon što je sve uneseno potrebno je kliknuti na “Convert Users” kako bi se promjene zapisale.
  • Ako je sve prošlo u redu, na početnom ekranu “Samba Windows File Sharing” klikom na “Samba Users” trebao bi se pojaviti korisnik kojeg smo kreirali.
  • Sada možemo kreirati dijeljeni disk klikom na “Create a new file share” (opcija pri vrhu)
  • U polje “Share name” upisujemo naziv kako će se zvati dijeljeni direktorij (ja sam ga nazvao “mediastorage”)
  • Pod “Directory to share” potrebno je kliknuti na ikonicu na kraju polja za unos te odabrati direktorij koji ćemo dijeliti (“/media” u mom primjeru)
  • U polju “Create with owner” klikom na ikonu na kraju polja za unos otvara se novi prozor sa listom postojećih korisnika. U njemu biramo korisnika kojeg smo kreirali
  • U polje “Create with permissions” upisujemo 775
  • “Create with group” služi za odabir grupe. Opet, klikom na ikonicu na kraju input polja otvara se novi prozor sa listom postojećih grupa. Ovdje biramo grupu koju smo kreirali.
  • Klikom na “Create” kreirali smo dijeljeni direktorij i on se pojavio u listi.
  • Kliknite na ime dijeljenog direktorija, pa zatim na “Security and Access Control” te u novom ekranu označite opciju “Yes” pored “Writable”, pa nakon toga “Save”
  • Sada je došlo vrijeme za restart Sambe kako bi primijenila sve promjene. To se radi klikom na “Restart Samba Servers”

Čestitam, uspješno ste instalirali File Server sa Samba serverom i sada sa svojim Windows računalom možete pristupiti tom serveru.

Windows SMB Share

  • Pokrenite Explorer na vašim windowsima te upišite IP adresu Samba servera (u mojem slučaju 192.168.0.166)

Nakon unosa pojavit će se naziv dijeljenog direktorija (nazvali smo ga “mediastorage”) a otvaranjem toga direktorija prikazuje nam se sadržaj (trenutno samo “lost+found”). Možemo testirati da li sve radi kreiranjem novih direktorija ili kopiranjem datoteka sa windowsa na ovaj dijeljeni direktorij.

Korisna stvar bi bila i trajno mapiranje dijeljenog direktorija unutar windowsa. To radimo na način da kliknemo desnim klikom miša na direktorij (“mediastorage”) i iz izbornika odaberemo opciju “Map network drive…”. Odaberemo slovo i kliknemo na “Finish”.

Sada to isto treba ponoviti i na linuxu, točnije na našoj Virtualnoj mašini koju smo instalirali i na kojoj ćemo držati sve media servise.

Linux SMB share

Ulogirajte se u Virtualnu mašinu (VM) ili putem SSH (Putty) ili putem Admin sučelja Proxmoxa (>_ Console — xterm.js)

Prvi korak koji ćemo odraditi jest — kreiranje korisničke grupe. Upišite:

sudo groupadd fileshare

Zatražit će vas upisivanje passworda od korisnika s kojim ste ulogirani (“testuser” u mom primjeru) Time smo kreirali novu grupu, sada idemo dodati korisnike u tu grupu. Dodat ćemo “ubuntu” korisnika koji je kreiran instalacijom VMa, kao i korisnika kojeg smo mi kreirali (“testuser”). Upisujte naredbe jednu po jednu.

sudo usermod -a -G fileshare testuser
sudo usermod -a -G fileshare ubuntu

Slijedeći korak je instalacija softwarea za spajanje na SMB share (jednu po jednu liniju).

sudo apt-get install cifs-utils
sudo apt install linux-modules-extra-$(uname -r)

Nakon instalacije potreban je reboot.

sudo reboot

Kako bi SMB share trajno mapirali na linuxu postoji nekoliko načina, a mi ćemo to odraditi putem fstaba. Editiranje fstaba može biti opasno, pa ćemo, prije editiranja datoteke, napraviti kopiju. Upišite:

 cp /etc/fstab fstab.backup

Time smo u našem “/home” folderu kopirali fstab i dodijelili mu ime fstab.backup.

Sada trebamo kreirati Credentials datoteku sa login podacima od SMB servera.

nano .smbcredentials

Zatim upišite login i password podatke (umjesto “MyUsername” i “MyPassword” upišite podatke za login na SMB server :

username=MyUsername
password=MyPassword

Snimite promjene (CTRL + X). zatim upišite (liniju po liniju):

sudo chown root .smbcredentials
sudo chmod 600 .smbcredentials

Time smo čitanje ove datoteke omogućili samo root korisniku. Nije neka pretjerana sigurnost, priznajem. Ali nema bolje :(

Slijedeći korak je kreiranje direktorija u koji ćemo mapirati SMB share

sudo mkdir /mnt/mediastorage

Još nam, samo, nedostaje par informacija za postavljanje SMB sharea, točnije UID i GID našeg korisnika (“testuser”). To se radi upisivanjem “id” naredbe u konzolu.

id
uid=1001(testuser) gid=1001(testuser) groups=1001(testuser),27(sudo),1002(fileshare)

U ispisu vidimo da se korisnik nalazi u 3 grupe, “testuser”, “sudo” i “fileshare”. Zapisujemo UID (1001) i GID (1002). Dolazi vrijeme za promjenu fstaba. Upišite:

sudo nano /etc/fstab
Prije upisivanja podataka za SMB share

Na kraju dodajte slijedeću liniju:

//192.168.0.166/mediastorage /mnt/mediastorage cifs iocharset=utf8,credentials=/home/testuser/.smbcredentials,uid=1001,dir_mode=0775,file_mode=0775,gid=1002 0 0
Nakon upisivanja podataka za SMB share

Kratko pojašnjenje:

  • “//192.168.0.166/mediastorage” je IP Samba servera sa direktorija kojeg smo postavili na dijeljenje
  • “/mnt/mediastorage” je folder u koji ćemo mapirati SMB share
  • “cifs” je tip File Systema (koji zna raditi sa SMB shareom)
  • “iocharset=utf8,credentials=/home/testuser/.smbcredentials,uid=1001,dir_mode=0775,file_mode=0775,gid=1002 0 0” — dodatne opcije poput podržavanja utf8 charseta, lokacija gdje se nalaze username i password SMB korisnika, UID i GID korisnika su IDevi pod kojim se kreiraju datoteke (testuser i fileshare grupa), dozvole za datoteke i direktorije…

Konačno. SMB share server je instaliran, konfiguriran i dostupan i sa windows računala kao i sa VMa na kojem smo instalirali Linux. Konačno možemo krenuti sa instalacijom servisa koje smo željeli. Sva priprema je gotova… A i trebalo nam je.

Članci iz serijala:

--

--