Gentoo Logo

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.

Viimeksi päivitetty 15. joulukuuta 2005

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.