Discussion:
rsbac elakadas...
PÁSZTOR György
2005-06-12 02:09:27 UTC
Permalink
Hi!

Épp még csak kezdő vagyok az rsbac-ban, de már sikerült elakadnom. Odáig
eljutottam, hogy kernel bejön, admin tools fenn van, és a gép alapvetően
működik.
Amivel gondok vannak: egyelőre most így még én is tanulok, és az rsbac-ot is
rávettem, tanuljon ő is :-) Az apache pl. így szépen látja is dolgát, és
amit kellett, azt az auth betanulta, de az sshd-re az RC állandóan
panaszkodik:
rsbac_adf_request(): request WRITE, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request SEND, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request SEND, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request RECEIVE, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)

Vagyis egy session folyamán próbál sshd-ként, rootként, és a beloginelt
userként is a megfelelő unix streambe írni/olvasni...
Most jönnek a mitévő legyek! :-)
Hasonló problémám van a postfix-szel is, csak ott épp a
/usr/lib/postfix/{master,qmgr,...} amivel szemben az RC hasonlókat művel...

Van vkinek ötlete, hogy hogyan tovább? Vagy hogy az rsbac doksijai közül
most melyiket is kellene elolvasni, hogy ilyesmiken túl tudjam tenni magam?
Elég okos/ügyesnek tűnik ez az RC modell, csak épp még nem látom át jól :-(

Üdv:Gyur!
-- -------[ Free Software ISOs - http://www.fsn.hu/?f=download ]------- --
PÁSZTOR György e-mail: ***@fsn.hu
Free Software Network (FSN.HU) cell.: +3620 512 3335
mag
2005-06-12 19:58:01 UTC
Permalink
Post by PÁSZTOR György
Hi!
rsbac_adf_request(): request WRITE, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request SEND, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request SEND, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request RECEIVE, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
Vagyis egy session folyamán próbál sshd-ként, rootként, és a beloginelt
userként is a megfelelő unix streambe írni/olvasni...
Most jönnek a mitévő legyek! :-)
Csinálj egy type-ot ennek a netobjnak, és a szükséges role-oknak adj
jogot a szükséges műveletekhez ehhez a type-hoz.

Az nem teljesen világos, hogy a socketedet hogyan fogod a megfelelő
type-ra állítani. Ha named unix domain socket, akkor egy network
template-et definiálj neki. Ha nem named, akkor esetleg valamelyik
default create type lesz a te barátod.

Strace-val nézd meg, hogy hogyan készül a socket, és a debugot
bekapcsolva tudd meg azt, hogy mi is neki a type-ja ma.

A legrosszabb esetben generic típusú marad, és akkor a generic netobjhoz
kell jogot adnod.

Érdekel a megoldás.
PÁSZTOR György
2005-06-13 20:41:16 UTC
Permalink
Hi!
Post by mag
Post by PÁSZTOR György
rsbac_adf_request(): request WRITE, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request SEND, pid 3370, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 101, audit_uid 101, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request SEND, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3369, ppid 1390, prog_name sshd, prog_file /usr/sbin/sshd, uid 0, audit_uid 0, target_type NETOBJ, tid d13a7b40 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
...
rsbac_adf_request(): request RECEIVE, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
rsbac_adf_request(): request READ, pid 3372, ppid 3369, prog_name sshd, prog_file /usr/sbin/sshd, uid 1000, audit_uid 1000, target_type NETOBJ, tid d13a79e0 UNIX STREAM, attr none, value none, result NOT_GRANTED by RC(Softmode)
Csinálj egy type-ot ennek a netobjnak, és a szükséges role-oknak adj
jogot a szükséges műveletekhez ehhez a type-hoz.
Az alapkonfig már csinált a unix domain socketeknek typeot.
Közben meglett a megoldást, ti. a gond nem itt volt :-)
Post by mag
Az nem teljesen világos, hogy a socketedet hogyan fogod a megfelelő
type-ra állítani. Ha named unix domain socket, akkor egy network
template-et definiálj neki. Ha nem named, akkor esetleg valamelyik
default create type lesz a te barátod.
Hmm... Ha a valid length 0-n van, akkor a nem named már nem fog ebbe
beleesni?
Post by mag
Strace-val nézd meg, hogy hogyan készül a socket, és a debugot
bekapcsolva tudd meg azt, hogy mi is neki a type-ja ma.
Nem néztem, mert azóta megoldottam, de készül ilyen amikor sshd userre
setuidel azt auth idejére, valamint készül egy, amikor a child processt
elindítja ami a loginelt userre setuidel...
Post by mag
Érdekel a megoldás.
A megoldás végül az lett, amit #***@freenode-on mondtak:
http://rsbac.org/documentation:rsbac_handbook:upgrading
-> RC: With option ``RC check access to UNIX partner process'': Add
CONNECT, ACCEPT, SEND and RECEIVE rights for all roles to PROCESS types
as required - the log will tell you (rsbac_rc_role_menu).

Így most első körben a general user és system usernek engedtem ezeket a
jogosultságokat saját maguk felé, valamint egymássall szemben is.

Annyit még említettél privben, hogy valahogy lehetne logolni, hogy mikor ki
mivel probálja ezt elkövetni, és melyik milyen role-ba esik éppen, stb...
Naezthogy? Mert gyanítom, vsz. itt-ott több jogosultságot osztottam, mint
kellett volna :-)
Meg persze azon is gondolkodom, hogy lehet tisztább lenne, az sshd miatt
csinálni egy új role-t, és az sshd-re beállítani initial-rolet, és csak
efelé kellene a többe role-nak adni bizonyos jogokat, illetve ennek, hogy
csökkenthető legyen a general és a system admin role-ok közti átjárás...

#rsbac-on említettek még ilyet is, hogy sshd-t meg lehet úgy csinálni, hogy
ne kelljen rootként futtatni, elég ha adok neki setuid és net_bind_service
cap-et...
Jelentem kevés. Ez max arra elég, hogy az sshd futtató userre
rájelentkezzek, és még emellé is ki kell kapcsolni a privsep-et, mert már az
sshd userre se akar rásetuidelni.. Gondolkodtam már azon, hogy lehet, hogy
át kell verni a fejét, és fake 0 uid-et kell neki mondani induláskor, és
akkor megcsinálja a megfelelő setuideléseket... Ezt még nem próbáltam ki.

Üdv:Gyur!
-- -------[ Free Software ISOs - http://www.fsn.hu/?f=download ]------- --
PÁSZTOR György e-mail: ***@fsn.hu
Free Software Network (FSN.HU) cell.: +3620 512 3335
Loading...