|
1.
Chrootaus
Chrootaus on keino, jolla voi rajoittaa palvelun (tai käyttäjän) ympäristöä
vain siihen, mihin sen tarvitsee, ja rajata rootin käyttämiseen tarvittu
tieto ulkopuolelle. Palvelujen ajaminen muulla kuin rootin tunnuksilla
(kuten nobodyn, apachen tai named:n) estää
hyökkääjää saamasta muita tiedostoja kuin mihin oikeudet riittävät. Tällöin
hyökkääjä ei saa rootin oikeuksia vaikka löytäisikin turva-aukon.
Jotkin palvelut, kuten pure-ftpd ja bind sisältävät
chroot-ominaisuuksia. Jos palvelussa on valmis ominaisuus, sitä kannattaa
käyttää. Muutoin pitää rakentaa oma. Kokeeksi rakennamme bashille.
Luo /chroot-hakemisto komennolla mkdir /chroot. Selvitä,
minkä dynaamisten kirjastojen kanssa bash on käännetty (jollei sitä
ole käännetty -static-USElla):
Seuraava komento antaa luettelon bashin kirjastoista:
Koodilistaus 1.1: Kirjastojen selvittäminen |
# ldd /bin/bash
libncurses.so.5 => /lib/libncurses.so.5 (0x4001b000)
libdl.so.2 => /lib/libdl.so.2 (0x40060000)
libc.so.6 => /lib/libc.so.6 (0x40063000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
|
Seuraavaksi tehdään ympäristö bashille
Koodilistaus 1.1: Bashin chrootin tekeminen |
# mkdir /chroot/bash
# mkdir /chroot/bash/bin
# mkdir /chroot/bash/lib
|
Seuraavaksi kopioidaan bashin tiedostot (/libistä)
chrootin libiin. ja bash biniin. Tällä saadaan
yhtäläinen ympäristö vähemmillä toiminnalisuuksilla. Kopioinnin jälkeen
ympäristöä voi kokeilla komennolla chroot /chroot/bash /bin/bash.
Vastaan pitäisi tulla kehote, jossa lukee /, muutoin tullee
vikailmoitus tiedoston puuttumisesta. Jotkin jaetut kirjastot saattavat riippua
toisista.
Chrootissa ei toimi kuin echo. Tämä johtuu siitä, ettei siellä ole vielä
komentoja, ja echo on bashin sisäinen toiminto.
Samalla tavoin voi tehdä chrootin palveluille. Ainoa ero on, että palvelut
riippuvat joskus laitetiedostoista tai asetustiedostoista
/etc/:ssä. Nekin pitää kopioida (laitteet cp -a:lla)
chrootiin, ja sitten voi muokata initskriptiä käyttämään chrootia ennen
sen suorittamista. Joskus tarvittavien laitteiden ja asetustiedostojen
löytäminen voi olla hankalaa, mutta strace auttaa. Aloita palvelu
komennolla /usr/bin/strace ja seuraa open-, read-, stat- ja
connect-tapahtumia. Niistä saa vihjettä, mitä kannattaa kopioida. Useimmiten
kuitenkin riittää kopioida passwd (ja poistaa turhat käyttäjät siitä),
/dev/zero, /dev/log ja /dev/random.
1.
User Mode Linux
Toinen tapa ympäristön turvaamiseksi on virtuaalikone. Virtuaalikone ajaa
prosessia, joka näyttää omalta laiteympäristöltään. Turvallisuushyöty tästä
on, että hyökätty palvelin vaikuttaa vain virtuaalikoneeseen, ei sitä ajavaan
ympäristöön.
Lisätietoa User Mode Linuxista on erillisessä User Mode Linux Guidessa.
|