kako:varnost
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| kako:varnost [2007/09/24 14:47] – matthai | kako:varnost [2007/09/25 10:45] (current) – Popravil link na kripto2 mrcin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | OPOMBA: slike (zaslonski posnetki) še niso prenešeni na Wiki... | + | ===== Kriptografija ===== |
| + | |||
| + | ==== Šifriranje nosilcev podatkov v okolju Linux in Windows ==== | ||
| //Avtor: Matej Kovačič// | //Avtor: Matej Kovačič// | ||
| - | // | + | To je prvi del serije člankov o kriptiranih datotečnih sistemih. V [[kako:varnost: |
| - | + | ||
| - | --Ronald L. Rivest (1998), | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | // | + | |
| Ena izmed možnosti napada na računalniške sisteme je tudi tim. //offline// napad, torej napad, ko napadalec pridobi fizični dostop do računalnika medtem, ko je le-ta ugasnjen. Možnosti napadov na računalnike je v tem primeru več (npr. podtikanje različnih strojnih " | Ena izmed možnosti napada na računalniške sisteme je tudi tim. //offline// napad, torej napad, ko napadalec pridobi fizični dostop do računalnika medtem, ko je le-ta ugasnjen. Možnosti napadov na računalnike je v tem primeru več (npr. podtikanje različnih strojnih " | ||
| - | Kako se boriti proti takšnim napadom? Rešitev je razmeroma enostavna - z uporabo šifriranja. Šifrirati je mogoče celoten sistem oziroma trdi disk iz katerega se zažene operacijski sistem (razen majhnega zagonskega razdelka), kar je v večini operacijskih sistemov nekoliko bolj zapleteno opravilo (velja tako za večino Windows kot tudi večino Linux distribucij). V tokratnem članku pa si bomo ogledali kako je mogoče v Ubuntu Linuxu uporabljati šifrirane razdelke (// | + | Kako se boriti proti takšnim napadom? Rešitev je razmeroma enostavna - z uporabo šifriranja. Šifrirati je mogoče celoten sistem oziroma trdi disk iz katerega se zažene operacijski sistem (razen majhnega zagonskega razdelka), kar je v večini operacijskih sistemov nekoliko bolj zapleteno opravilo (velja tako za večino Windows kot tudi večino Linux distribucij). V [[kako: |
| - | Šifriranje nosilcev podatkov ima določene prednosti, pa tudi določene pomankljivosti. Glavna pomankljivost je v tem, da s šifriranjem izgubimo prenosljivost. Šifrirni programi namreč niso nameščeni na vsakem računalniku in zato šifriranih nosilcev podatkov ne moremo uporabiti kjerkoli, poleg tega za zagon šifrirnega programa praviloma potrebujemo administratorski dostop. Ena izmed možnih rešitev je, da si na prenosnem USB disku naredimo dodatni manjši FAT32 razdelek, kjer shranimo šifrirni program, s katerim bomo na ciljnem računalniku lahko priklopili šifrirani nosilec podatkov. Problem prenosljivosti pa odpade, kadar šifrirane USB diske uporabljamo na omejenem številu računalnikov (npr. za prenos datotek od doma v službo), ali kadar prenosni disk uporabljamo za izdelavo varnostnih kopij. V primeru kraje ali izgube prenosnega diska namreč varnost podatkov ne bo ogrožena. Izdelamo pa si lahko tudi šifrirane virtualne razdelke, ki jih shranimo na CD, DVD ali podobne nosilce podatkov. | + | [[kako: |
| - | Prednosti šifriranja pomnilniških medijev je na precej [[http:// | ||
| - | //After unmounting, nobody will be able to see your data without knowing the correct passphrase. Drive is stolen? No problem. | + | ==== Vzpostavitev v celoti šifriranega sistema - Ubuntu Feisty ==== |
| - | Drive is broken, and you want to send it in for repair without the guys there poking in your data? No problem. | + | |
| - | You leave the USB drive at home and some jerk breaks into your house, steals your drive, rapes your wife, and kills your kids? No problem. | + | |
| - | Well, sort of, but you get the idea ;-)// | + | |
| - | + | ||
| - | **Še opozorilo.** Uporaba šifriranja lahko v primeru napake oziroma okvare trdega diska privede do izgube podatkov. V primeru uporabe šifriranja zato poskrbite za ustrezne varnostne kopije. Podatki naj se nikoli ne nahajajo samo na enem (šifriranem) nosilcu. Prav tako je pri uporabi spodaj opisanih postopkov potrebno nekaj previdnosti, | + | |
| - | + | ||
| - | Opisani postopki so bili preiskušeni v Linuxu Ubuntu 7.04 Feisty Fawn in Windows 2000 ter Windows Xp. Za uporabo v ostalih Linux/ | + | |
| - | + | ||
| - | + | ||
| - | ===== Načini šifriranja podatkovnih nosilcev ===== | + | |
| - | + | ||
| - | Pri šifriranju podatkovnih nosilcev sta na voljo dva koncepta. Lahko: | + | |
| - | * šifriramo razdelek (ki ga kasneje priklopimo kot običajen razdelek), ali pa | + | |
| - | * šifriramo posebno datoteko, ki jo kasneje priklopimo kot virtualni razdelek. | + | |
| - | + | ||
| - | ==== Šifriranje celotnega razdelka ==== | + | |
| - | V tem primeru izbire tega načina šifriranja, | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Ko torej zapišemo neko datoteko na / | + | |
| - | + | ||
| - | ==== Šifriranje datoteke, ki jo priklopimo kot virtualni razdelek ==== | + | |
| - | Drugi koncept pa je uporaba šifrirane datoteke, ki jo priklopimo kot virtualni razdelek. V tem primeru imamo nekje na disku šifrirano datoteko, ki jo priklopimo kot poseben, nov virtualni razdelek na katerega potem zapisujemo podatke. | + | |
| - | + | ||
| - | Podatki se v tem primeru zapisujejo namesto na razdelek v datoteko (oz. virtualni razdelek), torej imamo približno tako strukturo: " | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | ==== Ostale možnosti šifriranja ==== | + | |
| - | Za šifiranje lahko uporabimo geslo (// | + | |
| - | + | ||
| - | Pri tem pa sodobni šifrirni programi uporabljajo zelo koristen trik. Geslo, ki ga vnesemo v šifrirni program namreč ne predstavlja tudi šifrirnega ključa. Podatki se namreč šifrirajo z nekim statičnim šifrirnim ključem (to je npr. nek naključen niz znakov), ki je shranjen nekje v šifriranem razdelku (navadno kje na začetku) ter zašifriran z našim geslom, ki v tem primeru predstavlja ločeni šifrirni ključ. Dešifriranje torej poteka takole: najprej vnesemo geslo (ali podamo datoteko-ključ), | + | |
| - | + | ||
| - | Zakaj je to koristno? Zato, ker nam to omogoča enostavno spreminjanje gesel. Če bi namreč želeli spremeniti oz. zamenjati statični šifrirni ključ, bi morali ob vsaki spremembi le-tega celotni šifrirani razdelek na novo prekodirati. To pa je precej zamudno opravilo. Če pa želimo to storiti v primeru uporabe ločenega šifrinega ključa (npr. gesla), se ob spremembi gesla prekodira samo kriptogram statičnega šifrirnega ključa, kar je bistveno hitreje kot prekodiranje vseh podatkov. | + | |
| - | + | ||
| - | Po drugi strani pa ima ta pristop tudi neko nevarnost. Recimo, da šifrirani razdelek uporablja več uporabnikov. Uporabnik, ki ima ustrezno geslo, si lahko prekopira tisti del datoteke, ki vsebuje statični šifrirni ključ (zašifriran z njegovim trenutnim geslom). Ko izgubi dostop do šifriranih podatkov (mu na primer spremenimo geslo), lahko tak uporabnik na novo prekodirani statični šifrirni ključ prepiše s staro kopijo (za katero pa ima geslo) in s tem kasneje pridobi dostop do podatkov. Napadalec z ustreznim dostopom lahko statični šifrirni ključ prekopira tudi ko je šifrirani razdelek aktiven (priklopljen). | + | |
| - | + | ||
| - | V nadaljevanju so bomo ogledali dve rešitvi, ki ju je mogoče uporabiti tako v okolju Linux, kot v okolju Windows. Prva rešitev, orodje // | + | |
| - | + | ||
| - | Ogledali si bomo kako uporabiti oba programa za šifriranje običajnih in virtualnih razdelkov z geslom. Mimogrede: TrueCrpyt omogoča razmeroma enostavno izdelavo varnostne kopije statičnega šifrirnega ključa (//Backup Volume Header// / //Restore Volume Header//), to pa je mogoče tudi s cryptsetupom (gre za izvoz tim. vzglavja diskovnega razdelka (ang. //partition header//) oz. metapodatkov (ang. // | + | |
| - | + | ||
| - | ===== Izbira ustreznega razdelka ===== | + | |
| - | + | ||
| - | Najprej je seveda potrebno previdno izbrati razdelek, ki ga želimo prepisati oz. ga šifrirati. **V primeru napake so podatki na napačno izbranem razdelku za vedno izgubljeni!** Zato vedno dvakrat preverimo s katerim razdelkom bomo delali. Pred prepisovanjem oziroma nameščanjem šifrirne sheme tudi naredimo varnostno kopijo podatkov! | + | |
| - | + | ||
| - | V okolju Linux izbiro ustreznega razdelka na USB ključu opravimo tako, da najprej priklopimo (USB) disk na katerega bomo namestili šifrirno shemo in pogledamo njegovo lokacijo (kam je priklopljen) z ukazom: | + | |
| - | + | ||
| - | mount | + | |
| - | + | ||
| - | Dobimo na primer naslednji izpis: | + | |
| - | /dev/sdc3 on /media/USB type reiserfs (rw, | + | |
| - | + | ||
| - | Iz izpisa sledi, da je tretji razdelek USB diska z imenom //USB//, ki je priključen na mesto /media/USB, fizično gledano naprava na **/ | + | |
| - | + | ||
| - | Katere razdelke (tudi nepriključene) imamo na voljo v sistemu lahko preverimo tudi z ukazom: | + | |
| - | + | ||
| - | sudo sfdisk -l | + | |
| - | + | ||
| - | V okolju Windows si seznam priključenih diskovnih razdelkov pogledamo s klikom na ikono //Moj računalnik/ | + | |
| - | + | ||
| - | ===== Prepis diska ali razdelkov z naključnimi podatki ===== | + | |
| - | + | ||
| - | Preden se lotimo šifriranja podatkovnih nosilcev je dobro razmisliti o uničenju starih podatkov na njih oziroma prepis nosilcev podatkov z naključnimi podatki. Prepisovanje diska z naključnimi podatki sicer ni nujno potrebno, je pa priporočljivo. | + | |
| - | + | ||
| - | Razlogov za to je več. Prvi je, da je stare podatke z nekaterimi programsko forenzičnimi tehnikami mogoče obnoviti. Drugi razlog je, da znajo sodobni trdi diski slabe sektorje zamenjati z rezervnimi dobrimi sektorji, kar pomeni, da podatki ostanejo " | + | |
| - | + | ||
| - | Slaba stran postopka pa je, da je prepisovanje z naključnimi podatki precej dolgotrajno. Na računalniku s procesorjem Pentium 4 je prepisovanje 500 Gb razdelka preko USB 2.0 s pomočjo psevdonaključnega generatorja števil trajalo dobrih 29 ur, prepisovanje 320 Gb diska pa dobrih 19 ur. Za prepisovanje diska ali razdelka z naključnimi podatki imamo sicer na voljo več metod. V nadaljevanju si jih bomo nekaj ogledali, priporočljivo je uporabiti orodje **dd** s psevdonaključnim generatorjem ali orodje **DBAN**. | + | |
| - | + | ||
| - | ==== Prepisovanje podatkov v okolju Windows ==== | + | |
| - | + | ||
| - | V okolju Windows lahko za prepisovanje oz. brisanje podatkov uporabimo formatiranje (vendar ne tim. "hitro formatiranje" | + | |
| - | + | ||
| - | [[http:// | + | |
| - | + | ||
| - | ==== Uporaba orodja za preverjanje slabih sektorjev na disku v Linuxu ==== | + | |
| - | + | ||
| - | Precej hitrejša metoda je uporaba orodja za preverjanje slabih sektorjev na disku v Linuxu - **badblocks**. Predpostavimo, | + | |
| - | + | ||
| - | sudo umount / | + | |
| - | + | ||
| - | Disk naj ostane fizično priključen. Sledi ukaz: | + | |
| - | + | ||
| - | badblocks -c 10240 -s -w -t random -v /dev/sdc3 | + | |
| - | + | ||
| - | in počakamo nekaj ur. Med tem se nam izpisuje približno takle izpis: | + | |
| - | + | ||
| - | Checking for bad blocks in read-write mode | + | |
| - | From block 0 to 97530615 | + | |
| - | Testing with random pattern: | + | |
| - | + | ||
| - | ==== Uporaba orodja dd (disk dump) v Linuxu ==== | + | |
| - | + | ||
| - | Verjetno najbolj optimalna metoda glede na razmerje med varnostjo in hitrostjo je uporaba orodja **dd** (//disk dump//). Mimogrede, orodje je del vsakega standardnega živega CDja (//live CD//). V našem primeru je torej diskovni razdelek, ki ga želimo šifrirati /dev/sdc3. USB disk najprej programsko odklopimo - z desnim klikom na disk izberemo možnost //Izvrzi// oz. //Odklopi// ali vnesemo ukaz: | + | |
| - | + | ||
| - | sudo umount / | + | |
| - | + | ||
| - | Disk naj ostane fizično priključen. Sedaj izvedemo ukaz: | + | |
| - | + | ||
| - | dd if=/ | + | |
| - | + | ||
| - | Ukaz dd (//disk dump//), bo razdelek /dev/sdc3 (ki je v našem primeru tim " | + | |
| - | + | ||
| - | Če želimo doseči večjo stopnjo varnosti lahko namesto psevdonaključnega generatorja števil / | + | |
| - | + | ||
| - | Prepišemo lahko tudi celoten disk (v tem primeru uporabimo napravo /dev/sdc - brez številke), vendar bo v tem primeru potrebno na povsem izbrisanem disku kasneje ustvariti nov razdelek. | + | |
| - | + | ||
| - | Parameter // | + | |
| - | + | ||
| - | Ker je prepisovanje z dd dolgotrajno, | + | |
| - | + | ||
| - | sudo killall -USR1 dd | + | |
| - | + | ||
| - | Dobimo približno takle izpis, ki v našem primeru kaže, da smo prepisali že 1,9 Gb podatkov: | + | |
| - | + | ||
| - | 116+1 zapisov na vhodu | + | |
| - | 116+0 zapisov na izhodu | + | |
| - | 1946157056 bytes (1,9 GB) copied, 426,526 sekunde, 4,6 MB/s | + | |
| - | + | ||
| - | ==== Uporaba orodja DBAN ==== | + | |
| - | + | ||
| - | Lahko pa uporabimo tudi orodje [[http:// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Namestitev in uporaba šifrirnega programa cryptsetup ===== | + | |
| - | + | ||
| - | V nadaljevanju je najprej potrebno namestiti programski paket cryptsetup z LUKS podporo. LUKS oz. Linux Unified Key Setup podpora omogoča uporabo več gesel, ki jih je mogoče tudi spreminjati, | + | |
| - | + | ||
| - | Če programski paket že imamo nameščen najprej preverimo [[http:// | + | |
| - | + | ||
| - | cryptsetup --help | + | |
| - | + | ||
| - | Če se na zaslonu pokaže izpis, ki omenja // | + | |
| - | + | ||
| - | sudo apt-get install cryptsetup | + | |
| - | + | ||
| - | Ob tem velja pripomniti, da Ubuntu 7.04 v svojih skladiščih programskih paketov že vsebuje novejšo različico cryptsetupa (in sicer 1.0.5). Če uporabljamo Ubuntu brez povezave v internet ali živi namestitveni CD (tim. //live CD//), pa lahko uporabimo namestitveni deb paket, ki ga dobimo [[http:// | + | |
| - | + | ||
| - | sudo dpkg -i cryptsetup_1.0.4+svn26-1ubuntu2_i386.deb | + | |
| - | + | ||
| - | ==== Namestitev šifriranja ==== | + | |
| - | + | ||
| - | Najprej naložimo ustrezne jedrne module: | + | |
| - | + | ||
| - | sudo modprobe dm-crypt | + | |
| - | sudo modprobe dm-mod | + | |
| - | sudo modprobe aes | + | |
| - | sudo modprobe sha256 | + | |
| - | + | ||
| - | Dobro je tudi določiti, da se ob ponovnem zagonu sistema moduli samodejno naložijo. To storimo z vpisom teh modulov v datoteko / | + | |
| - | + | ||
| - | sudo su | + | |
| - | echo dm-crypt >> / | + | |
| - | echo dm-mod >> / | + | |
| - | echo aes >> / | + | |
| - | echo sha256 >> / | + | |
| - | exit | + | |
| - | + | ||
| - | S tem je naš računalnik prpravljen na uporabo šifriranja. | + | |
| - | + | ||
| - | === Uporaba razdelka za šifriranje === | + | |
| - | + | ||
| - | Če želimo šifriranje namestiti na poljubni razdelek, ga formatiramo s posebnim programom, ki namesti tudi šifrirno shemo. V našem primeru bomo formatirali z datotečnim sistemom // | + | |
| - | + | ||
| - | sudo luksformat -t reiserfs /dev/sdc3 | + | |
| - | + | ||
| - | Dobimo izpis, ki nas opozori, da bomo v nadaljevanju izgubili vse podatke na izbranem razdelku. Za nadaljevanje je potrebno izraziti strinjanje, kar storimo tako, da z velikimi črkami vpišemo " | + | |
| - | + | ||
| - | S tem geslom bomo kasneje dostopali do našega šifriranega razdelka, zato je treba biti pri izbiri previden in izbrati geslo, ki so ga bomo lahko zapomnili, a ga ne bo mogoče lahko uganiti. V primeru formatiranja z datotečnim sistemom reiserfs je potrebno le-to potrditi s pritiskom na " | + | |
| - | Creating encrypted device on / | + | |
| - | + | ||
| - | WARNING! | + | |
| - | ======== | + | |
| - | This will overwrite data on /dev/sdc3 irrevocably. | + | |
| - | + | ||
| - | Are you sure? (Type uppercase yes): YES | + | |
| - | Enter LUKS passphrase: | + | |
| - | Verify passphrase: | + | |
| - | Command successful. | + | |
| - | Please enter your passphrase again to verify it | + | |
| - | Enter LUKS passphrase: | + | |
| - | ... | + | |
| - | UUID: 118a8e0a-b902-4757-8061-f1563edc9773 | + | |
| - | ATTENTION: YOU SHOULD REBOOT AFTER FDISK! | + | |
| - | ALL DATA WILL BE LOST ON '/ | + | |
| - | Continue (y/n): | + | |
| - | ... | + | |
| - | ReiserFS is successfully created on / | + | |
| - | + | ||
| - | === Uporaba celotnega diska za šifriranje === | + | |
| - | + | ||
| - | Namesto posameznega razdelka lahko uporabimo tudi celoten disk. V tem primeru je potrebno najprej pobrisati celoten disk (v primeru / | + | |
| - | dd if=/ | + | |
| - | + | ||
| - | Nato na njem ustvarimo nov razdelek z ukazom fdisk ali pa uporabimo grafični program GParted. | + | |
| - | + | ||
| - | OPOZORILO: če na disku ne bomo ustvarili novega razdelka, bo sicer na disk še vedno mogoče namestiti šifrirno shemo s cryptsetup, vendar se nov šifrirani disk po vnosu gesla ne bo samodejno priklopil v sistem. Ob vklopu bomo sicer dobili poziv za vnos gesla, vendar bo potem napravo iz / | + | |
| - | + | ||
| - | S programom fdisk razdelek ustvarimo po naslednjem postopku: | + | |
| - | sudo fdisk /dev/sdc | + | |
| - | + | ||
| - | Najprej kot ukaz vnesemo **n** (dodaj nov razdelek): | + | |
| - | + | ||
| - | Disk /dev/sdc: 38913 cylinders, 255 heads, 63 sectors/ | + | |
| - | + | ||
| - | sfdisk: ERROR: sector 0 does not have an MSDOS signature | + | |
| - | / | + | |
| - | No partitions found | + | |
| - | + | ||
| - | Command (m for help): n | + | |
| - | + | ||
| - | Nato določimo, da je razdelek primarni (**p**) in prvi (**1**): | + | |
| - | Command action | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | p | + | |
| - | Partition number (1-4): 1 | + | |
| - | First steza (1-38913, default 1): | + | |
| - | Using default value 1 | + | |
| - | Last steza or +size or +sizeM or +sizeK (1-38913, default 38913): | + | |
| - | Using default value 38913 | + | |
| - | + | ||
| - | Na koncu spremembe zapišemo na disk z ukazom **w** (zapiši tabelo razdelkov in končaj): | + | |
| - | Command (m for help): w | + | |
| - | The partition table has been altered! | + | |
| - | + | ||
| - | Calling ioctl() to re-read partition table. | + | |
| - | Syncing disks. | + | |
| - | + | ||
| - | Razdelek je sedaj pripravljen na nadaljne delo oz. namestitev šifrirne sheme (opisana zgoraj). | + | |
| - | + | ||
| - | Enako operacijo lahko naredimo tudi z grafičnim programom GParted, ki ga je potrebno zagnati z administratorskimi pravicami (v danem primeru smo uporabili napravo / | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | === Formatiranje šifriranega razdelka z drugimi datotečnimi sistemi === | + | |
| - | + | ||
| - | Šifrirani razdelek lahko formatiramo tudi z drugimi datotečnimi sistemi. Z datotečnim sistemom **FAT32** formatiramo z ukazom: | + | |
| - | + | ||
| - | sudo luksformat -t vfat /dev/sdc3 | + | |
| - | + | ||
| - | Z datotečnim sistemom **ext3** formatiramo z ukazom (enako velja za **ext2**, le da spremenimo ustrezni parameter): | + | |
| - | + | ||
| - | sudo luksformat -t ext3 /dev/sdc3 | + | |
| - | + | ||
| - | Za formatiranje z **NTFS** pa je najprej potrebno namestiti programski paket // | + | |
| - | + | ||
| - | sudo apt-get install ntfsprogs ntfs-config | + | |
| - | + | ||
| - | Sledi ukaz: | + | |
| - | + | ||
| - | sudo luksformat -t ntfs /dev/sdc3 | + | |
| - | + | ||
| - | Seveda se v primeru izbire drugega datotečnega sistema izpis luksformata (progrma, ki namesti šifrirno shemo in šifrirani razdelek formatira) konča drugače, v primeru formatiranja z NTFS približno takole: | + | |
| - | + | ||
| - | Cluster size has been automatically set to 512 bytes. | + | |
| - | Initializing device with zeroes: 100% - Done. | + | |
| - | Creating NTFS volume structures. | + | |
| - | mkntfs completed successfully. Have a nice day. | + | |
| - | + | ||
| - | ==== Šifriranje virtualnih razdelkov ==== | + | |
| - | S cryptsetupom lahko šifriramo tudi virtualne razdelke, ki so fizično gledano posebne datoteke s sliko (ang. //image//) virtualnega razdelka. Edina zahteva je, da so datoteke večje od 1 Mb. Postopek je sledeč. Najprej ustvarimo posebno datoteko, ki bo postala virtualni razdelek, npr. mojtest.img: | + | |
| - | + | ||
| - | touch mojtest.img | + | |
| - | + | ||
| - | Sedaj datoteko pobrišemo in " | + | |
| - | shred -n1 -s100M mojtest.img | + | |
| - | ali: | + | |
| - | dd if=/ | + | |
| - | + | ||
| - | Nato najprej pogledamo katera je prva neuporabljena zankovna naprava (ang. //loop device// | + | |
| - | sudo losetup -f | + | |
| - | + | ||
| - | Dobimo približno takle izpis, iz katerega sledi, da je prva neuporabljena zankovna naprava / | + | |
| - | / | + | |
| - | + | ||
| - | Sedaj datoteko mojtest.img priklopimo na to napravo kot virtualni razdelek | + | |
| - | sudo losetup /dev/loop0 mojtest.img | + | |
| - | + | ||
| - | Sledi namestitev šifrirne sheme in formatiranje (v danem primeru z datotečnim sistemom ReiserFS - dobimo podobna vprašanja in izpis kot zgoraj)... | + | |
| - | sudo luksformat -t reiserfs / | + | |
| - | + | ||
| - | ...nato v sistem priklopimo virtualni šifrirani razdelek... | + | |
| - | sudo cryptsetup luksOpen /dev/loop0 mojcryptodisk | + | |
| - | + | ||
| - | ...na tem mestu je potrebno vnesti ustrezno geslo (dobimo približno takle izpis): | + | |
| - | Enter LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | + | ||
| - | ...na koncu pa le-tega kot virtualni končni razdelek na /mnt na katerega bomo lahko zapisovali podatke: | + | |
| - | sudo mount / | + | |
| - | + | ||
| - | V danem primeru smo virtualni šifrirani razdelek priklopili na /mnt, lahko pa bi naredili tudi poseben podimenik (npr. / | + | |
| - | + | ||
| - | Še odklop. Najprej odklopimo končni razdelek, nato šifrirani razdelek, na koncu pa še zankovno napravo (//loop device// | + | |
| - | sudo umount /mnt/ | + | |
| - | sudo cryptsetup luksClose mojcryptodisk | + | |
| - | sudo losetup -d / | + | |
| - | + | ||
| - | ==== Uporaba večjega ključa ==== | + | |
| - | Privzeto cryptsetup v Ubuntu Linuxu uporablja 128 bitne ključe. Za posamezni šifrirani razdelek lahko pogledamo podatke o dolžini ključa in uporabljenem šifrirnem algoritmu tako, da najprej pogledamo kateri razdelki so priključeni v sistem z ukazom: | + | |
| - | ls -l / | + | |
| - | Dobimo približno takle izpis: | + | |
| - | crw-rw---- 1 root root 10, 63 2007-06-15 14:25 control | + | |
| - | brw-rw---- 1 root disk 254, 1 2007-06-27 08:05 crypto-test | + | |
| - | brw-rw---- 1 root disk 254, 0 2007-06-27 08:00 temporary-cryptsetup-18222 | + | |
| - | + | ||
| - | V sistemu je v vsakem prmeru prisotna datoteka // | + | |
| - | sudo cryptsetup status crypto-test | + | |
| - | + | ||
| - | / | + | |
| - | cipher: | + | |
| - | keysize: 128 bits | + | |
| - | device: | + | |
| - | offset: | + | |
| - | size: 495896 sectors | + | |
| - | mode: read/ | + | |
| - | + | ||
| - | Iz izpisa sledi, da na razdelku // | + | |
| - | cat / | + | |
| - | si lahko ogledamo katere šifrirne module imamo prisotne v sistemu in kakšna je največja dolžina ključa, ki ga lahko uporabimo. Iz izpisa sledi, da je največja dolžina ključa za šifrirni algoritem AES 256 bitov (32 zlogov * 8 bitov = 256 bitov) | + | |
| - | min keysize | + | |
| - | max keysize | + | |
| - | + | ||
| - | Če želimo uporabiti tak ključ, je potrebno uporabiti naslednji ukaz (v primeru nameščanja šifrirne sheme na razdelek / | + | |
| - | sudo cryptsetup --key-size 256 luksFormat /dev/sdc3 | + | |
| - | Nato razdelek priključimo... | + | |
| - | sudo cryptsetup luksOpen /dev/sdc1 crypto-test | + | |
| - | ...in ga formatiramo: | + | |
| - | sudo mkfs.ext3 / | + | |
| - | Namesto ukaza // | + | |
| - | + | ||
| - | ==== (Prvi) priklop šifriranega razdelka v sistem ==== | + | |
| - | + | ||
| - | Če smo uporabili razdelek na USB disku, ga fizično odklopimo in ga ponovno priključimo nazaj. Prikaže se okno za vnos gesla: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Vnesemo ustrezno geslo in razdelek je že ustrezno priključen v sistem. Naprava /dev/sdc3 je sedaj priključena na / | + | |
| - | + | ||
| - | Mimogrede, šifrirani razdelek lahko priključimo tudi ročno iz konzole: | + | |
| - | + | ||
| - | sudo cryptsetup luksOpen /dev/sdc3 mojdisk | + | |
| - | + | ||
| - | Ukaz šifrirani razdelek /dev/sdc3 priključi na virtualno napravo / | + | |
| - | + | ||
| - | sudo mount / | + | |
| - | + | ||
| - | Napravo lahko tudi ročno odklopimo. Najprej jo odklopimo iz " | + | |
| - | + | ||
| - | sudo umount / | + | |
| - | + | ||
| - | Nato pa še iz " | + | |
| - | + | ||
| - | sudo cryptsetup luksClose mojdisk | + | |
| - | + | ||
| - | Sedaj USB disk lahko fizično odklopimo iz računalnika. | + | |
| - | + | ||
| - | ==== Sprememba imena razdelka (ang. volume label) ==== | + | |
| - | + | ||
| - | Najprej pogledamo kje je razdelek priklopljen: | + | |
| - | mount | + | |
| - | + | ||
| - | Dobimo približno takle izpis iz katerega sledi, da je ime razdelka (v našem primeru) // | + | |
| - | / | + | |
| - | + | ||
| - | Iz izpisa sledi, da je razdelek priklopljen na / | + | |
| - | sudo umount / | + | |
| - | + | ||
| - | === Sprememba imena razdelka z datotečnim sistemom ReiserFS === | + | |
| - | V opisanem primeru bomo šifrirani razdelek poimenovali // | + | |
| - | sudo reiserfstune / | + | |
| - | + | ||
| - | === Sprememba imena razdelka z datotečnim sistemom FAT32 === | + | |
| - | Sprememba imena razdelka z datotečnim sistemom FAT32 pod Linuxom s pomočjo orodja //mtools// oz. //mlabel// na šifriranih razdelkih žal ne deluje, zato je verjetno najbolj enostavno spremembo opraviti v okolju Windows. | + | |
| - | + | ||
| - | === Sprememba imena razdelka z datotečnim sistemom NTFS === | + | |
| - | Uporabimo ukaz ntfslabel (nameščen moramo imeti paket // | + | |
| - | sudo ntfslabel / | + | |
| - | + | ||
| - | === Sprememba imena razdelka z datotečnim sistemom ext3 === | + | |
| - | Uporabimo ukaz e2label (isti ukaz lahko uporabimo na datotečnem sistemu ext2): | + | |
| - | sudo e2label / | + | |
| - | + | ||
| - | Razdelek lahko sedaj ponovno priklopimo in njegovo ime bo sedaj USB-crypt, priklopljen pa bo na / | + | |
| - | + | ||
| - | + | ||
| - | ==== Nastavljanje ustreznih pravic za pisanje na šifrirani razdelek z datotečnim sistemom ReiserFS, ext3 in ext2 ==== | + | |
| - | + | ||
| - | Privzeto ima lastniške pravice za pisanje na šifrirani razdelek z datotečnim sistemom ReiserFS, ext3 in ext2 korenski uporabnik (tim. //root//) oz. administrator sistema. Tega problema pri FAT32 in NTFS razdelkih ni, saj jih Ubuntu samodejno priključi v polnem bralno-pisalnem načinu. | + | |
| - | + | ||
| - | Rešitev problema je, da ustvarimo poseben imenik, ki ga dodelimo trenutnemu uporabniku... | + | |
| - | sudo mkdir / | + | |
| - | sudo chown -R matej.matej / | + | |
| - | + | ||
| - | ...ali pa trenutnemu upoarbniku dodelimo celoten disk: | + | |
| - | sudo chown -R matej.matej / | + | |
| - | + | ||
| - | Sedaj ima uporabnik //matej// možnost pisanja v podimenik /matej oziroma na celoten disk brez dodatnih administratorskih pravic. | + | |
| - | + | ||
| - | + | ||
| - | ==== Dodajanje in odvzemanje gesel za dostop do šifriranega razdelka ==== | + | |
| - | + | ||
| - | Če želimo, lahko dodajamo ali odstranjujemo gesla za dostop do šifriranega razdelka. To lahko storimo pri priključeni ali programsko odklopljenem šifriranem razdelku. Gesla se shranjujejo na posebna mesta (ang. //slot//) v šifriranem razdelku, ki se štejejo od nič dalje. Prvo geslo se torej nahaja na mestu 0, drugo na mestu 1, itd. Če želimo, lahko najprej pogledamo koliko prostih mest imamo še na voljo: | + | |
| - | cryptsetup luksDump /dev/sdc3 | + | |
| - | + | ||
| - | Dodajanje gesla je sedaj mogoče z naslednjim ukazom (kot parameter ukazu podamo razdelek, torej /// | + | |
| - | sudo cryptsetup luksAddKey /dev/sdc3 | + | |
| - | + | ||
| - | Najprej je treba vnesti enega izmed obstoječih gesel, nato pa novo geslo, ki ga še potrdimo. Izpis je približno takle: | + | |
| - | Enter any LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Enter new passphrase for key slot: | + | |
| - | Verify passphrase: | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Brisanje gesla iz mesta 1 (kot parameter ukazu podamo razdelek, torej /// | + | |
| - | sudo cryptsetup luksDelKey /dev/sdc3 1 | + | |
| - | + | ||
| - | Najprej je potrebno vnesti enega izmed obstoječih gesel (vendar pa ne tistega, ki ga želimo odstraniti). Še opozorilo: če odstranimo vsa gesla, je dostop do šifriranega razdelka za vedno onemogočen. Izpis je približno takle: | + | |
| - | Enter any remaining LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Sprememba gesla je mogoča tako, da najprej dodamo novo geslo, nato pa izbrišemo starega. | + | |
| - | + | ||
| - | ==== Uporaba LUKS šifriranih razdelkov v okolju Windows ==== | + | |
| - | + | ||
| - | Uporaba LUKS šifriranja (ki ga podpira program cryptsetup) ima še eno prednost. LUKS šifrirane razdelke je namreč mogoče uporabiti tudi v okolju Windows ter celo v PDA napravah. Pri tem si pomagamo s programom [[http:// | + | |
| - | + | ||
| - | Priklop šifriranega razdelka je enostaven. V meniju //File// izberemo možnost //Linux volume// in nato //Mount partition//: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Nato vnesemo geslo: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Pritisnemo //OK//... | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | ...in razdelek je priključen: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Žal pri uporabi naprednejših datotečnih sistemov kot npr. //ext3// ali // | + | |
| - | + | ||
| - | V tem primeru je šifrirani razdelkek v okolju Windows takoj po uspešnem priklopu povsem normalno viden: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | ==== Uporaba datotek s ključem: uporaba LUKS šifriranih razdelkov v organizacijskem okolju ==== | + | |
| - | + | ||
| - | Ker cryptsetup omogoča uporabo več gesel, je mogoče šifrirane razdelke uporabljati tudi v večuporabniških okoljih, pri čemer imajo različni uporabniki lahko različna gesla. V primeru uporabe šifriranja v večjih organizacijah pa pogosto prihaja do problema, da uporabniki pozabljajo gesla. Težavo je mogoče rešiti tako, da vsakemu šifriranemu razdelku dodelimo posebno rezervno geslo, ki je shranjeno pri administratorju oz. upravljalcu šifrirnih ključev. V primeru, da uporabnik pozabi geslo, ga upravljalec šifrirnih ključev s svojim ključem lahko enostavno obnovi. Seveda je v tem primeru pomembno zaupanje: zaupanje, da uporabnik rezervnega gesla ne bo odstranil ter zaupanje, da bo upravljalec šifrirnih ključev z rezevnim ključem ravnal skrbno in odgovorno. To vključuje tudi varno shrambo rezervnega šifrirnega ključa. | + | |
| - | + | ||
| - | Možnost zlorabe je mogoče nekoliko zmanjšati z uporabo datotek s ključem, ki jih lahko shranimo v sefu. Upravljalec šifrirnih ključev namreč bistveno lažje namerno ali pomotoma komu pove navadno rezervno šifrirno geslo, kot pa iz ustrezno varovanega sefa odnese datoteko s ključem, ki vsebuje niz naključnih znakov. V nadaljevanju so bomo ogledali kako je na šifrirana mesta v šifriranem razdelku mogoče dodati datoteko s ključem, ki vsebuje naključen niz znakov. | + | |
| - | + | ||
| - | === Ustvarjanje datoteke s ključem === | + | |
| - | Najprej ustvarimo datoteko s ključem, ki vsebuje 2048-bitni ključ (256 znakov x 8 bitov = 2048 bitni ključ). Datoteko s ključem poimenujmo // | + | |
| - | dd if=/ | + | |
| - | V tem primeru je smiselno uporabiti pravi in ne psevdonaključni generator, saj je datoteka s ključem razmeroma majhna. Ker je potrebno zbrati nekaj entropije po vnosu ukaza lahko premikamo miško ali pritiskamo tipke na tipkovnici. | + | |
| - | + | ||
| - | === Dodajanje datoteke s ključem na šifrirno mesto === | + | |
| - | Nato v novo šifrirno mesto dodamo datoteko s ključem. Predpostavimo, | + | |
| - | sudo cryptsetup luksAddKey /dev/sdc3 keyfile | + | |
| - | + | ||
| - | Vnesemo obstoječe geslo in postopek je končan: | + | |
| - | Enter any LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Datoteko s ključem je sedaj potrebno varno shraniti. Potrebno je tudi zagotoviti, da se pri npr. zapisovanju na CD ne shrani v kakšen začasni imenik. | + | |
| - | Če želimo, lahko preverimo, da je datoteka s ključem zares shranjena na šifrirnem mestu 1: | + | |
| - | sudo cryptsetup luksDump /dev/sdc3 | + | |
| - | + | ||
| - | LUKS header information for /dev/sdd1 | + | |
| - | + | ||
| - | Version: | + | |
| - | Cipher name: aes | + | |
| - | Cipher mode: cbc-essiv: | + | |
| - | Hash spec: sha1 | + | |
| - | Payload offset: 1032 | + | |
| - | MK bits: 128 | + | |
| - | MK digest: | + | |
| - | MK salt: ed f4 ac 6c df d9 ea 61 2c 41 0c 52 84 aa 3e 24 | + | |
| - | 35 d7 ec ce 3a a8 87 83 b1 a8 ab 30 8b e6 c2 32 | + | |
| - | MK iterations: | + | |
| - | UUID: | + | |
| - | + | ||
| - | Key Slot 0: ENABLED | + | |
| - | Iterations: | + | |
| - | Salt: c1 f4 39 a9 ef bf 37 f5 4a 0e a4 6f ac 82 e5 e2 | + | |
| - | d8 fa d4 44 62 55 d0 06 c2 e6 24 66 97 dc de 75 | + | |
| - | Key material offset: | + | |
| - | AF stripes: | + | |
| - | Key Slot 1: ENABLED | + | |
| - | Iterations: | + | |
| - | Salt: d3 89 65 63 be 61 b6 52 58 9b d4 ac 35 d9 c6 e3 | + | |
| - | 88 f0 a8 91 d3 c6 c4 31 80 96 ad d7 14 aa fa 0f | + | |
| - | Key material offset: | + | |
| - | AF stripes: | + | |
| - | Key Slot 2: DISABLED | + | |
| - | Key Slot 3: DISABLED | + | |
| - | Key Slot 4: DISABLED | + | |
| - | Key Slot 5: DISABLED | + | |
| - | Key Slot 6: DISABLED | + | |
| - | Key Slot 7: DISABLED | + | |
| - | + | ||
| - | Datoteko s ključem iz mesta 1 lahko odstranimo z istim ukazom, kot odstranjujemo običajna gesla. | + | |
| - | + | ||
| - | === Priklop šifriranega razdelka s pomočjo datoteke s ključem === | + | |
| - | V primeru izgube šifrirnega gesla, lahko šifrirani razdelek priklopimo z rezervno datoteko s ključem z ukazom (uporabimo datoteko s ključem / | + | |
| - | sudo cryptsetup -d / | + | |
| - | + | ||
| - | Šifrirani razdelek se sedaj nahaja na / | + | |
| - | + | ||
| - | === Dodajanje novega gesla s pomočjo datoteke s ključem === | + | |
| - | Če želimo, lahko sedaj s pomočjo datoteke s ključem dodamo novo geslo na novo šifrirno mesto. Uporabimo ukaz: | + | |
| - | sudo cryptsetup -d keyfile luksAddKey /dev/sdc1 | + | |
| - | + | ||
| - | ...in dobimo približno takle izpis, kjer vnesemo novo geslo, ki se v našem primeru doda na šifrirno mesto 1: | + | |
| - | key slot 1 unlocked. | + | |
| - | Enter new passphrase for key slot: | + | |
| - | Verify passphrase: | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Staro geslo (na šifrirnem mestu 0) odstranimo z ukazom: | + | |
| - | sudo cryptsetup luksDelKey /dev/sdc1 0 keyfile | + | |
| - | + | ||
| - | ===== Uporaba šifrirnega programa TrueCrypt ===== | + | |
| - | + | ||
| - | Za konec si bomo ogledali še uporabo šifrirnega programa [[http:// | + | |
| - | + | ||
| - | TrueCrypt ima številne uporabne funkcije, med drugim lahko znotraj šifriranega razdelka ustvari še skriti razdelek. Vsak je seveda dostopen s svojim geslom. V primeru, da smo prisiljeni razkriti svoje šifrirne ključe, lahko razkrijemo samo ključ navadnega razdelka, z običajno kriptoanalizo pa ni mogoče ugotoviti, da se znotraj te skriva še eden s podatki, ki jih zares želimo skriti (tim. //plausible deniability// | + | |
| - | + | ||
| - | TrueCrypt je mogoče zagnati tudi v tim. // | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Grafični vmesnik v okolju Windows omogoča enostavno ustvarjanje in delo s šifriranimi TrueCrypt razdelki, ki jih je mogoče uporabljati tako v okolju Windows, kot v okolju Linux. TrueCrypt omogoča uporabo pravih ali virtualnih šifriranih razdelkov. | + | |
| - | + | ||
| - | ==== Namestitev programa TrueCrypt ==== | + | |
| - | + | ||
| - | Program najprej [[http:// | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | === Ročna namestitev programa TrueCrypt === | + | |
| - | + | ||
| - | Če uporabljamo kakšno drugo Linux distribucijo lahko prenesemo datoteko z izvorno kodo in jo razširimo: | + | |
| - | tar xvfz truecrypt-4.3a-source-code.tar.gz | + | |
| - | cd truecrypt-4.3a-source-code/ | + | |
| - | + | ||
| - | Pred namestitvijo moramo namestiti še izvorno kodo Linux jedra. Najprej pogledamo različico našega trenutnega Linux jedra: | + | |
| - | + | ||
| - | uname -r | + | |
| - | + | ||
| - | Dobimo približno naslednji izpis: | + | |
| - | 2.6.20-15-generic | + | |
| - | + | ||
| - | Iz izpisa sledi, da uporabljamo jedro 2.6.20, torej bomo potrebovali programski paket linux-source-2.6.20: | + | |
| - | sudo apt-get install linux-source-2.6.20 | + | |
| - | cd /usr/src/ | + | |
| - | sudo tar xvjf linux-source-2.6.20.tar.bz2 | + | |
| - | + | ||
| - | Ustvarimo še simbolno povezavo do izvorne kode Linux jedra... | + | |
| - | + | ||
| - | sudo ln -s linux-source-2.6.12 linux | + | |
| - | + | ||
| - | ...ter namestimo orodja potrebna za prevajanje: | + | |
| - | + | ||
| - | sudo apt-get install build-essential | + | |
| - | + | ||
| - | Sedaj poženemo namestitveno skripto (na vsa vprašanja odgovorimo s privzetimi odgovori, torej pritisnemo tipko // | + | |
| - | + | ||
| - | cd | + | |
| - | cd truecrypt-4.3a-source-code/ | + | |
| - | sudo ./ | + | |
| - | sudo ./ | + | |
| - | + | ||
| - | Postopek namestitve je s tem končan. | + | |
| - | + | ||
| - | ==== Ustvarjanje novega šifriranega TrueCrypt virtualnega razdelka ==== | + | |
| - | + | ||
| - | V Linuxu nov TrueCrypt razdelek ustvarimo s pomočjo parametra //-c//, ki mu podamo lokacijo TrueCrypt datoteke ali razdelka, ki bo šifriran (npr. /dev/sdc3). Predpostavimo, | + | |
| - | + | ||
| - | sudo truecrypt -c mojtest.tc | + | |
| - | + | ||
| - | V nadaljevanju najprej določimo tip nosilca: običajen (// | + | |
| - | + | ||
| - | Volume type: | + | |
| - | 1) Normal | + | |
| - | 2) Hidden | + | |
| - | Select [1]: | + | |
| - | + | ||
| - | Izberemo še datotečni sistem (pravzaprav je na voljo le FAT): | + | |
| - | + | ||
| - | Filesystem: | + | |
| - | 1) FAT | + | |
| - | 2) None | + | |
| - | Select [1]: | + | |
| - | + | ||
| - | Vnesemo velikost TrueCrypt razdelka (npr. //2M// za 2 Mb): | + | |
| - | + | ||
| - | Enter volume size (bytes - size/ | + | |
| - | + | ||
| - | Izberemo zgostitveni in šifrirni algoritem (npr. RIPEMD-160 ter AES): | + | |
| - | + | ||
| - | Hash algorithm: | + | |
| - | 1) RIPEMD-160 | + | |
| - | 2) SHA-1 | + | |
| - | 3) Whirlpool | + | |
| - | Select [1]: | + | |
| - | + | ||
| - | Encryption algorithm: | + | |
| - | 1) AES | + | |
| - | 2) Blowfish | + | |
| - | 3) CAST5 | + | |
| - | 4) Serpent | + | |
| - | 5) Triple DES | + | |
| - | 6) Twofish | + | |
| - | 7) AES-Twofish | + | |
| - | 8) AES-Twofish-Serpent | + | |
| - | 9) Serpent-AES | + | |
| - | 10) Serpent-Twofish-AES | + | |
| - | 11) Twofish-Serpent | + | |
| - | Select [1]: | + | |
| - | + | ||
| - | Na koncu vnesemo geslo za dostop oziroma lokacijo datoteke s ključem (njena vsebina predstavlja šifrirni ključ zato je pomembno, da je kasneje ne spreminjamo): | + | |
| - | + | ||
| - | Enter password for new volume ' | + | |
| - | Re-enter password: | + | |
| - | + | ||
| - | Enter keyfile path [none]: | + | |
| - | + | ||
| - | Na koncu moramo zbrati še nekaj entropije s pomočjo premikanja miške: | + | |
| - | Is your mouse connected directly to computer where TrueCrypt is running? [Y/n]: | + | |
| - | Please move the mouse randomly until the required amount of data is captured... | + | |
| - | Mouse data captured: 12% | + | |
| - | + | ||
| - | In TrueCrypt datoteka je izgotovljena: | + | |
| - | + | ||
| - | Done: 2.00 MB Speed: 1.74 MB/s Left: 0: | + | |
| - | Volume created. | + | |
| - | + | ||
| - | Ker smo datoteko ustvarili kot uporabnik z administratorskimi pravicami ji na koncu še popravimo lastništvo: | + | |
| - | + | ||
| - | sudo chown matej.matej mojtest.tc | + | |
| - | + | ||
| - | S tem je postopek končan. V okolju Windows je postopek podoben, le da ga izvedemo preko grafičnega vmesnika. Iz menija //Volumes// izberemo //Create New Volume// in sledimo preprostim navodilom. | + | |
| - | + | ||
| - | ==== Priklop šifriranega TrueCrypt razdelka ==== | + | |
| - | + | ||
| - | V okolju Windows TrueCrypt razdelke priklapljamo s pomočjo grafičnega vmesnika: najprej izberemo datoteko, nato pa črko nosilca (npr. X:) in pritisnemo //Mount//. Grafičnega vmesnika za TrueCrypt v okolju Linux sicer še ni, zato je potrebno ukaze vnašati preko konzole. Predpostavimo, | + | |
| - | + | ||
| - | sudo truecrypt / | + | |
| - | + | ||
| - | Vnesemo TrueCrypt geslo... | + | |
| - | Enter password for '/ | + | |
| - | + | ||
| - | ...in razdelek je priključen na /mnt. | + | |
| - | + | ||
| - | ==== Izpis priključenih TrueCrypt razdelkov ==== | + | |
| - | + | ||
| - | sudo truecrypt -vl | + | |
| - | + | ||
| - | Dobimo približno tak izpis: | + | |
| - | / | + | |
| - | Volume: / | + | |
| - | Type: Normal | + | |
| - | Size: 15728128 bytes | + | |
| - | Encryption algorithm: AES | + | |
| - | Mode of operation: LRW | + | |
| - | Read-only: No | + | |
| - | Hidden volume protected: No | + | |
| - | + | ||
| - | ==== Odklop TrueCrypt razdelkov ==== | + | |
| - | + | ||
| - | TrueCrypt razdelke lahko odklopimo s parametrom //-d//, ki mu dodamo lokacijo TrueCrypt razdelka (npr. /// | + | |
| - | + | ||
| - | sudo truecrypt -d / | + | |
| - | + | ||
| - | Ukaz: | + | |
| - | + | ||
| - | sudo truecrypt -d | + | |
| - | + | ||
| - | pa odklopi **vse** priključene TrueCrypt razdelke. | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Zaključek ===== | + | |
| - | + | ||
| - | Kot smo torej videli, je uporaba šifriranja nosilcev podatkov razmeroma enostavna in precej dobro integrirana v Ubuntu Linux, šifriranje pa je mogoče uporabiti na različnih platformah, kar mu pravzaprav daje veliko stopnjo uporabnosti. Uporabniki, ki cenijo svoje podatke in svojo zasebnost, imajo torej na voljo dovolj alternativ, da se učinkovito zaščitijo. V Linuxu je to najbolj enostavno s tremi preprostimi koraki: | + | |
| - | - namestimo programski paket cryptsetup in naložimo ustrezne jedrne module | + | |
| - | - izbrani razdelek na nosilcu podatkov prepišemo z naključnimi znaki (opcijsko) | + | |
| - | - razdelek formatiramo s programom luksformat, kjer določimo geslo za dostop do njega. | + | |
| - | + | ||
| - | Oziroma: | + | |
| - | - namestimo šifrirni program TrueCrypt | + | |
| - | - ustvarimo šifriran virtualni razdelek (kjer določimo velikost, geslo in ostale nastavitve). | + | |
| - | + | ||
| - | Od tu naprej s šifriranim razdelkom delamo kot z običajnimi razdelki, le s to razliko, da so podatki na njem varni pred nepooblaščenimi zasegi. Podobno enostavna je uporaba šifriranja v okolju Windows, le da namesto programa cryptsetup uporabimo FreeOTFE oziroma različico TrueCrypta za Windows. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | // | + | |
| - | + | ||
| - | Mimogrede, v skladu s pravnim načelom, ki prepoveduje samoobtožbo (ang. // | + | |
| - | + | ||
| - | V Sloveniji je prepoved samoobtožbe ustavna kategorija, saj //29. člen Ustave določa//, da obdolženec kaznivega dejanja ni dolžan izpovedati zoper sebe ali svoje bližnje, ali priznati krivde, podobno določbo pa ima tudi 5. člen //Zakona o kazenskem postopku//. | + | |
| - | + | ||
| - | Prisilna dejanja za razkritje gesel ali ključev so torej v pravni državi za osumljenca ali obtoženca nezakonita, mogoče pa jih je uporabiti zgolj za priče v postopku. | + | |
| - | + | ||
| - | Čisto za konec pa še namig za uporabnike Linuxa, glede rednega shranjevanja varnostnih kopij. Uporabite lahko orodje rsync, ki ustvari varnostne kopije podatkov. Orodje ob prvem prenosu ustvari varnostno kopijo, kasneje pa zna prenesti samo spremembe datotek. Ukaz, s katerim si iz npr. /home/matej ustvarimo varnostno kopijo podatkov na / | + | |
| - | sudo rsync --verbose --progress --stats --compress --rsh=/ | + | |
| - | + | ||
| - | ===== Dodatno branje ===== | + | |
| - | + | ||
| - | Več informacij o šifriranju nosilcev podatkov si lahko preberete na: | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | + | ||
| - | + | ||
| - | ====== Vzpostavitev v celoti šifriranega sistema - Ubuntu Feisty | + | |
| //Avtorja: Matej Kovačič, Jožko Škrablin// | //Avtorja: Matej Kovačič, Jožko Škrablin// | ||
| - | // | + | To je drugi del serije |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | //15. junija 2004 je italijanska policija [[http:// | + | |
| - | + | ||
| - | + | ||
| - | ... | + | |
| - | + | ||
| - | + | ||
| - | //12. marca 2007 sta [[http:// | + | |
| - | + | ||
| - | ... | + | |
| - | + | ||
| - | //Konec avgusta 2006 je CNN poročal, da so sudanske varnostne sile na letališčih pričele zasegati in pregledovati prenosne računalnike, | + | |
| - | + | ||
| - | Neuradno pa sudanske oblasti verjetno zanimajo povsem druge stvari. Poleg velikega števila osebnih podatkov in gesel za dostop do elektronske pošte ter on-line storitev (tudi bančnih računov), se oblasti verjetno najbolj zanimajo za informacije poslovnih uporabnikov, | + | |
| - | + | ||
| - | Zasegov in pregledovanja prenosnih računalnikov na mejah ne izvaja samo nedemokratični Sudan, pač pa tudi najbolj ZDA. Ameriški mejni organi so januarja 2004 zasegli in preiskali prenosni računalnik nekega potnika. Računalnik so forenzično obdelali in v izbrisanem brskalnikovem medpomnilniku našli slike z otroško pornografijo. | + | |
| - | + | ||
| - | Po pritožbi pa je Zvezno prizivno sodišče 24. julija letos presodilo, da so naključni zasegi prenosnih računalnikov in pregledovanja s pomočjo forenzičnih programov v ZDA zakoniti. ([[http:// | + | |
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | Pri varnosti potrebno odločati med udobjem in varnostjo. Treba se je pač odločiti ali nam več pomeni varnost naših podatkov, ali pa udobje brezbrižnosti. 8-) Šifriranje diskov nekoliko upočasni delovanje sistema (čeprav je to pri običajni rabi na običajnem računalniku povsem neopazno). Uporaba | + | |
| - | + | ||
| - | ===== Zakaj? ===== | + | |
| - | + | ||
| - | Ena izmed možnosti napada na računalniške sisteme je tudi tim. //offline// napad, torej napad, ko napadalec pridobi fizični dostop do računalnika medtem, ko je le-ta ugasnjen. V primeru fizičnega dostopa do (ugasnjenega) računalnika - lahko gre tudi za izgubo, krajo ali pa lastnik računalnik nese na servis - napadalec lahko dostopa do trdega diska in podatkov na njem. | + | |
| - | + | ||
| - | Nevarnost obstaja tudi, če imamo nekatere kritične podatke šifrirane. Nešifrirani lahko ostanejo podatki v medpomnilniku (tim. //cache// in //swap//), v raznih začasnih datotekah (//tmp//) ali v raznih datotekah beleženja aktivnosti (tim. //log datoteke// | + | |
| V nadaljevanju si bomo ogledali kako vzpostaviti šifriranje celotnega operacijskega sistema Ubuntu Linux (različica 7.04 Feisty Fawn). Nešifriran ostane samo zagonski razdelek (/boot), korenski imenik (tim. //root//), domači imenik (///home//) in izmenljivi prostor (tim. //swap//), pa so šifrirani z uporabo LUKS modula programskega paketa cryptsetup. LUKS oz. Linux Unified Key Setup podpora omogoča uporabo več gesel, ki jih je mogoče tudi spreminjati, | V nadaljevanju si bomo ogledali kako vzpostaviti šifriranje celotnega operacijskega sistema Ubuntu Linux (različica 7.04 Feisty Fawn). Nešifriran ostane samo zagonski razdelek (/boot), korenski imenik (tim. //root//), domači imenik (///home//) in izmenljivi prostor (tim. //swap//), pa so šifrirani z uporabo LUKS modula programskega paketa cryptsetup. LUKS oz. Linux Unified Key Setup podpora omogoča uporabo več gesel, ki jih je mogoče tudi spreminjati, | ||
| Line 803: | Line 27: | ||
| Tako postavljen sistem bo mogoče zagnati (oz. dostopati do diskov) samo s pomočjo gesla, ki ga vnesemo ob zagonu sistema, sicer pa tako postavljen sistem deluje povsem običajno. | Tako postavljen sistem bo mogoče zagnati (oz. dostopati do diskov) samo s pomočjo gesla, ki ga vnesemo ob zagonu sistema, sicer pa tako postavljen sistem deluje povsem običajno. | ||
| - | ===== Šifriranje diskov: Debian way ===== | + | [[kako:varnost:kripto2|Celoten |
| - | + | ---- | |
| - | Eden prvih, če ne povsem prvi operacijski sistem, ki je v namestitveni proces uvedel šifriranje trdih diskov je Debian Linux, ki ima podporo za šifrirane diske od različice //Echt// dalje. | + | [[kako:kako| Nazaj]] |
| - | + | ||
| - | Debianov namestilnik namreč uporabnikom omogoča, da ustvarjajo šifrirane razdelke že med samim namestitvenim procesom: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Pri Debianu je uporaba šifriranih razdelkov dobro integrirana v sam sistem, težava je le v tem, da je Debian Linux uporabniško precej neprijazen in večinoma namenjen strežnikom. Po drugi strani pa na Debianu temeljijo številne druge distribucije Linuxa, med drugim tudi Ubuntu, poleg tega je Debian pogosto postavljal standarde razvoja Linuxa, zato lahko pričakujemo, | + | |
| - | + | ||
| - | ===== Prenos in namestitev strežniške različice Ubuntu 7.04 ===== | + | |
| - | Po drugi strani pa z nekoliko več dela lahko šifriran sistem vzpostavimo tudi pod Ubuntu Linuxom, ki velja za enega bolj uporabniško prijaznih. Za razliko od Debiana, ki pri vzpostavitvi šifriranega sistema uporablja osnovni cryptsetup, pa lahko pri v nadaljevanju opisanem postopku uporabimo cryptsetup z LUKS podporo, kar nam omogoča enostavno menjavanje šifrirnih gesel in ključev. | + | |
| - | + | ||
| - | Ker podpora za šifriranje sistema žal v Ubuntu še ni privzeto vgrajena, se je potrebno poslužiti nekaterih trikov. Tako na računalnik najprej namestimo strežniško različico Ubuntu Linuxa, vzpostavimo šifrirane razdelke, nato pa nanje namestimo namizno različico Ubuntu Linuxa in strežniško odstranimo. | + | |
| - | + | ||
| - | Iz interneta si najprej | + | |
| - | + | ||
| - | ==== Prepis diska z naključnimi podatki ==== | + | |
| - | + | ||
| - | Preden se lotimo šifriranja podatkovnih nosilcev je dobro razmisliti o uničenju starih podatkov na njih oziroma prepis nosilcev podatkov z naključnimi podatki. Prepisovanje diska z naključnimi podatki sicer ni nujno potrebno, je pa priporočljivo. | + | |
| - | + | ||
| - | Stare podatke je namreč z nekaterimi programsko forenzičnimi tehnikami (npr. z orodji kot so Autopsy Forensic Browser, Testdisk, Photo Rec, in drugi) mogoče precej enostavno obnoviti, poleg tega pa je prepisovanje diska z naključnimi podatki koristno tudi zato, ker na tako prepisanem disku ni mogoče (oz. je to izredno težko) ugotoviti koliko pravih šifriranih podatkov je na disku in koliko je praznega prostora. | + | |
| - | + | ||
| - | Po drugi strani pa je prepisovanje diska z naključnimi podatki precej dolgotrajen postopek. Več o prepisovanju diska z naklljučnimi podatki si preberite v poglavju " | + | |
| - | dd if=/ | + | |
| - | + | ||
| - | ==== Postopek namestitve Ubuntu strežnika ==== | + | |
| - | + | ||
| - | **OPOZORILO**: | + | |
| - | + | ||
| - | Če nameščamo na obstoječi disk, je potrebno razmisliti ali ni smiselno disk prepisati z naključnimi podatki. Ko je disk pripravljen, | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | V naslednjem koraku izberemo slovenski jezik. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Na vprašanje "// | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Zaradi [[https:// | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Če imamo DHCP, bo namestilnik sam zaznal omrežne nastavitve, sicer je potrebno IP naslov vpisati ročno. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Določimo ime računalnika (npr. // | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Pri razdeljevanju diska izberemo // | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | ==== Razdeljevanje diska ==== | + | |
| - | Predpostavka je, da imamo trdi disk /hda. Disk razdelimo na štiri razdelke: | + | |
| - | * razdelek **/boot**, velikosti 100 Mb - **/hda1** | + | |
| - | * razdelek **/** (začasni korenski imenik) (bodoči **cswap**), velikosti 2 Gb - **/hda2** | + | |
| - | * neuporabljeni razdelek (bodoči korenski imenik **croot**), velikosti 10 Gb - **/hda3** | + | |
| - | * neuporabljeni razdelek (bodoči domači imenik **chome**), izberemo vso velikost, ki ostane - **/hda4** | + | |
| - | + | ||
| - | **Še priporočilo**: | + | |
| - | + | ||
| - | Ko bo namestitev končana, bomo imeli na disku štiri razdelke: /boot, / | + | |
| - | + | ||
| - | Najprej izberemo prazen prostor in na njem ustvarimo nov razdelek. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Določimo njegovo velikost (npr. 100 MB, 2 GB, itd.), vrsto ter mesto. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Določimo priklopno točko (pri prvem /boot, pri zadnjih dveh //Ne priklopi//) ter datotečni sistem (npr. // | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Ko končamo ustvarjanje prvega razdelka se lotimo naslednjega, | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Namestilnik bo zaznal, da tretjemu in četrtemu razdelku ni dodeljena priklopna točna in nas vpraša, ali se želimo vrniti nazaj na razdeljevanje. Odgovorimo //Ne//. | + | |
| - | + | ||
| - | Prav tako nas opozori, da nismo namenili razdelka izmenljivemu prostoru (swap) in nas vpraša, če se želimo vrniti nazaj. Odgovorimo //Ne//. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Izberemo, da se spremembe zapišejo na disk in namestitev se nadaljuje... | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | ==== Dokončanje namestitve ==== | + | |
| - | + | ||
| - | Nastavimo uro (ali je sistemski čas nastavljen na UTC). | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Izberemo polno ime za novega uporabnika. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Izberemo uporabniško ime... | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | ...in geslo (vpišemo ga dvakrat). | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Sledi nameščanje osnovnega sistema. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Nameščanja DNS in LAMP strežnika ne izberemo. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | V nekaterih primerih se lahko zgodi, da namestitev obstane oz. namestitveni program " | + | |
| - | ps | grep -i apt | + | |
| - | PID številka je številka v prvem stolpcu v vrstici, kjer se pojavi niz //apt-get update//. Proces sedaj ubijemo z ukazom (namesto //PID// vnesemo to številko): | + | |
| - | kill PID | + | |
| - | + | ||
| - | Namestitev se potem brez težav nadaljuje naprej. Čez nekaj časa se namestitev zaključi in sledi prvi zagon sistema. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | ===== Namestitev šifriranja ===== | + | |
| - | Po prvem zagonu sistema bo računalnik najprej našel napak v datotečnem sistemu in pognal program //fsck// ter napake samodejno odpravil. Računalnik se nato ponovno zažene brez težav. To se žal ponovi tudi kasneje, ob prvem zagonu sistema iz šifriranega razdelka. Napaka se kasneje ne pojavlja več, edina težava je, da se ob prvem zagonu sistema računalnik dvakrat zažene. Ko se torej računalnik zbudi, se prijavimo vanj ter vstopimo v administratorski način: | + | |
| - | sudo su | + | |
| - | + | ||
| - | Naložimo potrebne module: | + | |
| - | modprobe dm-crypt | + | |
| - | modprobe dm-mod | + | |
| - | modprobe aes | + | |
| - | modprobe sha256 | + | |
| - | + | ||
| - | Dodamo module v datoteko / | + | |
| - | echo dm-crypt >> / | + | |
| - | echo dm-mod >> / | + | |
| - | echo aes >> / | + | |
| - | echo sha256 >> / | + | |
| - | + | ||
| - | Namestimo program cryptsetup: | + | |
| - | apt-get install cryptsetup | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Priprava šifriranega korenskega razdelka ==== | + | |
| - | + | ||
| - | Sedaj formatiramo tretji razdelek (v danem primeru z datotečnim sistemom //ext3//) - bodoči šifrirani korenski imenik (naprej vpišemo //YES//, s čimer se strinjamo s formatiranjem, | + | |
| - | luksformat -t ext3 /dev/hda3 | + | |
| - | + | ||
| - | Če želimo uporabiti večji šifrirni ključ (256-bitno AES šifriranje) uporabimo ukaz (tako ustvarjen razdelek bomo morali kasneje ročno formatirati z ukazom //sudo mkfs.ext3// | + | |
| - | cryptsetup --key-size 256 luksFormat /dev/hda3 | + | |
| - | + | ||
| - | Dobimo približno takle izpis: | + | |
| - | + | ||
| - | Creating encrypted device on / | + | |
| - | + | ||
| - | WARNING! | + | |
| - | ======== | + | |
| - | This will overwrite data on /dev/hda3 irrevocably. | + | |
| - | + | ||
| - | Are you sure? (Type uppercase yes): YES | + | |
| - | Enter LUKS passphrase: | + | |
| - | Verify passphrase: | + | |
| - | Command successful. | + | |
| - | Please enter your passphrase again to verify it | + | |
| - | Enter LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | mke2fs 1.40-WIP (14-Nov-2006) | + | |
| - | ... | + | |
| - | ... | + | |
| - | Writing superblocks and filesystem accounting information: | + | |
| - | + | ||
| - | This filesystem will be automatically checked every 39 mounts or | + | |
| - | 180 days, whichever comes first. | + | |
| - | + | ||
| - | Formatirani razdelek priklopimo kot // | + | |
| - | cryptsetup luksOpen /dev/hda3 croot | + | |
| - | + | ||
| - | Vnesemo geslo in razdelek je priključen: | + | |
| - | Enter LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Če ga nismo formatirali z luksformatom, | + | |
| - | mkfs.ext3 / | + | |
| - | + | ||
| - | Razdelek priklopimo na /mnt: | + | |
| - | mount / | + | |
| - | + | ||
| - | Nanj prekopiramo datoteke iz korenskega razdelka (to traja nekaj časa, med parametri lahko dodamo //-v// (verbose), da dobimo natančen izpis kaj se trenutno kopira): | + | |
| - | cd /mnt | + | |
| - | cp -xa / . | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Priprava zagonskih skript in okolja šifriranega korenskega imenika ==== | + | |
| - | + | ||
| - | Z ukazom //chroot// zamenjamo korenski imenik v bodoči šifrirani korenski imenik (**POZOR: potrebno je paziti na poti!**): | + | |
| - | cd / | + | |
| - | mount --bind proc mnt/proc | + | |
| - | mount --bind sys mnt/sys | + | |
| - | mount --bind dev mnt/dev | + | |
| - | chroot /mnt | + | |
| - | + | ||
| - | Priklopimo zagonski (/boot) razdelek: | + | |
| - | mount /dev/hda1 boot | + | |
| - | + | ||
| - | Popravimo datoteko / | + | |
| - | nano etc/ | + | |
| - | + | ||
| - | # <target name> | + | |
| - | croot / | + | |
| - | # cswap / | + | |
| - | # chome / | + | |
| - | + | ||
| - | Popravimo datoteko /etc/fstab (vnosa za cswap in chome zaenkrat še zakomentiramo!): | + | |
| - | nano / | + | |
| - | + | ||
| - | Zakomentiramo trenutni korenski imenik (**pomembno, | + | |
| - | / | + | |
| - | # / | + | |
| - | # / | + | |
| - | + | ||
| - | Datoteka /etc/fstab sedaj izgleda približno takole (UUID-ji so simbolični): | + | |
| - | # /etc/fstab: static file system information. | + | |
| - | # | + | |
| - | # <file system> <mount point> | + | |
| - | proc /proc | + | |
| - | # /dev/hda2 | + | |
| - | # | + | |
| - | / | + | |
| - | # / | + | |
| - | # / | + | |
| - | # /dev/hda1 | + | |
| - | UUID=2fca8417-07de-4a7b-a8cb-4cfeddc89c7d /boot | + | |
| - | / | + | |
| - | / | + | |
| - | + | ||
| - | Naredimo ključ za bodoči chome: | + | |
| - | cd etc/keys | + | |
| - | dd if=/ | + | |
| - | + | ||
| - | Šifrirni ključ za chome se bo nahajal na korenskem razdelku, zato sistem med zagonom izpiše opozorilo, da to ni najbolj varno (izpiše se: //INSECURE MODE FOR / | + | |
| - | + | ||
| - | Naredimo novo zagonsko skripto initrd: | + | |
| - | cd /boot | + | |
| - | update-initramfs -u | + | |
| - | + | ||
| - | Popravimo Grub vnos (v vrstico //kernel// dodamo / | + | |
| - | nano / | + | |
| - | + | ||
| - | title | + | |
| - | root (hd0,0) | + | |
| - | kernel | + | |
| - | initrd | + | |
| - | quiet | + | |
| - | savedefault | + | |
| - | + | ||
| - | Žal je potrebno omenjeni Grub vnos ročno popravljati ob vsaki menjavi jedra operacijskega sistema. Problem lahko delno rešimo tako, da v datoteki / | + | |
| - | Vrstica se nahaja bolj na začetku datoteke in sicer v oddelku: | + | |
| - | ## ## Start Default Options ## | + | |
| - | ## default kernel options | + | |
| - | ## default kernel options for automagic boot options | + | |
| - | + | ||
| - | Izgleda približno takole (UUID je simboličen): | + | |
| - | # kopt=root=UUID=56161a45-6963-463f-b2a6-b2a47f48bac7 ro | + | |
| - | + | ||
| - | Vrstico spremenimo takole (pozor, vrstica naj ostane enojno zakomentirana (#)!): | + | |
| - | # kopt=root=/ | + | |
| - | + | ||
| - | Ob vsaki nadgradnji ali menjavi jedra oziroma vsakič, ko bomo z administratorskimi privilegiji ročno pognali ukaz // | + | |
| - | kernel | + | |
| - | + | ||
| - | S tem smo rešili težavo pri določanju korenskega imenika, žal pa se v Grub vnosu še vedno pojavi predstavitveno okno (//splash screen//), ki ne omogoča vnosa LUKS gesla in bo zato potrebno pri omenjeni vrstici **splash** ročno spremeniti v **nosplash**! | + | |
| - | + | ||
| - | Zapustimo spremenjeni korenski imenik (croot): | + | |
| - | + | ||
| - | * pritisnemo **Ctrl-D** | + | |
| - | + | ||
| - | Sledi ponoven zagon sistema: | + | |
| - | reboot | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Priprava šifriranega izmenjalnega prostora (swap) in domačega razdelka (/home) ==== | + | |
| - | + | ||
| - | Sedaj se zbudimo v šifriranem sistemu (zaenkrat je šifriran samo korenski imenik). Na začetku (preden se sistem naloži), nas le-ta vpraša za LUKS geslo, brez katerega ni mogoče zagnati sistema: | + | |
| - | + | ||
| - | Starting up ... | + | |
| - | Loading, please wait... | + | |
| - | Setting up cryptographic volume croot (based on / | + | |
| - | Enter LUKS passphrase: | + | |
| - | + | ||
| - | Ko se sistem naloži, ponovno vstopimo v administratorski način: | + | |
| - | sudo su | + | |
| - | + | ||
| - | Če želimo, lahko prepišemo stari korenski imenik z naključnimi podatki: | + | |
| - | dd if=/ | + | |
| - | + | ||
| - | Če tega ne storimo pa je potrebno formatirati razdelek, kjer bo v bodoče šifrirani izmenjalni prostor (tim. swap - aktiven bo postal ob naslednjem zagonu sistema), sicer se naprava / | + | |
| - | mkswap /dev/hda2 | + | |
| - | + | ||
| - | Dobimo približno takle izpis: | + | |
| - | Setting up swapspace version 1, size = 1998737 kB | + | |
| - | no label, UUID=59a4dbb5-913c-4d9f-9a06-76dc232cd5af | + | |
| - | + | ||
| - | Naredimo podimenik na /dev (rešitev za [[https:// | + | |
| - | + | ||
| - | mkdir / | + | |
| - | + | ||
| - | Formatiramo bodoči domači (/home) razdelek (trenutno nastavimo navadno geslo, kasneje pa bomo dodali datoteko s ključem). Tudi v tem primeru lahko uporabimo večji ključ, na podoben način kot zgoraj: | + | |
| - | luksformat -t ext3 /dev/hda4 | + | |
| - | + | ||
| - | Priključimo šifrirani domači razdelek (vnesti je potrebno njegovo LUKS geslo) in ga priklopimo na /mnt: | + | |
| - | cryptsetup luksOpen /dev/hda4 chome | + | |
| - | mount / | + | |
| - | + | ||
| - | Na bodočem šifriranem domačem razdelku ustvarimo uporabniški imenik za trenutnega uporabnika (npr. za uporabnika matej) | + | |
| - | cd /mnt | + | |
| - | mkdir matej | + | |
| - | chown matej.matej matej | + | |
| - | + | ||
| - | Sedaj razdelku //chome// dodamo datoteko s ključem (razdelek bo sedaj dostopen z geslom **in** datoteko s ključem, ki se nahaja na / | + | |
| - | cryptsetup luksAddKey /dev/hda4 / | + | |
| - | + | ||
| - | Vnesemo trenutno LUKS geslo: | + | |
| - | Enter any LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | Če želimo, lahko LUKS geslo sedaj odstranimo (razdelek pa ostane dostopen samo z datoteko s ključem). | + | |
| - | + | ||
| - | Odkomentiramo //cswap// in //chome// vnos v / | + | |
| - | nano / | + | |
| - | + | ||
| - | Odkomentiramo //cswap// in //chome// vnos v / | + | |
| - | nano / | + | |
| - | + | ||
| - | Ponovno zaženemo sistem: | + | |
| - | reboot | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Vstop v šifrirani sistem in namestitev namiznega okolja ==== | + | |
| - | + | ||
| - | Po ponovnem zagonu preverimo, če so šifrirani razdelki priključeni: | + | |
| - | ls / | + | |
| - | + | ||
| - | Dobimo približno takle izpis, iz katerega sledi, da so priključeni vsi trije šifrirani razdelki: | + | |
| - | chome control | + | |
| - | + | ||
| - | Preverimo tudi, če je izmenjalni prostor (swap) aktiven na cswap razdelku: | + | |
| - | cat / | + | |
| - | + | ||
| - | Dobimo približno takle izpis: | + | |
| - | Filename | + | |
| - | / | + | |
| - | + | ||
| - | Sedaj je trdi disk od koder se sistem zažene v celoti (razen /boot razdelka) šifriran. Sledi namestitev namiznega okolja Ubuntu Desktop. Najprej je potrebno v seznamu skladišč programskih paketov zakomentirati vnos, ki kot enega izmed skladišč uporablja namestitveni CD-ROM: | + | |
| - | sudo nano / | + | |
| - | + | ||
| - | Zakomentiramo vrstico: | + | |
| - | + | ||
| - | # deb cdrom: | + | |
| - | + | ||
| - | Sledi osvežtev seznama programskih paketov in namestitev paketa ubuntu-desktop: | + | |
| - | sudo apt-get update | + | |
| - | sudo apt-get install ubuntu-desktop | + | |
| - | + | ||
| - | Namesto klasičnega Ubuntujevskega namizja Gnome (ubuntu-desktop) lahko namestimo KDE (kubuntu-desktop) ali Xfce (xubntu-desktop), | + | |
| - | + | ||
| - | Namestitev namiznega okolja je lahko precej dolgotrajna, | + | |
| - | + | ||
| - | Potrebno je dobiti 470MB/484MB arhivov. | + | |
| - | Po odpakiranju bo uporabljenega 1649MB dodatnega prostora na disku. | + | |
| - | Ali želite nadaljevati [Y/n]? | + | |
| - | + | ||
| - | Proti koncu namestitve je bo potrebno še ročno označiti katere resolucije zaslona naj podpira grafični strežnik (praviloma so pravilne resolucije že označene in se s tipko //tab// samo pomaknemo na gumb "V redu" ter pritisnemo //enter// ali preslednico): | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Nastavitve grafičnega strežnika lahko kasneje ročno spremenimo z ukazom, kjer izberemo gonilnik grafične kartice, monitor, resolucijo in ostale podatke potrebne za delovanje grafičnega strežnika: | + | |
| - | sudo dpkg-reconfigure xserver-xorg | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Namestitev namiznega jedra operacijskega sistema ter odstranjevanje strežniškega jedra ==== | + | |
| - | + | ||
| - | Nato namestimo namizno različico jedra operacijskega sistema (to sicer ni nujno potrebno, saj sistem deluje tudi s strežniško različico jedra, namestitev generične različice sicer iz interneta prenese okrog 24 Mb programskih paketov) : | + | |
| - | sudo apt-get install linux-image-generic | + | |
| - | + | ||
| - | Pred ponovnim zagonom sistema moramo ročno popraviti Grub menu: v vrstico //kernel// namesto //splash// napišemo // | + | |
| - | sudo nano / | + | |
| - | + | ||
| - | Poiščemo Grub vnos (UUID je simboličen oziroma ga ni, če smo predhodno nastavili // | + | |
| - | title | + | |
| - | root (hd0,0) | + | |
| - | kernel | + | |
| - | initrd | + | |
| - | quiet | + | |
| - | savedefault | + | |
| - | + | ||
| - | In popravimo: | + | |
| - | kernel | + | |
| - | + | ||
| - | Sistem ponovno zaženemo: | + | |
| - | sudo reboot | + | |
| - | + | ||
| - | Sistem se bo sedaj zbudil v grafičnem načinu. | + | |
| - | + | ||
| - | Ko se ponovno prijavimo v sistem preverimo v katero jedro operacijskega sistema je aktivno: | + | |
| - | uname -a | + | |
| - | + | ||
| - | Dobimo približno takle izpis, pri izpisu je pomembno, da dobimo // | + | |
| - | Linux cryptobox 2.6.20-16-generic #2 SMP Thu Jun 7 20:19:32 UTC 2007 i686 GNU/Linux | + | |
| - | + | ||
| - | Sedaj pogledamo katere strežniške različice jedra imamo nameščene... | + | |
| - | sudo dpkg --get-selections | grep linux- | + | |
| - | + | ||
| - | ...ter jih odstranimo: | + | |
| - | sudo apt-get remove --purge linux-image-2.6.20-15-server linux-image-server linux-server | + | |
| - | + | ||
| - | Še enkrat popravimo še Grub menu (namesto //splash// vpišemo // | + | |
| - | sudo nano / | + | |
| - | + | ||
| - | kernel | + | |
| - | + | ||
| - | Popraviti je potrebno //Ubuntu, kernel 2.6.20-16-generic// | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Uporaba sistema in priprava za nadaljne delo ===== | + | |
| - | + | ||
| - | Postopek namestitve je s tem končan. Iz menija System - Administracija - Language Support lahko vključimo še podporo za slovenski jezik in sistem prenese najnovejše jezikovne pakete za slovenščino. Ne pozabimo tudi namestiti požarnega zidu. Če želimo, si lahko namestimo tudi programski paket // | + | |
| - | echo "deb http:// | + | |
| - | wget -q http:// | + | |
| - | sudo apt-get install ubuntu-restricted-extras libxine-extracodecs gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-pitfdll | + | |
| - | sudo apt-get install w32codecs | + | |
| - | sudo apt-get install libdvdnav4 libdvdplay0 libdvdread3 libdvdcss2 | + | |
| - | sudo / | + | |
| - | + | ||
| - | Več o nameščanju uporabnih paketov si lahko preberete v poglavju Nameščanje uporabne programske opreme na Ubuntu Feisty. | + | |
| - | + | ||
| - | Ob vsakem zagonu sistema bo sedaj potrebno vpisati LUKS geslo: | + | |
| - | Starting up ... | + | |
| - | Loading, please wait... | + | |
| - | Setting up cryptographic volume croot (based on / | + | |
| - | Enter LUKS passphrase: | + | |
| - | + | ||
| - | V primeru napačnega gesla, dobimo obvestilo: | + | |
| - | Command failed. | + | |
| - | cryptsetup: cryptsetup failed, bad password or options? | + | |
| - | + | ||
| - | Po treh vnosih napačnega gesla pa dobimo obvestilo: | + | |
| - | cryptsetup: maximum number of tries exceeded | + | |
| - | + | ||
| - | Tako postavljen sistem deluje povsem normalno, težava nastopi le ob namestitvi popravkov jedra ali namestitvi novega jedra operacijskega sistema. Takrat je namreč potrebno ročno popraviti Grub menu. Na srečo do popravkov ne prihaja pogosto. | + | |
| - | + | ||
| - | ===== Dodajanje in spreminjanje LUKS gesel ===== | + | |
| - | + | ||
| - | LUKS šifriranim razdelkom lahko enostavno dodajamo ali spreminjamo gesla. **OPOZORILO**: | + | |
| - | + | ||
| - | V našem primeru za izmenjalni prostor uporabljamo naključen ključ, za domači razdelek pa je ključ shranjen v datoteki s ključem / | + | |
| - | cryptsetup luksDump /dev/hda3 | + | |
| - | + | ||
| - | Dodajanje gesla je sedaj mogoče z naslednjim ukazom (kot parameter ukazu podamo razdelek, torej /// | + | |
| - | sudo cryptsetup luksAddKey /dev/hda3 | + | |
| - | + | ||
| - | Najprej je treba vnesti enega izmed obstoječih gesel, nato pa novo geslo, ki ga še potrdimo. Izpis je približno takle: | + | |
| - | Enter any LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Enter new passphrase for key slot: | + | |
| - | Verify passphrase: | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Brisanje gesla iz mesta 1 (kot parameter ukazu podamo razdelek, torej /// | + | |
| - | sudo cryptsetup luksDelKey /dev/hda3 1 | + | |
| - | + | ||
| - | Najprej je potrebno vnesti enega izmed obstoječih gesel (vendar pa ne tistega, ki ga želimo odstraniti). Še opozorilo: če odstranimo vsa gesla, je dostop do šifriranega razdelka za vedno onemogočen. Izpis je približno takle: | + | |
| - | Enter any remaining LUKS passphrase: | + | |
| - | key slot 0 unlocked. | + | |
| - | Command successful. | + | |
| - | + | ||
| - | Sprememba gesla je mogoča tako, da najprej dodamo novo geslo, nato pa izbrišemo starega. | + | |
| - | + | ||
| - | + | ||
| - | ===== Ali deluje...? ===== | + | |
| - | V nadaljevanju si poglejmo nekaj preiskusov delovanja v celoti šifriranega sistema. | + | |
| - | + | ||
| - | ==== Hibernacija ter odloženi izklop ==== | + | |
| - | Preiskus pokaže, da izbiri //Zaspi// (// | + | |
| - | + | ||
| - | ==== Priklapljanje dodatnih šifriranih nosilcev podatkov ==== | + | |
| - | Prav tako v tak sistem lahko normalno priklapljamo dodatne šifrirane nosilce podatkov. Smiselno je, da redno ustvarjamo varnostne kopije in to na zunanje šifrirane nosilce podatkov. | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Nameščanje novega jedra ali popravkov obstoječega jedra operacijskega sistema | + | |
| - | Žal nameščanje nameščanje novega jedra ali popravkov obstoječega jedra operacijskega sistema **ne deluje brez težav**. Ob namestitvi jedra se sicer samodejno zažene posodabljanje initrd skript, žal pa sistem napačno popravi vnose v Grub meniju. Pri vnosu //kernel// je potrebno namesto //splash// dodati **nosplash**. | + | |
| - | + | ||
| - | Če Grub vnos pozabimo popraviti, se ob ponovnem zagonu sistem enw bo več zagnal, na srečo pa je napako tudi v tem primeru mogoče odpraviti brez večjih težav. Grub vnos namreč lahko začasno popravimo med zagonom sistema. Ob zagonu sistema pritisnemo //Esc//, da vstopimo v Grub menu, izberemo željeni vnos, nato pa pritisnemo **e** (//edir - uredi//). Izberemo željeno vrstico vnosa (npr. vrstico //kernel//) in ponovno pritisnemo **e** (//edit - uredi//) in popravimo vnos. Ko je vnos popravljen, pritisnemo tipko //enter// nato pa **b** (//boot - zaženi//). Ker se spremembe ne shranijo, moramo po zagonu sistema spremembe ponovno vnesti in shraniti v / | + | |
| - | + | ||
| - | + | ||
| - | ==== Nadgradnja sistema | + | |
| - | Nadgradnja sistema še ni bila preiskušena, | + | |
| - | + | ||
| - | ==== Forenzična analiza sistema ==== | + | |
| - | + | ||
| - | Forenzična analiza diska na v celoti šifriranem sistemu pokaže, da je mogoče do zagonskega razdelka normalno dostopati, korenski in domači razdelek pa sta šifrirana: | + | |
| - | root@ubuntu:/ | + | |
| - | mount: unknown filesystem type ' | + | |
| - | + | ||
| - | root@ubuntu:/ | + | |
| - | mount: unknown filesystem type ' | + | |
| - | + | ||
| - | Prabv tako ni mogoče priključiti razdelka z izmenjalnim prostorom: | + | |
| - | root@ubuntu:/ | + | |
| - | mount: you must specify the filesystem type | + | |
| - | + | ||
| - | Forenzična analiza z orodjem Autopsy Forensic Browser pokaže, da razen iz zagonskega razdelka od ostalih razdelkov ni mogoče dobiti nikakršnih uporabnih podatkov. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ==== Kaj pa hitrost? ==== | + | |
| - | Za primerjavo hitrosti šifriranega in nešifriranega sistema smo uporabili test Bonnie++, ki meri hitrost pisanja na trdi disk in branja iz njega. Uporablja več metod. Primerjava je bila opravljena na dveh računalnikih. Hitra analiza pokaže, da je padec hitrosti zaradi uporabe šifriranja precej odvisen od hitrosti računalnika. Pri hitrejšem iz s pomnilnikom RAM bolj založenim računalniku (Pentium 4, 3 GHz, 1 Mb RAM) se pri nekaterih operacijah padec hitrosti praktično ne pozna, pri počasnejšem računalniku (Pentioum 3, 733 MHz 378 Mb RAM) pa je lahko precej občuten. Pri vsakdanjem delu na povprečnem, | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Kljub vsemu je potrebno povedati, da je testiranje zgolj osnovno, saj dela testov zaradi premalo natančnih meritev ni bilo mogoče izvesti. Za bolj relevantno testiranje bo potrebno metodologijo testiranja še dodelati in testiranje izvesti v bolj kontroliranih okoliščinah. | + | |
| - | + | ||
| - | ===== Končno varna Okna ===== | + | |
| - | Na v celoti šifrirani sistemu lahko sedaj namestimo požarni zid temelječ na iptables, nato pa virtualizacijski program Vmware ali VirtualBox, znotraj katerega naložimo operacijski sistem Windows, dostop do omrežja pa je preko NAT vmesnika. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | VirtualBox je na voljo v odprtokodni ali " | + | |
| - | + | ||
| - | Če imamo dva monitorja, lahko virtualni stroj teče v drugem zaslonu. Poganjanje operacijskega sistema MS Windows znotraj šifriranega Linux računalnika z dovolj pomnilnika RAM (1,5 - 2 Gb ali več) deluje brez težav in opaznejših zakasnitev. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | + | ||
| - | ===== Napad na popolnoma šifrirani sistem ===== | + | |
| - | Kot rečeno, opisano šifriranje varuje samo pred tim. //offline// napadom. Sistem, ki je priključen, | + | |
| - | + | ||
| - | Napadalec, ki uspe vstopiti v aktiven sistem lahko v primeru pridobitve administratorskega dostopa do računalnika dostopa vseh podatkov. Lahko pa napadalec namesti tudi strojni prestreznik tipkanja. Programsko pa je možen tudi napad na nešifrirani zagonski razdelek. Nanj lahko napadalec namesti programsko opremo, ki prestreže vnos LUKS gesla ob zagonu. | + | |
| - | + | ||
| - | Ena izmed rešitev v tem primeru je preverjanje integritete zagonskega razdelka s kakšnim od programskih orodij za preverjanje integritete, | + | |
| - | + | ||
| - | Rešitev? | + | |
| - | + | ||
| - | Rešitev v tem primeru je obnova zagonskega razdelka pred vsakim zagonom računalnika oziroma zagon računalnika iz CD-ROM enote ali USB ključa. Opisani postopki so za pogosto uporabo (npr. vsakodnevni zagon računalnika) precej nepriročni, | + | |
| - | + | ||
| - | ==== Ustvarjanje rezervne kopije zagonskega razdelka ==== | + | |
| - | Najprej preverimo če je zagonski razdelek ustrezno pripravljen (popravljen Grub menu, itd. - torej, da se sistem normalno zažene). Nato v konzoli vnesemo ukaz: | + | |
| - | sudo dd if=/ | + | |
| - | + | ||
| - | Če želimo, lahko kopijo zagonskega razdelka **stisnemo** s programom //gzip// (podamo mu parameter -9, za najvišjo stopnjo kompresije): | + | |
| - | sudo dd if=/ | + | |
| - | + | ||
| - | Dobimo približno takle izpis: | + | |
| - | 6+1 zapisov na vhodu | + | |
| - | 6+1 zapisov na izhodu | + | |
| - | 106896384 bytes (107 MB) copied, 2,57393 sekunde, 41,5 MB/s | + | |
| - | + | ||
| - | S tem smo naredili natančno kopijo zagonskega razdelka v datoteko z imenom // | + | |
| - | + | ||
| - | Mimogrede, ne pozabimo narediti zagonske kopije ob vsaki nadgradnji jedra operacijskega sistema oziroma ob vsakem generiranju novih zagonskih (// | + | |
| - | + | ||
| - | Če želimo, lahko naredimo tudi kopijo zagonskega sektorja (tim. MBR - //Master Boot Record//), ki ga tudi shranimo na USB ključ ali zapečemo na CD nosilec: | + | |
| - | sudo dd if=/dev/hda bs=512 count=1 | cat - > MBR.img | + | |
| - | + | ||
| - | ==== Obnavljanje rezervne kopije zagonskega razdelka ==== | + | |
| - | Če želimo obnoviti zagonski razdelek, moramo računalnik najprej zagnati s pomočjo živega CDja, npr. namestitvenega CDja namizne različice Ubuntuja. Nato priključimo USB ključ s kopijo zagonskega razdelka (npr. na mesto / | + | |
| - | sudo dd if=/ | + | |
| - | + | ||
| - | V primeru, da smo ustvarili **stisnjeno kopijo** zagonskega razdelka, pa vnesemo ukaz: | + | |
| - | sudo su | + | |
| - | gunzip –c / | + | |
| - | + | ||
| - | Pa še obnavljanje zagonskega (MBR) sektorja: | + | |
| - | sudo su | + | |
| - | cat / | + | |
| - | + | ||
| - | + | ||
| - | ==== " | + | |
| - | S temi postopki smo varnost | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | * [[http:// | + | |
| - | + | ||
| - | Napad je mogoče izvesti tudi če ima napadalec dostop do pomnilnika sistema (npr. kot prijavljeni uporabnik sistema, ki lahko shrani vsebino pomnilnika v datoteko). Več o tem v predavanju Torbjörna Petterssona na CCC 2007: | + | |
| - | * [[http:// | + | |
| - | memory dumps]] | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== Težave in njihovo reševanje ===== | + | |
| - | Ob zagonu sistema (ko je treba vpisati LUKS geslo) imamo vključeno angleško tipkovnico. Pri vpisovanju gesel je treba biti pozoren na to, da so črke na slovenski in angleški tipkovnici drugače razporejene! | + | |
| - | + | ||
| - | Če smo pozabili popraviti Grub meni, ga lahko ob zagonu sistema popravimo ročno. Pomembno je da nastavimo ustrezen korenski imenik (/ | + | |
| - | + | ||
| - | V primeru, da se nam zaradi napake na datotečnem sistemu samodejno požene orodje //fsck// (npr. če imamo ob ponovnem zagonu v računalnik priključen zunanji USB disk brez razdelkov), se v nekaterih primerih //chome// razdelek ne bo priključil, | + | |
| - | + | ||
| - | Šifrirane razdelke lahko priključimo tudi s pomočjo živega CD-ja, pri čemer je potrebno najprej naložiti ustrezne module ter namestiti cryptsetup (shranimo in namestimo ga lahko tudi iz USB ključa, če nimamo dostopa do interneta), nato pa šifrirane razdelke priključimo z ukazom iz konzole ter vnosom LUKS gesla. Šifrirane razdelke lahko priklopimo tudi v okolju Windows, in sicer s pomočjo programa FreeOTFE, kar je podrobneje opisano v poglavju o šifriranju nosilcev podatkov v okolju Linux in Windows, poglavje " | + | |
| - | + | ||
| - | Ob nadgradnji jedra operacijskega sistema se lahko zgodi, da bo HAL (Hardware Abstraction Layer) zamenjal poimenovanja diskov iz hda v sda. V tem primeru je potrebno popraviti datoteko / | + | |
| - | + | ||
| - | ===== Zaključek ===== | + | |
| - | Čeprav uporaba šifriranja celotnega operacijskega sistema še ni dovolj uporabniško prijazno integrirana v sistem, se premiki kažejo tudi na tem področju. Z nekaj truda je že danes mogoče vzpostaviti delujoč šifriran sistem. Izbira distribucije Ubuntu Linux (ki velja za eno najbolj uporabniško prijaznih) v kombinaciji z LUKS šifriranjem, | + | |
| - | + | ||
| - | Ker ima uporaba šifriranja celotnega sistema zaradi čedalje pogostejše uporabe prenosnih računalnikov v poslovnih okoljih, pa tudi drugod, velik tržni potencial, lahko v prihodnosti pričakujemo razvoj tudi na tem področju. Tehnologija je že razvita, sledi le še razvoj na področju uporabniške prijaznosti. | + | |
| - | + | ||
| - | ====== Nameščanje uporabne programske opreme na Ubuntu Feisty ====== | + | |
| - | //Avtor: Matej Kovačič// | + | |
| - | + | ||
| - | ===== Podpora za slovenski jezik ===== | + | |
| - | Iz menija System | + | |
| - | + | ||
| - | + | ||
| - | ===== Prilagoditev izgleda okolju Windows ===== | + | |
| - | Ubuntu ima v privzetem okolju na vrhu in na dnu zaslona dve " | + | |
| - | + | ||
| - | Nato prilagodimo še spodnji pult. Z desnim miškinim gumbom kliknemo manj in izberemo //Dodaj na pult//. Odpre se okno iz katerega na pult vlečemo posamezne elemente. Obstoječe elemente lahko odstranimo z desnim klikom in izbiro //Odstrani iz pulta//. Če želimo, jih lahko premaknemo, vendar jih je potrebno najprej odkleniti (desni klik - odstranimo kljukico iz //Prikleni na pult//). Predmet premaknemo tako, da z desnim miškinim gumbom kliknemo nanj ter izberemo // | + | |
| - | + | ||
| - | Ubuntu ima na voljo številne elemente pulta, ena izmed možnih razporeditev je prikazana na spodnji sliki: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Z desnim klikom na pult in izbiro // | + | |
| - | + | ||
| - | + | ||
| - | ===== Sinhronizacija časa ===== | + | |
| - | Z desnim gumbom miške kliknemo na uro na menujski vrstici in izberemo //Nastavi datum in uro//. Pri // | + | |
| - | + | ||
| - | + | ||
| - | ===== Risanje diagramov ===== | + | |
| - | Risanje diagramov je mogoče s programom Dia. Program vsebuje veliko število možnih elementov diagrama (sličic), ki jih med seboj lahko enostavno povezujemo z različnimi črtami. Namestimo ga z ukazom: | + | |
| - | sudo apt-get install dia | + | |
| - | + | ||
| - | Žal se program ne pojavi v meniju nameščene programske opreme. Lahko ga zaženemo iz konzole z ukazom: | + | |
| - | Dia | + | |
| - | ali pa ga dodamo v meni. Z desnim klikom kliknemo na meni // | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Pritisnemo //OK// ter //Zapri//. | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | Program sedaj najdemo pod // | + | |
| - | + | ||
| - | ===== Multimedija, | + | |
| - | Najprej med seznam skladišč programskih paketov dodamo | + | |
| - | echo "deb http:// | + | |
| - | wget -q http:// | + | |
| - | sudo apt-get install ubuntu-restricted-extras libxine-extracodecs gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-pitfdll gstreamer0.10-ffmpeg gstreamer0.10-plugins-bad-multiverse gstreamer0.10-plugins-ugly-multiverse gstreamer0.10-plugins-ugly ffmpeg | + | |
| - | sudo apt-get install w32codecs | + | |
| - | sudo apt-get install libdvdnav4 libdvdplay0 libdvdread3 libdvdcss2 | + | |
| - | sudo / | + | |
| - | + | ||
| - | Če želimo lahko dodamo še Fluendov MP3 dekoder, dodatek za ločevanje videa in zvoka na DVDjih (tim. // | + | |
| - | sudo apt-get install gstreamer0.10-fluendo-mp3 gstreamer0.10-fluendo-mpegdemux gstreamer0.10-plugins-farsight | + | |
| - | + | ||
| - | Še nekaj dodatnih pisav: | + | |
| - | sudo apt-get install xfonts-intl-arabic | + | |
| - | sudo apt-get install xfonts-intl-asian | + | |
| - | sudo apt-get install xfonts-intl-chinese | + | |
| - | sudo apt-get install xfonts-intl-chinese-big | + | |
| - | sudo apt-get install xfonts-intl-european | + | |
| - | sudo apt-get install xfonts-intl-japanese | + | |
| - | sudo apt-get install xfonts-intl-japanese-big | + | |
| - | sudo apt-get install xfonts-intl-phonetic | + | |
| - | sudo apt-get install gsfonts-x11 | + | |
| - | sudo fc-cache -f -v | + | |
| - | + | ||
| - | ===== Namestitev dodatnih multimedijskih predvajalnikov ===== | + | |
| - | Video predvajalnik VLC: | + | |
| - | sudo apt-get install vlc mozilla-plugin-vlc vlc-plugin-* | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | Univerzalni predvajalnik Mplayer: | + | |
| - | sudo apt-get install mplayer mplayer-fonts | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | Univerzalni predvajalnik XMMS: | + | |
| - | sudo apt-get install xmms xmms-skins xmms-wma | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | Audio predvajalnik Beep Media Player: | + | |
| - | sudo apt-get install beep-media-player | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | + | ||
| - | ===== Namestitev orodij za obdelavo digitalnega videa in zvoka ===== | + | |
| - | Namestitev orodja za zajem digitalnega videa iz digitalne videokamere preko firewire vmesnika: | + | |
| - | sudo apt-get install dvgrab | + | |
| - | + | ||
| - | Dvgrab deluje iz ukazne vrstice, kot grafični vmesnik za zajem pa lahko uporabimo program Kino. | + | |
| - | + | ||
| - | Nato lahko namestimo zbirko orodij za profesionalno delo z multimedijo pod Linuxom (vsebuje programe Cinepaint, Kino, Imagemagick ter nekatere kodeke in multimedijske knjižnice): | + | |
| - | sudo apt-get install ubuntustudio-video | + | |
| - | Programe najdemo pod // | + | |
| - | + | ||
| - | Namestitev programa za obdelavo zvočnih datotek Audacity: | + | |
| - | sudo apt-get install audacity | + | |
| - | + | ||
| - | Za namestitev programa na digitalno montažo videa Cinellera je najprej potrebno omogočiti vsa dodatna skladišča programskih paketov, nato pa v seznam skladišč programskih paketov dodati še eno izmed naslednjih vrstic - glede na naš tip procesorja: | + | |
| - | sudo gedit / | + | |
| - | + | ||
| - | * za procesorje **i686** dodamo: | + | |
| - | deb http:// | + | |
| - | * za procesorje **AthlonXp** dodamo: | + | |
| - | deb http:// | + | |
| - | * za procesorje **Pentium 4** dodamo: | + | |
| - | deb http:// | + | |
| - | + | ||
| - | Tip procesorja vidimo, če v ukazno vrstico vpišemo ukaz: | + | |
| - | cat / | + | |
| - | + | ||
| - | Sledi namestitev: | + | |
| - | sudo apt-get update | + | |
| - | sudo apt-get install cinelerra | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Namestitev Adobe Acrobat PDF bralnika ===== | + | |
| - | Ubuntu že vsebuje podporo za prikaz PDF datotek, lahko pa namestimo Adobov bralnik PDF datotek: | + | |
| - | sudo apt-get install acroread mozilla-acroread acroread-plugins | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Podpora za RAR kompresirane arhive ===== | + | |
| - | sudo apt-get install rar | + | |
| - | sudo ln -fs / | + | |
| - | + | ||
| - | + | ||
| - | ===== Emulacija Windows s programom wine ===== | + | |
| - | Uvozimo šifrirne ključe ter dodamo skladišče programskih paketov: | + | |
| - | wget -q http:// | + | |
| - | sudo wget http:// | + | |
| - | sudo apt-get update | + | |
| - | + | ||
| - | Namestitev: | + | |
| - | sudo apt-get install wine | + | |
| - | + | ||
| - | Program zaženemo iz konzole ali s klikom na .exe datoteko. Pri zaganjanju Windows programov iz konzole je potrebno upoštevati pravilno uporabo poti. Uporabiti je potrebno tim. " | + | |
| - | wine " | + | |
| - | + | ||
| - | ali: | + | |
| - | + | ||
| - | cd ~/ | + | |
| - | wine coreldrw.exe | + | |
| - | + | ||
| - | oziroma: | + | |
| - | + | ||
| - | cd ~/ | + | |
| - | + | ||
| - | Wine za nameščene programe ustvari tudi menije na // | + | |
| - | + | ||
| - | ===== Virtualizacija s programom VirtualBox ===== | + | |
| - | Programsko orodje VirtualBox ustvari virtualni računalnik, | + | |
| - | wget http:// | + | |
| - | sudo apt-key add innotek.asc | + | |
| - | rm innotek.asc | + | |
| - | + | ||
| - | V datoteko / | + | |
| - | + | ||
| - | sudo gedit / | + | |
| - | + | ||
| - | deb http:// | + | |
| - | + | ||
| - | sudo apt-get update | + | |
| - | + | ||
| - | Namestitev programa: | + | |
| - | sudo apt-get install virtualbox | + | |
| - | + | ||
| - | Vsakega uporabnika, ki bo želel poganjati virtualne stroje, npr. uporabnika //matej//, dodamo v skupino // | + | |
| - | sudo usermod -G vboxusers -a matej | + | |
| - | + | ||
| - | Še kratka [[http:// | + | |
| - | VBoxManage sharedfolder add " | + | |
| - | + | ||
| - | V virtualnem stroju odpremo ukazno vrstico in napišemo: | + | |
| - | net use E: \\vboxsvr\LinuxMapa | + | |
| - | + | ||
| - | LinuxMapa bo v Windows računalniku sedaj vidna kot disk E:. | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Progamski paket za upravljanje s šifrirnimi ključi ===== | + | |
| - | sudo apt-get install seahorse | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Klepetanje ===== | + | |
| - | IRC odjemalec Xchat: | + | |
| - | sudo apt-get install xchat | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | Odjemalec za omrežja MSN, Yahoo, AIM, in druge s podporo za šifriranje: | + | |
| - | sudo apt-get install gaim gaim-encryption gaim-otr | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Skype ===== | + | |
| - | Namestitev: | + | |
| - | sudo apt-get install skype | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ===== Odjemalec za e-pošto Mozilla Thunderbird ===== | + | |
| - | Odjemalec za e-pošto Mozilla Thunderbird s podporo za GPG/PGP šifriranje e-pošte: | + | |
| - | sudo apt-get install mozilla-thunderbird mozilla-thunderbird-enigmail | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | + | ||
| - | ===== Octoshape predvajalnik (za gledanje rtvslo.si oddaj v živo) ===== | + | |
| - | Ogled oddaj na RTV Slovenija v živo je mogoč z dodatkom [[http:// | + | |
| - | wget http:// | + | |
| - | + | ||
| - | Nato namestitveno datoteko poženemo: | + | |
| - | chmod +x octosetup-linux_i386.bin | + | |
| - | ./ | + | |
| - | cd octoshape | + | |
| - | + | ||
| - | V datoteko setup.cfg (ustvarimo jo sami) vnesemo pot do javanskega okolja: | + | |
| - | nano setup.cfg | + | |
| - | + | ||
| - | Vpišemo pot do datoteke libvjm.so (v primeru, da smo namestili Javo 6 s pomočjo // | + | |
| - | JavaExec=/ | + | |
| - | + | ||
| - | Nato iz konzole iz imenika // | + | |
| - | ./ | + | |
| - | + | ||
| - | Gledamo lahko različne oddaje, seznam oddaj si lahko ogledamo na [[http:// | + | |
| - | + | ||
| - | + | ||
| - | ===== Anonimizacijsko omrežje Tor ===== | + | |
| - | Najprej uvozimo ustrezne šifrirne ključe s katerimi so digitalno podpisani programski paketi: | + | |
| - | gpg --keyserver subkeys.pgp.net --recv 94C09C7F | + | |
| - | gpg --fingerprint 94C09C7F | + | |
| - | gpg --export 94C09C7F | sudo apt-key add - | + | |
| - | + | ||
| - | V datoteko / | + | |
| - | + | ||
| - | sudo gedit / | + | |
| - | + | ||
| - | deb http:// | + | |
| - | deb-src http:// | + | |
| - | + | ||
| - | Obnovimo seznam programskih paketov: | + | |
| - | sudo apt-get update | + | |
| - | + | ||
| - | Sledi namestitev orodja Tor in Privoxy: | + | |
| - | sudo apt-get install tor privoxy | + | |
| - | + | ||
| - | Nato je potrebno odpreti konfiguracijsko datoteko Privoxya: | + | |
| - | sudo gedit / | + | |
| - | + | ||
| - | in vanjo na konec poglavja 5 dodati naslednjo vrstico: | + | |
| - | " forward-socks4a / localhost: | + | |
| - | + | ||
| - | Če uporabljamo brskalnik Firefox, lahko namestimo še dodatek [[http:// | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | {{: | + | |
| - | + | ||
| - | TorButton v spodnjem desnem kotu statusne vrstice se izpiše ali je povezava preko Tor-a vključena ali ne. Vključimo/ | + | |
| - | + | ||
| - | Na koncu lahko še [[http:// | + | |
| - | + | ||
| - | ===== Podpora za pisanje na NTFS razdelke ===== | + | |
| - | Namestimo: | + | |
| - | sudo apt-get install ntfsprogs ntfs-config | + | |
| - | + | ||
| - | Podporo za NTFS vključimo v sistemskem meniju: // | + | |
| - | + | ||
| - | + | ||
| - | ===== Odjemalec za VPN omrežja ===== | + | |
| - | V privzetem //Network Managerju//, | + | |
| - | * PPTP dodatek: | + | |
| - | + | ||
| - | sudo apt-get install network-manager-pptp | + | |
| - | + | ||
| - | * Cisco VPNC dodatek: | + | |
| - | + | ||
| - | sudo apt-get install network-manager-vpnc | + | |
| - | + | ||
| - | * OpenVPN dodatek: | + | |
| - | + | ||
| - | sudo apt-get install network-manager-openvpn | + | |
| - | + | ||
| - | Uporaba omenjenih dodatkov ni bila testirana, lahko pa uporabimo OpenVPN Admin, ki so ga prenesemo [[http:// | + | |
| - | + | ||
| - | OpenVPN Administrator najdemo v meniju // | + | |
| - | + | ||
| - | + | ||
| - | ===== Orodja za analizo omrežij ===== | + | |
| - | ==== Nmap ==== | + | |
| - | Namestitev orodja Nmap, namenjenega pregledovanje IP naslovov (uporabno za preverjanje ali požarni zid na našem računalniku deluje - pozor, pregledovanje IP naslovov v nekaterih omrežjih ni dovoljeno!): | + | |
| - | sudo apt-get install nmap | + | |
| - | + | ||
| - | ==== Wireshark ==== | + | |
| - | Namestitev orodja za analizo omrežnega prometa Wireshark (pozor, prestrezanje tujega prometa predstavlja kaznivo dejanje): | + | |
| - | sudo apt-get install wireshark | + | |
| - | + | ||
| - | Program najdemo pod // | + | |
| - | + | ||
| - | ==== Kismet ==== | + | |
| - | Namestitev orodja Kismet, namenjenega analizi brezžičnih omrežij (pozor, neupravičeno dostopanje do tujih omrežij ali zgolj poiskus le-tega predstavlja kaznivo dejanje): | + | |
| - | sudo apt-get install kismet | + | |
kako/varnost.1190645276.txt.gz · Last modified: by matthai
