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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Znalazłem taki sposób na zamknięcie użytkownika w katalogu logując się po ssh. Sposób działa, ale częściowo. Częściowo ponieważ jak user2 odpali sobie mc to może biegać po całym systemie.
user2:x:1001:1001:,,,:/home/user2:/bin/rbash
-rbash: cd..: nie znaleziono poleceniauser2@serwer:~$ cd -rbash: cd: ograniczony user2@serwer:~$ cd .. -rbash: cd: ograniczony user2@serwer:~$
Zmieniłem mu
chmod 700 user2
Ale user2 dalej potrafi wyjść poza swój katalog.
Ostatnio edytowany przez tajwan (2016-01-27 00:12:46)
Offline
Idealnie nadaje się Apparmor:
http://blog.corporatism.org/RestrictedShellWithAppArmor
https://blog.cryptomilk.org/2011/09/02/jailbash/
Masz go w Debianie OTB, wystarczy zainstalować userspace (jest w repo pod hasłem apparmor) i włączyć Apparmora w parametrach cmdline kernela.
Tu na wiki Debiana: https://wiki.debian.org/AppArmor
Nic lepszego nie znajdziesz.
Pozdro
Ostatnio edytowany przez Jacekalex (2016-01-21 23:02:48)
Offline
Próbowałem jeszcze
root@serwer:/home/user2# ls-l bash: ls-l: nie znaleziono polecenia root@serwer:/home/user2# ls -l razem 12 drwxr-xr-x 2 user2 user2 4096 sty 21 21:56 [BEST - TORRENTS.NET] The.Transporter.Refueled.2015.PL.720p.BDRiP.XViD.AC3-K12 drwxr-xr-x 2 user2 user2 4096 sty 21 21:42 plik 700 MB drwxr-xr-x 2 user2 user2 4096 sty 21 22:00 Ugotowany - Burnt (2015) [720p] [BRRip] [XviD-Grubytg] [AC3] [Zaloga FT] root@serwer:/home/user2# chroot /home/user2 chroot: failed to run command ‘/bin/bash’: No such file or directory
Ale chyba coś źle robię.
Offline
Chroot nie jest żadnym poważnym zabezpieczeniem, chyba, żeby dozbroić go przez opcje ochrony chroota, które oferuje Grsecurity, wtedy staje się dosyć skuteczną klatką.
Chodzi o te opcje:
CONFIG_GRKERNSEC_CHROOT=y CONFIG_GRKERNSEC_CHROOT_MOUNT=y CONFIG_GRKERNSEC_CHROOT_DOUBLE=y CONFIG_GRKERNSEC_CHROOT_PIVOT=y CONFIG_GRKERNSEC_CHROOT_CHDIR=y CONFIG_GRKERNSEC_CHROOT_CHMOD=y CONFIG_GRKERNSEC_CHROOT_FCHDIR=y CONFIG_GRKERNSEC_CHROOT_MKNOD=y CONFIG_GRKERNSEC_CHROOT_SHMAT=y CONFIG_GRKERNSEC_CHROOT_UNIX=y CONFIG_GRKERNSEC_CHROOT_FINDTASK=y CONFIG_GRKERNSEC_CHROOT_NICE=y CONFIG_GRKERNSEC_CHROOT_SYSCTL=y CONFIG_GRKERNSEC_CHROOT_RENAME=y CONFIG_GRKERNSEC_CHROOT_CAPS=y # CONFIG_GRKERNSEC_CHROOT_INITRD is not set CONFIG_GRKERNSEC_CHROOT_EXECLOG=y
Przykład takiej ochrony na przykładzie próby ataku DOS ICMP
# Debian ### czw sty 21 22:56:07 localhost : / root ~> ping -f localhost ping: icmp open socket: Operation not permitted
Nadawanie uprawnień SUID, SGID:
chmod 6755 `which bash` chmod: nie można zmienić uprawnień do „/bin/bash”: Brak dostępu
Zablokowanie modyfikacji flag chattr:
chattr +a /bin/bash chattr: Operacja niedozwolona podczas ustawiania flag /bin/bash
Pozdro
Ostatnio edytowany przez Jacekalex (2016-01-21 23:01:01)
Offline
@tajwan: zacznijmy od tego, do którego katalogu user nie może mieć dostępu - bo np. zablokowanie dostępu do /usr to mniej więcej tyle co skuteczne zamknięcie w klatce bez jedzenia i picia.
Jeśli do innych /home/coś - to się tym innym cosiom odpowiednie uprawnienia nadaje (typu 0700 właśnie), a nie katalogowi domowemu usera.
Offline
Chce żeby miał dostęp tylko do swojego katalogu /home/user
Offline
Co masz na myśli pisząc „dostęp”?
Konkretnie napisz co chcesz uzyskać.
Offline
To pomyśl - w jaki sposób wykona np. "ls ~" jeśli nie będzie miał dostępu do polecenia ls? Skąd będzie wiedział gdzie ma swój katalog domowy jeśli nie będzie miał dostępu do /etc/passwd?
Jeśli coś nie ma być dostępne dla użytkownika to się to robi za pomocą praw dostępu (np. właściciel root i prawa 0700). Jeśli coś w systemie ma inne to znaczy że tak ma być i że user ma mieć do tego dostęp. Taka uroda systemu...
Offline
Chcę żeby użytkownik bo zalogowaniu się po ssh nie mógł wyjść poza swój katalog udało mi się to zrobić wpisem do rbash, ale to nie działa w wypadku mc. No że chyba najprościej będzie nie instalowanie mc ale to mi trochę utrudni pracę. Chyba się udało nawet działa zostawiłem w passwd bin/rbash dla użytkownika i zaminiłem uprawnienia na katalog home/user2 na 0700 i zablokował go nawet mc nie chce odpalić :).
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Fri Jan 22 12:33:33 2016 from 192.168.1.22 Could not chdir to home directory /home/user2: Permission denied -rbash: /home/user2/.bash_profile: Brak dostępu user2@serwer:/$ ls aquota.user dev initrd.img lost+found opt run sys var bin etc lib media proc sbin tmp vmlinuz boot home lib64 mnt root srv usr user2@serwer:/$ cd home -rbash: cd: ograniczony user2@serwer:/$ cd etc -rbash: cd: ograniczony user2@serwer:/$ cd .. -rbash: cd: ograniczony user2@serwer:/$ mc Wykonanie nie powiodło się: Nie można utworzyć katalogu /home/user2/.config/mc user2@serwer:/$ cd bin -rbash: cd: ograniczony user2@serwer:/$
Ostatnio edytowany przez tajwan (2016-01-22 12:37:28)
Offline
Tyle że jak widzę zamiast zamknąć użytkownika w jego katalogu zablokowałeś mu po prostu do niego dostęp... jesteś pewien że o to Ci chodziło?
Offline
Poza tym ten rbash jest cieniutki i przed niczym nie chroni.
Przykład w Wikipedii:
~$ rbash ~$ cd / rbash: cd: restricted ~$ bash ~$ cd / /$
;)
Offline
ethanak napisał(-a):
Tyle że jak widzę zamiast zamknąć użytkownika w jego katalogu zablokowałeś mu po prostu do niego dostęp... jesteś pewien że o to Ci chodziło?
No nie do końca gdzie popełniłem błąd. Fakt miał być zamknięty w katalogu a nie miał zablokowanego do niego dostępu.
Offline
Błąd uczyniłeś w założeniach.
Powiedz wreszcie co dokładnie chcesz osiągnąć - tylko nie powtarzaj o "zamknięciu w katalogu" tylko czego chcesz userowi zabronić. Ma nie móc podejrzeć pliku w /home/user3 czy może nie ma prawa sprawdzić, co siedzi w /usr/bin?
Offline
Chcę żeby user nie mógł biegać po całym systemie, on ma widzieć tylko swój katalog, a do innych nie miał dostępu. Żeby nawet przy po mocy mc nie mógł chodzić po całym systemie.
Ostatnio edytowany przez tajwan (2016-01-22 13:12:01)
Offline
Kurde, z Ciebie to jak z lulka trza informacje wyciągać...
Ma widzieć zawartość /usr/bin czy nie ma, odpowiedz. Bo jak ma widzieć to 1ch czy wlezie tam emckiem czy zrobi sobie ls -l /usr/bin. A jeśli nie to odpowiedz dlaczego nie i w jaki sposób miałby wykonać polecenie znajdujące się w /usr/bin.
A tak z ciekawości - co masz takiego tajnego np. w /usr/share że zabraniasz userowi tam zajrzeć?
Offline
Może widzieć zawartość /urs/bin nic tajnego nie trzymam w /usr/share. To może inaczej krótko i na temat żeby user nie wchodził i nie widział katalogów plików innych userów oraz żeby nie wchodził tam gdzie nie musi :)
Offline
0711 root.root dla /home - to go nikt jnie podejrzy
Jeśli żadna z usług na serwerze (np. apache czy inna poczta) nie łazi po katalogu użytkownika, to 700 na katalog domowy. Jeśli łazi to np.:
- apache i inne łaziki należą do grupy access
- katalog /home/user ma 0710 user.access
Dość proste i w miarę skuteczne. A na 100% lepsze od kombinowania z rbashem i innymi wynalazkami z czasów telneta łupanego.
Offline
2594
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 01:31:58)
Offline
Częściowo działa bo user nie może wejść do katalogu user2 fakt nie może wejść do innych katalogów, ale widzi wszystkich userów najlepiej by było żeby nie mógł wyjść poza swój katalog.
Offline
czytałeś co napisałem czy może znowu tylko połowę?
[ethanak@tia ~]$ ls /home ls: nie można otworzyć katalogu /home: Brak dostępu [ethanak@tia ~]$ ls -ld /home drwx--x--x. 182 root root 4096 01-15 10:34 /home
Offline
Możesz zablkoować listowanie zawartości /home. Ale po co?
Skoro ja jako user mogę równie dobrze wykonać
cat /etc/passwd
I też będę miał listę userów na maszynie. A tego pliku nie możesz zablokować przed odczytem.
Offline
ethanak Nie zauważyłem twojego postu dla tego się nie dogadalismy.
Offline
Według https://wiki.debian.org/chroot żeby zrobić chroot trzeba zainstalować
apt-get install binutils debootstrap
I pytanie czy wystarczy wydać polecenie
choot /home/user
czy trzeba coś jeszcze ustawić?
Offline
yossarian napisał(-a):
Poza tym ten rbash jest cieniutki i przed niczym nie chroni.
Przykład w Wikipedii:Kod:
~$ rbash ~$ cd / rbash: cd: restricted ~$ bash ~$ cd / /$;)
Ale za to (ze względów bezpieczeństwa) blokuje skopiowanie klucza SSH przez ssh-copy-id.
:D
@tajwan
czy trzeba coś jeszcze ustawić?
Nie wystarczy, debootstrap nie jest od budowania chrootów, tylko do instalacji systemu z poziomu innego Linuxa.
Jak Ci koniecznie zależy na chrootach, to zainteresuj się np Jailkitem, Jailtoolem albo czymś podobnym.
Ostatnio edytowany przez Jacekalex (2016-01-27 00:29:09)
Offline
Czyli sam chroot (funkcja czy jak to się tam fachowo nazywa) nie występuje standardowo w debianie trzeba zainstalować dodatkowe oprogramowanie?
Offline