Nowe posty

Autor Wątek: SSH i użytkownicy  (Przeczytany 2924 razy)

lesiulodz

  • Gość
SSH i użytkownicy
« dnia: 2007-02-26, 20:06:40 »
otóż mam problem jak moge zabronić użytkownikowi xxx korzystania z ssh ?

benyo

  • Gość
SSH i użytkownicy
« Odpowiedź #1 dnia: 2007-02-26, 21:02:10 »
2007-02-26 20:06:40 lesiulodz napisał:

> otóż mam problem jak moge zabronić użytkownikowi xxx korzystania z ssh ?

w /etc/ssh/sshd_config

jest opcja

AllowUsers user1 user2 user3

czyli zezwalanie na logowanie konkretnym uzytkownikom

czy jest DenyUsers to nie wiem nie spotkalem sie z tym



xavery

  • Gość
SSH i użytkownicy
« Odpowiedź #2 dnia: 2007-02-26, 22:47:05 »
> > otóż mam problem jak moge zabronić użytkownikowi xxx korzystania z ssh ?
 >
 > w /etc/ssh/sshd_config
 >
 > jest opcja
 >
 > AllowUsers user1 user2 user3
 >
 > czyli zezwalanie na logowanie konkretnym uzytkownikom
 >
 > czy jest DenyUsers to nie wiem nie spotkalem sie z tym
 
To o czym piszesz to dostęp do serwera sshd a autorowi, jak mi się zdaje, chodziło o dostęp do polecenia ssh (klienta). Jeśli tak to sprawa jest ciekawa, bo... nie wiem jak to zrobić:) Na pewno można pomanipulować prawami dostępu do pliku ssh lub wynaleźć jakieś mechanizmy ograniczające shell'a. Ja w każdym razie nie miałem nigdy takiego problemu ale z chęcią spróbuję go rozeznać tak na przyszlość:)
Być może trzeba by się było udać w stronę ACL lub SELinux...
Może niech ktoś mądrzejszy rzuci trochę światła na to zagadnienie.

xis

  • Gość
SSH i użytkownicy
« Odpowiedź #3 dnia: 2007-02-27, 07:13:27 »
Jeśli userów na serwerze jest niewielu, to dodałbym wszystkich (poza tym naszym) do grupy np. sshusers, a plik wykonywalny klienta ssh (pamiętaj, że w skład openssh-client mogą wchodzić - i pewnie wchodzą - również inne binaria) ustawiłbym na wykonywalny dla grupy sshusers.

Jeśli userów jest wielu, a ten użytkownik dokładnie jeden i to bez zmian, to może napisałbym skrypt o nazwie ssh, a oryginalne ssh przemianowałbym na _ssh. _ssh zabrałbym uprawnienia tak, żeby wykonać go mógł tylko root. W nowym ssh wykonałbym sudo, ale najpierw sprawdziłbym czy dany user to przypadkiem nie jest ten 'zabroniony' - powinno zadziałać, ale to strasznie trickerskie.

Najelegantszym rozwiązaniem będzie chyba wspomniany przez Xaverego ACL, albo SELinux (ale ja też ich nie znam ;) ).

swierq

  • Gość
SSH i użytkownicy
« Odpowiedź #4 dnia: 2007-02-27, 09:15:55 »
2007-02-27 07:13:27 xis napisał:

 
 > Jeśli userów jest wielu, a ten użytkownik dokładnie jeden i to bez zmian, to może napisałbym
 > skrypt o nazwie ssh, a oryginalne ssh przemianowałbym na _ssh. _ssh zabrałbym uprawnienia tak,
 > żeby wykonać go mógł tylko root. W nowym ssh wykonałbym sudo, ale najpierw sprawdziłbym czy dany
 > user to przypadkiem nie jest ten 'zabroniony' - powinno zadziałać, ale to strasznie
 > trickerskie.
 >
 
No w ten trickerski sposób wykopalbys fajna dziure w bezpieczenstwie swojego systemu. Im mniej programow dziala z uprawnieniami roota tym lepiej. Wydaje mi sie ze umozliwienie wszystkim uzytkownikom do korzystania z ssh na prawach roota to pomysl nie do konca trafiony. Rozwiazanie z grupami jest jak najbardziej ok niezaleznie od tego ilu jest uzytkownikow.

Pozdrawiam

chmooreck

  • Gość
SSH i użytkownicy
« Odpowiedź #5 dnia: 2007-02-27, 12:55:54 »
2007-02-26 20:06:40 lesiulodz napisał:

> otóż mam problem jak moge zabronić użytkownikowi xxx korzystania z ssh ?

możesz mu na przykład wysłać maila, że nie ma korzystać z ssh :-)
ewentualnie możesz również poprosić go osobiście ;-)

xavery

  • Gość
SSH i użytkownicy
« Odpowiedź #6 dnia: 2007-02-27, 22:51:11 »
> możesz mu na przykład wysłać maila, że nie ma korzystać z ssh :-)
 > ewentualnie możesz również poprosić go osobiście ;-)
 >

