RSBAC on Debian

Egy baratom keresere megprobalok egy Debian-t biztonsagossa tenni az RSBAC segitsegevel.
Ez a bejegyzes az ehhez vezeto utat fogja bemutatni, meghozza ugy, hogy a telepites folyaman folyamatosan irom.

Lassuk mi kell hozza:
- Debian :)
- RSBAC :)
- Turelem

Elokeszites:

Egy hiba folytan az RSBAC.org -rol csak sarge es sid distrohoz lehet cuccokat letolteni, ugyanakkor a fooldalon ugy hirdetik, hogy van etch is. Mindazonaltal az illeto csomagok a legfrissebbek, eppen csak hozzajuk jutni kisse bonyolult.

Eloszor is, toltsuk le a megfelelo kulcsot. Sajnos a http-n elmentett valtozat nem jatszik, a jo kulcs ugyanis a 0xE9C37726 szamu:


# gpg --keyserver subkeys.pgp.net --recv-keys E9C37726 && gpg -a --export E9C37726 | apt-key add -

Ezutan a /etc/apt/sources.list.d alatt hozzunk letre egy rsbac.list nevu fajlt ilyen tartalommal:


deb http://debian.rsbac.org/ sarge main
deb-src http://debian.rsbac.org/ sarge main

Ezutan kovetkezhet a jol ismert apt-get update.

Sajnos az rsbac-admin csomag keptelen csomagbol felkerulni, mivel sarge disztrohoz van szoktatva, es a libc fuggese is ahhoz van szamitva, igy ezt kezzel kell felrakni:


# mkdir -p /usr/src/rsbac/rsbac-admin && cd /usr/src/rsbac/rsbac-admin
# apt-get build-dep rsbac-admin && apt-get source rsbac-admin && apt-get install fakeroot less dialog
# cd rsbac-admin-1.4.0pre3 && dpkg-buildpackage -rfakeroot -uc -us && dpkg -i ../*.deb

Azt hiszem a fenti muveletsor tul sok kommentet nem igenyel.

Fel kell raknunk az RSBAC altal javasolt linux-image csomagot:


# apt-get install linux-image-2.6.24.3-rsbac
# groupadd -g 400 secoff
# useradd -u 400 -g 400 -d /secoff -s /bin/bash secoff
# passwd secoff

Mint latszik, ez megint nem egy egyszeru eset, mivel sem az rsbac-admin, sem a linux-image csomag nem hozza letre az RSBAC szamara nelkulozhetetlen 400-as UID-del rendelkezo secoff usert.
Nagyon-nagyon fontos ennek az usernek a vedelme, mert o az RSBAC atyauristen. A root-ehoz hasonlo, vagy meg annal is erosebb jelszot kell adni neki.

Elkovetkezik az elso ujrainditas ideje. Es ideje, hogy megszivassuk magunkat.
...
Miutan sikeresen visszabootoltuk a regi Debian kernelt, faragjunk meg a rendszeren.

Az RSBAC kernel libata-ra epit, igy ha IDE lemezre telepitunk, mindenkeppen at kell irni a menu.lst-ben a root fajlrendszer helyet.
Az fstab-ban ketto dolgot tehetunk. A gyors megoldas itt is a hda-> sda atiras, de ez nem jo, ha nem rsbac-os kernelt is tervezunk vesz eseten inditani. A jo megoldas az UUID alapjan torteno mount. Ezt a blkid segitsegevel lehet megvalositani, es az eszkoz nevenek a helyere kell olyant irni, hogy UUID=c996011e-1337-46fb-8bdd-53c0ffba43bc (rejtveny: az elobbi uuid ketto ertelmes dolgot is tartalmaz, tessek megtalalni, a szerencses megfejtok feltelepithetik RSBAC-os Debian rendszruket ezen leiras alapjan :D).

Ezutan inditsuk ujra megint a rendszert, de a grub promptjanal azonnal nyomjunk egy 'e'-t, majd a kernel soranal megint egy 'e'-t es a kernel parameterek vegere biggyesszuk oda, hogy rsbac_softmode. Nagyon sok kellemetlensegtol kimeljuk meg az elso inditas soran magunkat.

Lassuk mik is a teendok az elso inditas utan:


# su - secoff
$ for x in /bin/login /bin/su /bin/busybox /usr/sbin/sshd /usr/sbin/cron; do [[ -e ${x} ]] && echo -n "Adding may_setuid to ${x} ... " && \
  attr_set_fd AUTH FILE auth_may_setuid 1 ${x} && echo "OK"; done
$ rsbac_groupadd -O
$ rsbac_useradd -O
$ rsbac_passwd -n root
$ rsbac_passwd -n secoff

Na ez igy tomeny, tehat akkor sorrendben:
- CHANGE_USER es CHANGE_GROUP jogot adunk a fenti binarisoknak, hogy kepesek legyenek usert valtani.
- importaljuk az osszes linuxos csoportot az RSBAC authentikacios moduljaba
- ugyanez csak csoportokkal...
- az utolso ket lepesben pedig megadjuk ezen felhasznalok jelszavat megint, ugyanis az rsbac_useradd nem importal jelszot.

Atirunk par PAM beallitofajlt:

/etc/pam.d/common-auth


auth            required        pam_env.so 
auth            required        pam_rsbac.so try_first_pass likeauth nullok

/etc/pam.d/common-account


account         required        pam_rsbac.so 

/etc/pam.d/common-password


password        required        pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 try_first_pass retry=3 
password        required        pam_rsbac.so try_first_pass use_authtok nullok md5 shadow 

/etc/pam.d/common-session


session         required        pam_limits.so 
session         required        pam_env.so 
session         required        pam_rsbac.so 

... es persze ...

/etc/nsswitch.conf


passwd:         rsbac compat
group:          rsbac compat
shadow:         rsbac compat

Ezek utan torolhetjuk a /etc/passwd /etc/group /etc/shadow fajlok tartalmat (magat a faljokat ne, mert par program keresheti...).

A /boot/grub/menu.lst -ben egy ilyen sort helyezzunk el a "### BEGIN AUTOMAGIC KERNELS LIST" kezdetu sor utan valahol


# altoptions=(RSBAC softmode) rsbac_softmode

Es update-grub.

Az RC modul valoszinuleg fog hibakat jelenteni, de ettol fuggetlen a rendszer mukodokepes.