Zabezpieczenie komputera/Fizyczne
Uruchamianie
[edytuj]Zabezpieczenia możemy zacząć już od samego przycisku włącznika. Jest to co prawda bardzo ekstremalny sposób (jesli posiadamy dyski hdd i podejdziemy z nim zbyt blisko moze sie rozmagnesowac co spowoduje utrate danych i zniszczenie nosnika) ale o takich będzie mówić również ta książka. Możemy się zdecydować na uruchamianie komputera... mangesem (więcej tutaj). Podcinamy kilka kabelków, wstawiamy drucik i gotowe. Możemy też tylko podciąć (lub po prostu w jakiś sposób zablokować włącznik) - wtedy możemy uruchamiać komputer za pomocą kombinacji klawiszy (ale tylko wtedy, jeśli jest ona podłączona pod gniazdo PS/2 w przeciwnym wypadku zapomnij.).
Niskopoziomowe
[edytuj]
|
Pierwsze co zrobimy to łatwizna - ustawimy za pomocą BIOS hasło do niego samego i systemu operacyjnego. Co prawda nie jest to zbyt dobre zabezpieczenie, bo i tak nic poza za fizycznym zabezpieczeniem na wiele się nie zda, które zresztą bardzo łatwo złamać - informacje w osobnym artykule. Sam autor nie zachęca do takiej zmiany, nawet jeśli to wydłuży czas potencjalnego włamania.
Kolejny podejrzany do MBR. Możemy go zaszyfrować hasłem (np. w GRUB czy LILO) ale zalecam inne rozwiązanie. MBR możemy zapisać na jakiejś dyskietkce, pendrive czy jakimkolwiek innym nośniku jakim nie jest dysk twardy. Wtedy uruchamianie stanie się niemal przezroczyste - wystarczy mieć tylko wciśnięty nośnik i chować kiedy niepotrzebny. Jak przygotować MBR na CD-ROM lub Pendrive:
GRUB wspiera tryb no emulation specyfikacji El Torito. Odtąd możemy odczytać cały CD-ROM startując z GRUB-a.
Aby wystartować z CD-ROM-u GRUB używa specjalnej fazy stage2 zwanej stage2_eltorito. Potrzebujemy właściwie tylko tego pliku, aby utworzyć CD-ROM startowy. Plik ‚menu.lst’ jest tu tylko opcjonalny. Nie potrzebujemy faz ‚stage1' lub ‚stage2', ponieważ El Torito działa zupełnie inaczej od standardowego procesu startowego.
- Utwórz nowy katalog pod obraz uruchomieniowy i nazwij go np. ‚CD_GRUB’
- Utwórz katalog dla GRUB-a
- Skopiuj tam plik ‚stage2_eltorito’ . W Debianie jest on położony w /lib/grub/i386-pc/
- Jeśli sobie życzysz utwórz plik ‚menu.lst’ w ‚CD_GRUB/boot/grub’ lub skopiuj już istniejący, jak poniżej:
- Teraz utwórz plik obrazu ISO9660 jak poniżej
- mkisofs właśnie przygotował dysk do uruchomienia z pliku boot/grub/stage2_eltorito. Wypal utworzony obraz .iso.
mkdir /CD_GRUB
mkdir -p /CD_GRUB/boot/grub
cp /lib/grub/i386-pc/stage2_eltorito /CD_GRUB/boot/grub
cp /boot/grub/menu.lst /CD_GRUB/boot/grub
Polecenie ‚savedefault’ dla każdego wystąpienia zapisów uruchamiających poszczególne systemy operacyjne nie zadziała z płyty CD. ‚savedefault’ zapisuje na dysku twardym do pliku w /boot/grub nazwę ‚default’ dla systemu, który był uruchomiony ostatnio. Nie możemy go użyć, gdy uruchamiamy GRUB-a z płyty CD, ponieważ nie możemy zapisać zmian na płycie z GRUB-em. Stąd musimy usunąć wszystkie wystąpienia polecenia savedefault.
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot \
-boot-load-size 4 -boot-info-table -o cd_grub.iso /CD_GRUB
-boot-load-size 4 bity są wymagane dla zgodności z BIOSem na wielu starszych komputerach.
dyskietka
[edytuj]Tworzenie dyskietki startowej z GRUB-em
Musimy zapisać na dyskietce obie fazy: stage1 i stage2. W Debianie pliki GRUBa rezydują w /lib/grub/i386-pc/
Metoda – 1
cd /lib/grub/i386-pc/ instalacja stage1
if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in 1+0 records out 512 bytes transferred in 1.152603 seconds (444 bytes/sec)
instalacja stage2
dd if=stage2 of=/dev/fd0 bs=512 seek=1
211+1 records in 211+1 records out 108168 bytes transferred in 6.406743 seconds (16883 bytes/sec)
Ostrzeżenie: Wykonanie tej procedury usunie wszystkie dane na dyskietce.
Metoda – 2 (z użyciem polecenia grub-floppy)
grub-floppy jest programem do tworzenia ogólnych dyskietek startowych. Takie dyskietki po starcie dostarczają interfejs linii komend GRUBa. grub-floppy może tworzyć inne ogólne dyskietki ograniczone tylko architekturą.
grub-floppy /dev/fd0
Uwaga: grup-floppy ma status ‚deprecated’. Przy próbie uruchomienia prawdopodobnie napotkasz komunikat: ‚This program is broken, unsupported upstream, and has been deprecated in favour of grub-mkrescue (grub-pc package).’ – dop.tłum.
Metoda – 3 (dyskietka startowa z /boot/grub)
Możemy też stworzyć dyskietkę startową GRUBa z systemem plików i plikiem menu.lst jak poniżej (z konta roota)
mke2fs /dev/fd0 (utworzenie systemu plików ext2 na dyskietce) mount -t ext2 /dev/fd0 /mnt/floppy (zamontowanie dyskietki na /mnt/floppy) grub-install –root-directory=/mnt/floppy fd0 (instalacja GRUBa i utworzenia katalogu /boot/grub na dyskietce) cp /boot/grub/menu.lst /mnt/floppy/boot/grub/ (skopiowanie menu.lst) umount /mnt/floppy (dyskietka jest gotowa, zdemontowanie ją)
Metoda – 4 (z linii komend GRUBa, w trybie nieinteraktywnym, tworzy także /boot/grub)
Zaloguj się jako root
mke2fs /dev/fd0 mount -t ext2 /dev/fd0 /mnt/floppy mkdir /mnt/floppy/boot cp -R /boot/grub /mnt/floppy/boot /sbin/grub –batch –device-map=/dev/null < < eof
device (fd0) /dev/fd0 root (fd0) setup (fd0) quit EOF
Krok 5 jest właściwie wykonywany w trybie wsadowym interfejsu linii komend GRUBa. Poniżej jest rezultat wyjściowy kroku 5
debian:# /sbin/grub --batch --device-map=/dev/null < < EOF > device (fd0) /dev/fd0 > root (fd0) > setup (fd0) > quit > EOF
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> device (fd0) /dev/fd0 grub> root (fd0) Filesystem type is ext2fs, using whole disk grub> setup (fd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (fd0)"... failed (this is not fatal) Running "embed /boot/grub/e2fs_stage1_5 (fd0)"... failed (this is not fatal) Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/menu.lst"... succeeded Done. grub> quit
Możesz modyfikować/usunąć menu.lst z /mnt/floppy/boot/ lub zachować dla menu konkretnego komputera umount /mnt/floppy
Metoda – 5 (z linii komend GRUBa, w trybie interaktywnym, mając /boot/grub)
Zaloguj się jako root
mke2fs /dev/fd0 mount -t ext2 /dev/fd0 /mnt/floppy mkdir /mnt/floppy/boot cp -R /boot/grub /mnt/floppy/boot umount /mnt/floppy odpal interfejs linii komend GRUBa i wykonaj: root (fd0)
grub> root (fd0) Filesystem type is ext2fs, using whole disk
7) Zainstaluj GRUBa poprzez setup (fd0)
grub> setup (fd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/fat_stage1_5" exists... yes Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal) Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal) Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded Done.
8 ) Wyjdź z GRUBa
Możesz modyfikować/usunąć menu.lst z /mnt/floppy/boot/ lub zachować dla menu konkretnego komputera.
pendrive
[edytuj]Tworzenie startowego pendrive’u USB
Zaloguj się jako root
Zidentyfikuj nod urządzenia, który twój system przypisał do pendrive’u USB. Wykonaj tail -f /var/log/messages i włóż napęd do gniazda USB. Tak to wygląda u mnie:
debian:# tail -f /var/log/messages
SCSI device sda: 248321 512-byte hdwr sectors (127 MB) sda: Write Protect is off SCSI device sda: 248321 512-byte hdwr sectors (127 MB) sda: Write Protect is off sda: sda1 Attached scsi removable disk sda
A więc /dev/sda jest nodem urządzenia dla pendriv’u USB a /dev/sda1 wskazuje partycję na tym napędzie.
Teraz stwórzmy katalog i zamontujmy tam napęd USB.
mkdir /mnt/USB_drive mount -t vfat /dev/sda1 /mnt/USB_drive
System plików na moim napędzie USB to FAT i z tej przyczyny użyłem opcji -t vfat. Zmień system plików na odpowiedni dla twego napędu.
Zidentyfikujmy oznaczenie napędu, które GRUB przypisał do napędu USB. Tu jest mój:
grub> null ( Possible disks are: fd0 hd0 hd1 cd
GRUB rozpoznał mój napęd USB jako hd1.
Metoda – 1 (z /boot/grub)
Zainstaluj GRUBa na napedzie USB poprzez wykonanie polecenia:
grub-install –root-directory=/mnt/USB_drive hd1
debian:# grub-install --root-directory=/mnt/USB_drive hd1 Probing devices to guess BIOS drives. This may take a long time. Installation finished. No error reported. This is the contents of the device map /mnt/USB_drive//boot/grub/device.map. Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'.
(fd0) /dev/fd0 (hd0) /dev/hda (hd1) /dev/sda
(Opcjonalnie) Skopiuj menu.lst aby otrzymać menu startowe komputera
cp /boot/grub/menu.lst /mnt/USB_drive/boot/grub/ Upewnij się, czy w napędzie USB istnieje /boot/grub
grub> find /boot/grub/stage1 (hd0,2) (hd1,0)
Zdemontuj napęd
unmount /mnt/USB_drive
Metoda – 2 (używając interpretera poleceń powłoki GRUBa w trybie interaktywnym, mając /boot/grub)
mkdir /mnt/USB_drive/boot cp /boot/grub /mnt/USB_drive/boot umount /mnt/USB_drive Odpal powłokę GRUBa i wykonaj root (hd1,0)
grub> root (hd1,0) Filesystem type is fat, partition type 0x6
Zainstaluj GRUBa poleceniem setup (hd1)
grub> setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/fat_stage1_5" exists... yes Running "embed /boot/grub/fat_stage1_5 (hd1)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done.
Wyjdź z GRUBa
Możesz modyfikować/usunąć menu.lst z /mnt/USB_drive/boot/ lub zachować dla menu konkretnego komputera.
Metoda – 3 (w interpeterze poleceń powłoki GRUBa)
mkdir /mnt/USB_drive/boot cp /boot/grub /mnt/USB_drive/boot umount /mnt/USB_drive Poniżej mamy polecenia wsadowe dla napędu USB
/sbin/grub –batch –device-map=/dev/null < < EOF device (hd1) /dev/sda root (hd1,0) setup (hd1) quit EOF
debian:# /sbin/grub --batch --device-map=/dev/null < < EOF > device (hd1) /dev/sda > root (hd1,0) > setup (hd1) > quit > EOF
GNU GRUB version 0.95 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grub> device (hd1) /dev/sda grub> root (hd1,0) Filesystem type is fat, partition type 0x6 grub> setup (hd1) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/fat_stage1_5" exists... yes Running "embed /boot/grub/fat_stage1_5 (hd1)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded Done. grub> quit
Możesz modyfikować/usunąć menu.lst z /mnt/USB_drive/boot/ lub zachować dla menu konkretnego komputera.