Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2015-04-14 23:17:19

  maciejkos - Użytkownik

maciejkos
Użytkownik
Zarejestrowany: 2010-11-14

midnight commander - blokada wyjścia poza ~

Witajcie
Szukam sposobu na ograniczenie możliwości wyjście użytkownika poza swój katalog roboczy.
Userzy łączą się po ssh.
Mają przycięte środowisko za pomocą lshell-a, natomiast jeśli dać im dostęp do mc - spokojnie mogą wychodzić poza swój katalog domowy.
Od kilku dni jednak domagają się przywrócenia mc - czy znacie może sposób na zablokowanie wyjścia poza ~ z poziomu mc ?

Z góry dziękuje za odpowiedź

Offline

 

#2  2015-04-15 01:14:26

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: midnight commander - blokada wyjścia poza ~

W profilu Apparmora da się to zrobić.

Dać MC dostęp tylko do niezbędnych plików,  konfigów i biliotek (potrzebnych do uruchomienia programu), a poza tym:

Kod:

deny  /   mrwxlk,
owner @{HOME}/**      rwl,

Identycznie można zrobić "jaila" dla Basha i każdej powłoki.

To samo można zrobić w Grsecurity RBAC czy SELinuxie, ale to już inny poziom gimnastyki.

Tu masz niezły przykład profilu Apparmoa dla Basha, który ogranicza także MC, tam tylko do poprawki  są reguły dla dla /home/*/ do kształtu, jaki dałem wyżej.
https://blog.cryptomilk.org/2011/09/02/jailbash/

Po prostu sposób konfiguracji Apparmora od wersji obowiązującej w 2011 roku się troszkę zmienił.

Ostatnio edytowany przez Jacekalex (2015-04-15 05:03:43)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2015-04-15 11:51:35

  mati75 - Psuj

mati75
Psuj
Skąd: default city
Zarejestrowany: 2010-03-14
Serwis

Re: midnight commander - blokada wyjścia poza ~

Nie prościej dać chmod np. 711 na /home?


[img]https://l0calh0st.pl/obrazki/userbar.png[/img]

Offline

 

#4  2015-04-15 21:24:12

  Pavlo950 - człowiek pasjonat :D

Pavlo950
człowiek pasjonat :D
Zarejestrowany: 2012-02-20
Serwis

Re: midnight commander - blokada wyjścia poza ~

A nie wystarczy 700 dla [b]root[/b] dla [b]/home[/b] i 777 dla [b]/home/user[/b]?

Offline

 

#5  2015-04-16 06:12:02

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: midnight commander - blokada wyjścia poza ~

[quote=Pavlo950]A nie wystarczy 700 dla [b]root[/b] dla [b]/home[/b] i 777 dla [b]/home/user[/b]?[/quote]
Bzdury totalne z 777  dla /home/user, i w ogóle uprawnieniami się powłoki nie zmodyfikuje.

Jeśli już samymi uprawnieniami dla systemowymi takie klatki bym musial budować, to wyłącznie przez mechanizm ACL, a i tak jażdy by bylo z tym na tydzień, podczas, gdy profil Apparmora mogę naskrobać w godzinkę czy dwie.

Powód jest taki, ze wewnątrz konta użyszkodnika musi być dostęp do poleceń powłoki, i bibliotek, które te programy używane w powłoce potrzebują.

Jak ktoś potrafi majstrować  uprawnieniami całego systemu do takiej roboty, to skończy i tak podobnie do chyba rotnode (o ile mnie pamięć nie myli) (mieli konta shell, oberwali  przez  dziurawe sudo).

Uprawnienia to troszkę za mało do szczelnego skonfigurowania klatki na konto shellowe, najłatwiejszym z bezpiecznych rozwiązań jest Apparmor, trudniejszym i dużo bardziej dziurawym od profilu Apparmora jest Chroot,
Względnie w miarę bezpieczny Chroot można zrobić, jak go dozbroić opcjami Chroot-protect z Grsecurity, ale Grsec, to już inny poziom gimnastyki, niewiele jest z resztą dystrybucji, które dostarczają gotowe jajko z Grsec,
a samodzielna kompilacja, to już wykracza poza standardową adminkę, i trzeba znacznie bardziej czaić bazę, żeby się w Grsec/Pax bawić.
Ale zamian do chroota możemy mieć takie kfiatki:

Kod:

kernel.grsecurity.chroot_caps = 1
kernel.grsecurity.chroot_deny_bad_rename = 1
kernel.grsecurity.chroot_deny_chmod = 1
kernel.grsecurity.chroot_deny_chroot = 1
kernel.grsecurity.chroot_deny_fchdir = 1
kernel.grsecurity.chroot_deny_mknod = 1
kernel.grsecurity.chroot_deny_mount = 1
kernel.grsecurity.chroot_deny_pivot = 1
kernel.grsecurity.chroot_deny_shmat = 1
kernel.grsecurity.chroot_deny_sysctl = 1
kernel.grsecurity.chroot_deny_unix = 1
kernel.grsecurity.chroot_enforce_chdir = 1
kernel.grsecurity.chroot_execlog = 0
kernel.grsecurity.chroot_findtask = 1
kernel.grsecurity.chroot_restrict_nice = 1

Do tego bardzo sympatyczny ACL - RBAC - też z Grsec.

Jest jeszcze SELinux (w każdym standardowym jaju, często domyślnie), który może tworzyć takie klatki typu sandbox, ale Selinux w konfiguracji jest ze 20  razy trudniejszy od Apparmora.

Klatka przy pomocy profilu Apparmora, to moim zdaniem najprostsza
z naprawdę skutecznych opcji, i w przeciwieństwie do majstrowania uprawnienia mi w całym systemie nie daje ryzyka rozpieprzenia całego systemu w drobny mak.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2015-04-16 06:37:51)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00012 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00099 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.188.227.108' WHERE u.id=1
0.00072 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.188.227.108', 1732528646)
0.00042 SELECT * FROM punbb_online WHERE logged<1732528346
0.00072 SELECT topic_id FROM punbb_posts WHERE id=285910
0.00124 SELECT id FROM punbb_posts WHERE topic_id=27281 ORDER BY posted
0.00057 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27281 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00082 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27281 ORDER BY p.id LIMIT 0,25
0.00075 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27281
Total query time: 0.00644 s