Można też wyjąć mu z klawiatury klawisze 's' i 'h':)

A teraz poważniej. Spokoju mi to nie dawało i trochę pogrzebałem. Dziwi mnie, że nie ma (nie znalazłem) żądnych w miarę standardowych rozwiązań. W zasadzie można by się było spodziewać, że któraś z popularnych powłok umożliwiłaby zdefiniowanie zestawu niedozwolonych poleceń lub grup poleceń. No ale czegoś takiego nie znalazłem.
Pokombinowałem za to trochę z ACL'ami (Access Control List) no i chciałbym szanownej społeczności tudzież innym archeologom przedstawić pod dyskusję, ocenę i konstruktywną krytykę moje wypociny:)
Zakładam, że istnieje użytkownik o nazwie "testowy", jest zainstalowany wymagane oprogramowanie ACL, jajko i FS go supportują a program ssh jest na partycji /usr (/usr/bin/ssh). Dodajemy zatem obsługę ACL do partycji /usr. W tym celu w pliku /etc/fstab w polu opcji (4 pole) dodajemy opcje acl, np:
/dev/hdXY /usr    ext3  auto,rw,acl 0 0
I oczywiście przemontowujemy partycję:
mount -o remount /usr
Modyfikujemy ACL dla ssh tak aby user "testowy" nie miał żadnych praw do programu:
setfacl -m u:testowy:--- `which ssh`
Sprawdzamy uprawnienia:
getfacl `which ssh`
Powinno wyjść coś takiego:
# file: usr/bin/ssh
# owner: root
# group: root
user::rwx
user:testowy:---
group::r-x
mask::r-x
other::r-x
Od tej pory user "testowy" nie może uruchomić tego pliku. W każdym razie u mnie nie może:)

xis

  • Gość
SSH i użytkownicy
« Odpowiedź #7 dnia: 2007-02-28, 08:06:50 »
A mnie zastanawia jeszcze jedna rzecz: jeśli odebraliśmy prawo do wykonania jedynie komendy 'ssh', to czy user nie może sobie np. skompilować w kat. domowym własnego ssh? Albo w ogóle - jeśli dystrybucja jest pudełkowa - czy nie wystarczy samo wgranie binarki ssh o tej samej wersji do swojego katalogu domowego?

Offline Arkadiusz Bednarczyk

  • Linux.pl
  • Administrator
  • Guru
  • *****
  • Wiadomości: 654
    • Zobacz profil
    • Linux.pl
SSH i użytkownicy
« Odpowiedź #8 dnia: 2007-02-28, 14:29:31 »
2007-02-28 08:06:50 xis napisał:

> A mnie zastanawia jeszcze jedna rzecz: jeśli odebraliśmy prawo do wykonania jedynie komendy
 > 'ssh', to czy user nie może sobie np. skompilować w kat. domowym własnego ssh? Albo w ogóle -
 > jeśli dystrybucja jest pudełkowa - czy nie wystarczy samo wgranie binarki ssh o tej samej wersji
 > do swojego katalogu domowego?
 >

To można łatwo zabezpieczyć łatką na jądro dostarczaną przez grsecurity - wybrana grupa użytkowników będzie mogła uruchamiać tylko te programy, które znajdują się w katalogu, którego właścicielem jest root. Czyli u siebie nie uruchomi nic.
--
pozdrawiam
Arkadiusz Bednarczyk
email/jabber: arek@linux.pl

xavery

  • Gość
SSH i użytkownicy
« Odpowiedź #9 dnia: 2007-02-28, 18:30:20 »
> To można łatwo zabezpieczyć łatką na jądro dostarczaną przez grsecurity - wybrana grupa
 > użytkowników będzie mogła uruchamiać tylko te programy, które znajdują się w katalogu, którego
 > właścicielem jest root. Czyli u siebie nie uruchomi nic.

Można też montować /home z opcją noexec. Właściwie to pewnie istnieje więcej powodów dla których warto by w ten sposób montować tę partycję.

Offline Arkadiusz Bednarczyk

  • Linux.pl
  • Administrator
  • Guru
  • *****
  • Wiadomości: 654
    • Zobacz profil
    • Linux.pl
SSH i użytkownicy
« Odpowiedź #10 dnia: 2007-02-28, 21:35:52 »
2007-02-28 18:30:20 xavery napisał:

>  > To można łatwo zabezpieczyć łatką na jądro dostarczaną przez grsecurity - wybrana grupa
 >  > użytkowników będzie mogła uruchamiać tylko te programy, które znajdują się w katalogu,
 > którego
 >  > właścicielem jest root. Czyli u siebie nie uruchomi nic.
 >
 > Można też montować /home z opcją noexec. Właściwie to pewnie istnieje więcej powodów dla
 > których warto by w ten sposób montować tę partycję.

Tylko samo /home z noexec nie rozwiązuje tematu - ktoś sprytny może odpalić niechciane ssh z /tmp, które standardowo jest ogólnie dostępne dla wszystkich :)
--
pozdrawiam
Arkadiusz Bednarczyk
email/jabber: arek@linux.pl