Olen ollut tarkoitus kirjoittaa tämä ylös jonkin aikaa, mutta oli viesti mennä yhdellä SecurityFocuksella postituslistoille, jotka motivoivat minua asiat valmiiksi. Post kysyi: "Miten rajoittaa sudo joten käyttäjä ei voi poistaa koko kovalevy?". Lyhyt vastaus on, että on äärimmäisen vaikeaa.
Sudo on Security Tool käytetään UNIX-ja Linux-maailmassa. Se sallii järjestelmänvalvoja voi rajoittaa pääsyä korkean tason komennot. Se eroaa su-komennon siinä SU välittömästi antaa käyttäjälle juuritasolla pääsy. Sudo mahdollistaa Administrator hienosäätää joka root-komentoja voidaan tosiasiassa käyttää. Lisäksi sudo luo kirjausketjun kaikista teloitettiin komentoja.
Ongelma sudo on, että se ei ole näkyvyyttä, kun työkalu mahdollistaa komentotulkin olla poikinut. Tämä tarkoittaa käyttäjä voi huonosti järjestelmään ja tuottaa kirjausketju, joka saa sen näyttämään he ole tehneet mitään väärää.
Kokeile itse
Aion opastaa esimerkiksi jotta voit kokea, mitä minä tarkoitan. Tarvitset Linux tähän. Jos sinulla ei ole yhdessä kätevässä, perääntyä pitäisi toimia ihan hyvin. Testausjärjestelmän Käytän perustuu Fedora mutta ne ovat melko samanlaisia.
Vaihe 1: Lisää itsesi käyttäjät ryhmään
Käytä haluamallasi tekstieditorilla muokata / etc / group tiedostoa. Etsi "käyttäjien" ryhmää ja lisää tilin nimi. Tässä esimerkissä olen lisännyt tilin nimi "cbrenton".
käyttäjät: x: 100: cbrenton
Vaihe # 2: Luo sudousers merkintä
Seuraavaksi meidän täytyy muokata / etc / sudoers tiedosto määritellä, mitä käyttäjät ryhmä on sallittua tehdä. Meidän on käytettävä visudo tähän, joka on tekstieditori perustuu vi editorilla . Jos olet tyytyväinen VI, kirjoita käsky "visudo" ja lisäämällä seuraava rivi tiedoston loppuun:
% Käyttäjät ALL = / usr / bin / vähemmän
Jos et tiedä VI, minä annan sinulle tarkan komentoja. Muistan kaiken kirjainkoko:
visudo
G
O <- pientä O
% Käyttäjät ALL = / usr / bin / vähemmän
<Esc> <Esc>
: WQ
Vaihe 3: Monitor sudo toiminta
Avaa toinen terminaali ikkuna ja käyttää "su -" olettaa pääkäyttäjän oikeudet. Kirjoita komento:
tail-f / var / log / secure
Tämän ansiosta voimme seurata kaikkia sudo toimintaa.
Vaihe 4: Suorita sudo komento
Back ensimmäisellä pääteikkunassa kirjoita komento:
sudo vähemmän / etc / hosts
Sinulta kysytään salasanaa (salasana, ei root salasanan). Kun kirjoitat salasanan sinun pitäisi nähdä sisällön / etc / hosts. Toisessa pääteikkuna sinun pitäisi nyt lokitapahtuman seuraavanlainen:
18 elokuu 16:07:58 Fubar sudo: cbrenton: TTY = pts / 4; PWD = / home / cbrenton; user = root; COMMAND = / usr / bin / vähemmän / etc / hosts
Joten voimme nähdä päivämäärä / aika, joka teloitettiin komentoa, missä terminaalissa he olivat, mitä hakemiston he olivat, mitä oikeuksia taso he käyttivät, ja mitä komento he teloittivat lukien komentorivivalitsimia (tässä tapauksessa tiedostomäärityksen) . Toistaiseksi kaikki hyvin.
Vaihe 5: Bust kuori
Ensimmäisessä pääteikkuna (käynnissä vähemmän komento) kirjoittaa:
! <enter>
Sinun pitäisi nyt tarkastella juuri komentokehotteeseen. Voit tarkistaa Olet itse asiassa juuri, kirjoita komento:
whoami
Huomaa, että kirjoittamalla komento "whoami" ei tuottanut turvallisuutta lokitapahtuman. Toisin sanoen, kun me poiki komentoliittymä vähemmän komento, voimme tehdä mitä haluamme ja sudo ei loki sitä.
Vaihe 6: Ylimääräisiä tarkastuskäyntejä
Ensimmäisessä pääteikkuna jossa "vähemmän" on taustalla, kirjoita komento:
Top
Tämä tulostaa tilastoja käynnissä järjestelmässä.
Toisessa pääteikkuna Huom terminaalin käytössä. Yllä olevassa esimerkissä lokimerkintä terminaali on "TTY = pts / 4" mutta sinun voi olla erilainen. Tehdä merkintä terminaaliin. Nyt tässä toisessa ikkunassa painamalla:
<CTRL>-C
tappaa häntä komento. Nyt komento:
ps ax | grep 'pts / 4 "
Vaihtaminen "pts / 4" mitä terminaali nimi muistiin. Sinun tulisi saada lähtö seuraavanlainen:
17330 pts / 4 Ss 00:00 bash
18392 pts / 4 S 0:00 vähemmän / etc / hosts
18410 pts / 4 S 0:00 / bin / bash
18432 pts / 4 S + 0:00 alkuun
Tämä kertoo, että meillä on kaksi kuoret käynnissä että päätelaitteet. Ensimmäinen tutkii hosts-tiedoston ja toinen on käynnissä alkuun komennon. Joten järjestelmä ei itse nähdä, että olemme leikkimisestä sisällä toinen kuori, sen vain, että sudo ei voi kirjautua siihen.
Jotkut muut juurihakemistossa komennot voit kokeilla että ei haittaa mitään:
iptables-L
ifconfig
lsof-i
Kun olet vakuuttunut sinulla on täydet rootin salasanaa, palaa takaisin ja tarkista loki tarkistaa, että sudo ei ole kirjautunut mitään:
tail / var / log / secure
Kun olet tehnyt Shellin ensimmäisen pääteikkunaa kirjoita:
poistuminen
q
Mitä olemme oppineet?
Olemme oppineet, että emme voi sallia käyttäjien täydet sudo-järjestelmä ja todella ylläpitää kirjausketju, mitä he tekevät. Pääsy on rajattu työkaluja, jotka eivät tue vetoamalla kuori. Jos olemme epävarmoja, sen yksinkertainen asia tarkistaa man-sivuilta. Kokeile tätä:
mies vähemmän
/
kuori
Komento "man vähemmän" tuo manuaalinen käyttämästä "vähemmän" komento. Painamalla kenoviiva näppäin tuo hakutoiminto. Kun kirjoitat sanan "kuori" ja paina Enter-näppäintä, mies hyppää ensimmäisen oikeusasteen merkkijonon "kuori" ja korostetaan jokaisen oikeusasteen. Huom osassa mies hyppäsi kuvataan, miten vähemmän voi vedota kuori. Nyt tiedämme, emme voi sallia sudo-komennon "vähemmän". Parempi vaihtoehto voi olla komento "kissa", joka ei tue vetoamalla kuori.
Toinen mahdollisuus on yksinkertaisesti käyttää eri työkalua. Esimerkiksi työkalu OP oli suunniteltu erityisesti tukemaan joitakin turvallisuuden puutteita sudo, mukaan lukien kyky valvoa shell.
Exec Yhteenveto
Sudo on suuri turvallisuus työkalulla käytät sitä viisaasti. Yksi yleisimmistä virheistä on sudo käyttää sitä sallia pääsyn kaikkiin juuritasolle työkaluja. Sudo voi luoda tehokas kirjausketju, mutta vain jos se on rajoitettu työkaluja joilla ei ole shell-ominaisuus.

