Preporučeno je da se GRUB-u dodijeli jedinstvena lozinka kako bi se spriječio neovlašten pristup vašem laptopu/računalu sa osjetljivim podacima. Ukoliko ste čitali moje članke o SUID bitu, mogli ste primjetiti kako SUID bit omogučava drugim korisnicima neovlašten pristpup podacima isto tako i konfiguracijskim datotekama te njihovu modifikaciju što može biti na štetu vašeg računala. No, srećom što iskusniji Linux korisnici mogu da postave lozinku za GRUB boot loader te spriječe neovlašteno butanje računala ili laptopa. Možemo stoga zaključiti kako je postavljanje GRUB lozinke prvenstveno zbog sigurnosnih razloga a upravo to ćemo sada i pokazati.
Postoji nekoliko načina da se GRUB-u dodijeli njegova lozinka. Jedan od načina je korištenje alata po imenu grub-crypt koji enkriptuje lozinku koja je dodijeljena GRUB-u. Korištenje grub-crypt alata podrazumijeva da je Linux System administrator već postavio željenu lozinku koja će se nadalje koristiti prilikom odobrenja za butanje. No, ja ću vam pokazati u ovom članku kako generisati enkriptovanu lozinku za GRUB korištenjem alata grub2-mkpasswd-pbkdf2. Bez lozinke GRUB screen će izgledati ovako:
Alat grub-crypt obično koristi md5 enkripciju za generisanje heširane lozinke ali u osnovi on sam po sebi nije dovoljan za zaštitu. Primjera radi, ponekada je potrebno kreirati određenog korisnika 'superuser' kojima ima ovlašten pristup butanju računala ili laptopa. S druge strane, Linux System administrator može upravo uređivanjem konfiguracijske datoteke
/etc/grub.d/00_header definisati koji korisnik može butati recimo Linux Mint a koji korisnik može butati Windows 10. Eh, sada, kako ćemo onda postaviti našu lozinku za GRUB?
Potrebno je prije svega kreirati superkorisnika sa njegovom lozinkom koju ćemo zatim dodati unutar konfiguracijske datoteke
/etc/grub.d/40_custom.
< UPOZORENJE:
Uređivanje konfiguracijskih datoteka /etc/default/grub, /etc/grub.d/00_header, /etc/grub.d/40_custom bez određenog znanja može izazvati nestabilnost vašeg operativnog sistema i spriječiti uspješno butanje. Ukoliko niste sigurni ili ne znate šta radite, molim vas ne postavljajte sigurnosnu lozinku za GRUB. Ovaj članak je prvenstveno namjenjen naprednim i iskusnim Linux korisnicima te za štete nastale korištenjem ovog članka ja se kao autor i vlasnik ove web stranice u potpunosti ograđujem a članak i komande koristite na sopstvenu odgovornost. >
__________________________________
Prije nego uredimo konfiguracijsku datoteku
/etc/grub.d/40_custom, potrebno je generisati enkriptovanu/heširanu lozinku korištenjem
grub2-mkpasswd-pbkdf2 (vidi sliku 3).
Slika 3: Generisanje heširane lozinke za GRUB korištenjem grub2-mkpasswd-pbkdf2
Izvor slike: /home/amar/Desktop/slika3
Pošto smo generisali heširanu lozinku sada uređivanjem konfiguracijske datoteke /etc/grub.d/40_custom ćemo kreirati našeg superkorisnika po imenu amar i dodijeliti mu prethodno heširanu lozinku.
set superusers="amar"
password_pbkdf2 amar grub.pbkdf2.sha512.10000.C07CC5A3C21F07436CE92D95450BB371D$
Navedena sintaksa omogučava kreiranje superkorisnika sa heširanom lozinkom koja se smiješta u navedenu konfiguracijsku datoteku (vidi sliku 4).
Slika 4: Kreiranje superkorisnika sa heširanom lozinkom za GRUB
Izvor slike: /home/amar/Desktop/slika4
Na slici 4 možete vidjeti GNU/Nano editor koji sam ja koristio pod administratorskim privilegijama kako bi dodao superkorisnika po imenu 'amar' i njegovu heširanu lozinku. Trebate znati da možete odabrati i drugog korisnika po vašoj želji a to može biti 'michael', 'john', 'sanel', 'emina' ili bilo koji drugi korisnik. Dokle god koristite ovu sintaksu, možete uspješno postaviti GRUB lozinku.
4. Ažuriranje GRUB postavki i butanje
Pošto smo dodali superkorisnika sa njegovom lozinkom, ono što sada treba da napravimo jeste ažuriranje GRUB izmjena koje smo napravili kako bi lozinka uzela efekta. Ja koristim Linux Mint 18.3 Silvia MATE pa kod mene konfiguracijske datoteke za GRUB su drugačijeg naziva nego kod Vas ili kod drugih distribucija. Zaboravio sam da napomenem kako je ovaj članak namjenjen za GRUB2 tako da budite na oprezu prilikom kopiranja ili pastovanja komandi koje se nalaze u ovom članku jer su velike mogučnosti da neće biti prepoznate na vašoj distribuciji.
sudo grub-mkconfig -o /boot/grub/grub.cfg
Nakon što se ova komanda izvrši, GRUB bi trebao uspješno da ažurira izmjene koje ste napravili kao i lozinku koja će se pojaviti kada se računalo buta.
Slika 5: Ažuriranje GRUB postavki
Izvor slike: /home/amar/Desktop/slika5
Pošto je GRUB ažuriran te superkorisnik amar dodat sa svojom heširanom lozinkom, na narednom butanju GRUB bi trebao tražiti lozinku kako bi odobrio butanje operativnog sistema,u mom slučaju Linux Mint 18.3 (slika6).
Slika 6: Butanje Linux Mint 18.3 Silvia sa superkorisnikom amar
Izvor slike: /home/amar/Desktop/slika6
Kratko objašnjenje:
Ukoliko vam se prilikom butanja vaše Linux distribucije pojavi ovakav menu gdje se od vas traži da unesete korisničko ime (superuser) i njegovu lozinku, to znači da ste uspješno postavili GRUB lozinku. U mom slučaju, ja sam kreirao superkorisnika po imenu 'amar' te mu dodijelio lozinku koju sam generisao upotrebom grub2-mkpasswd-pbkdf2 alata. Stim u vezi, niko osim mene ne može butati računali te neovlašteno pristupiti Linux Mint-u u ovom slučaju niti napraviti neželjenu štetu nad podacima i slično.
5. Postavljanje vremena odabira Linux distribucije GRUB_TIMEOUT
Slika 7: Default vrijeme čekanja na OS selekciju GRUB_TIMEOUT = 10 s
Posljednji korak kako bismo kompletirali ovaj članak je i postavljanje vremena odabira Linux distribucije GRUB_TIMEOUT ili drugog operativnog sistema koji će se butati. Po defaultu to je 10 sekundi a naš zadatak je postaviti to vrijeme na 45 sekundi (slika 7). Kako sam već i rekao, zadatak je postaviti to vrijeme sa 10 sekundi na 45 sekundi. Kako bismo to uradili potrebno je urediti konfiguracijsku datoteku /etc/default/grub pod administratorskim privilegijama. Ova se datoteka pod admin privilegijama može otvoriti koristeći gksu gedit tekst editor (slika8).
gksu gedit /etc/default/grub
Slika 8: Postavljanje vremena OS selekcije GRUB_TIMEOUT = 45
Izvor slike: /home/amar/Desktop/slika8
Sljedeći put kada se vaše računalo ili laptop buta, GRUB-u će trebati 45 sekundi da odabere sistem koji će automatski butati umjesto standardnih 10 sekundi. Upamtite da to mjenjate upotrebom admin privilegija i gksu gedit /etc/default/grub datoteke, gdje diktirate željeno vrijeme koje protekne kako bi GRUB automatski odabrao selektovanu distribuciju ili OS.
Zaključak:
Ovo je do sada jedan od mojih najozbiljnijh članak iz Linux System administracije gdje ste imali priliku naučiti kako postaviti GRUB lozinku kreiranjem superkorisnika. Upotrebom alata
grub2-mkpasswd-pbkdf2 generisali smo heširanu lozinku za superkorisnika po imenu 'amar' koju sam zatim dodao u datoteku /etc/grub.d/40_custom kako bi GRUB znao da sada ima lozinka. Ažuriranjem GRUB postavki upotrebom komande sudo grub-mkconfig -o /boot/grub/grub.cfg pobrinuo sam se da izmjene uzmu efekta kako bi se korisnik kreirao i kako bi GRUB sljedeći put tražio lozinku za odabir sistema koji se želi butati. Posljednje što sam napravio jeste produženje vremena koje je GRUB-u potrebno za automatsko butanje sistema sa 10 sekundi na 45 i time je ovaj članak u potpunosti kompletiran. Iako mi je bilo potrebno skoro 4 puna sata da se ovaj članak napiše kako treba, na kraju moram da kažem da mi je bilo veliko iskustvo što sam napisao ovaj članak koji je na kraju ispao moj najozbiljniji članak iz Linux System administracije. Ukoliko vam se ovaj članak sviđa, smatrate da je koristan i da vam može pomoći oko navedene teme onda podijelite ovaj članak među svojim prijateljima i na društvenim mrežama. Time pomažete moj rad i rad moje web stranice. Toliko od mene za sada i do čitanja.
______________________________
Reference:
1. How to add the GRUB password protection
https://askubuntu.com/questions/370693/how-to-add-the-grub-password-protection-to-the-os-load-process-instead-of-when-e
2. How do I set the GRUB timeout and the GRUB default boot entry
https://askubuntu.com/questions/148095/how-do-i-set-the-grub-timeout-and-the-grub-default-boot-entry
3. How to protect GRUB2 bootloader with encrypted password
http://www.elinuxbook.com/how-to-protect-grub2-bootloader-with-password-in-linux/