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  2012-05-28 19:33:47

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Blokowanie określonych poleceń userowi.

Witacie!

Postanowiłem zmienić działanie mojego systemu.
Mianowicie - obecnie aplikacje uruchamiam na swoim serwerze za pomocą serwera nanoweb, ponieważ zarówno na apache2 jak i lighttpd przy dużej ilości procesów się zawieszało i wszystko wyłączało. Takie rozwiązanie działa już u mnie bardzo długo. Dzięki niemu za pomocą PHP pobieram sobie określone dane oraz wykonuję/uruchamiam dane programy.

Przyszedł czas na zmianę, zastosowanie bardziej odpowiedniego dla tego celu rozwiązania.

Na serwerach "dzieciach" tworzyłbym użytkownika, który ma zablokowane wszystkie komendy (w celu bezpieczeństwa) oraz ma możliwość wykonywania określonych, np. może uruchamiać dane programy, tworzyć katalogi itp. (to sobie już samemu ustalam). Problem w tym, w jaki sposób mogę takie coś zrobić - takie blokowanie. Dodatkowo, chciałbym ustawić aby na tego konkretnego użytkownika można było się logować przez ssh tylko z określonych adresów IP.

Na serwerze "matce" łączę się z serwerami "dziećmi" za pomocą libssh2 (w PHP) i wykonuję sobie odpowiednie mi komendy (obecnie robię to za pomocą CURL i rozwiązania z nanoweb) i w starym przypadku niema problemu z ograniczeniem dostępu, gdyż na warunkach jest określone co użytkownik może konkretnie wykonywać, w przypadku bezpośredniego połączenia z SSH może praktycznie wszystko, co jest nie bezpieczne, np. będzie jakiś błąd w skrypcie lub na serwerze matce i ktoś, np. z tego konta coś "nabroi".

Pozdrawiam.

Ostatnio edytowany przez desavil (2012-05-28 19:42:09)

Offline

 

#2  2012-05-28 21:08:37

  torrentow - Członek Sejmowej Komisji Śledczej

torrentow
Członek Sejmowej Komisji Śledczej
Skąd: z GNU
Zarejestrowany: 2009-11-23

Re: Blokowanie określonych poleceń userowi.

Witam,
Na tym filmiku masz wyjaśnione co i jak masz zrobić na przykładzie [url]http://www.youtube.com/watch?v=6piQXXHTmqk[/url]
Pozdrawiam,
Towarzysz Torrentow


Każdy sam sobie szkodzi :)
[img]http://img715.imageshack.us/img715/7104/apt.png[/img]

Offline

 

#3  2012-05-28 21:37:26

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Blokowanie określonych poleceń userowi.

Dzięki :)

Tylko tutaj są pokazane uprawnienia do katalogów/plików.
A mnie chodzi o komendy.

Offline

 

#4  2012-05-28 22:09:47

  Jacekalex - Podobno człowiek...;)

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

Re: Blokowanie określonych poleceń userowi.

....ponieważ zarówno na apache2 jak i lighttpd przy dużej ilości procesów się zawieszało i wszystko wyłączało[/quote]
Coś dziwny ten serwer.

[url=http://grsecurity.net/gracldoc.htm]Grsecurity ACL[/url] na 100% - raczej hard rozwązanie, co do rozwiązań soft, to nie bardzo czaje, jak ci użyszkodnich uruchamiają te polecenia.
Jeśli przez shell, to albo chrooty, albo jakaś restrykcyjna powloka, w której można łatwo konfigurować uprawnienia, w FAQ masz [url=http://dug.net.pl/tekst/160/iron_bars_shell/h/ibsh]przepis[/url] na powłokę ibsh.

Chrooty mozesz postawić kilkoma sposobami, nieźle się sprawdza (u mnie) jaiklkit.

Jeśli natomiast te polecenia idą przez jakiś interfejs webowy, to kombinuj ze skryptem, który obsluguje ten interfejs.

To by było na tyle
;-)

Ostatnio edytowany przez Jacekalex (2012-05-28 22:12:04)


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

Offline

 

#5  2012-05-28 22:57:01

  desavil - Użytkownik

desavil
Użytkownik
Zarejestrowany: 2010-11-02

Re: Blokowanie określonych poleceń userowi.

Obecnie chodzi mi po prostu ustawienie takie, że dodam sobie użytkownika do systemu, zablokuję mu wszystkie komendy/programy i odblokuję wybrane.
Czyli, np. dodałem użytkownika łączę się przez ssh i z linii poleceń mogę wydawać tylko mkdir nic więcej.

Offline

 

#6  2012-05-29 13:42:05

  torrentow - Członek Sejmowej Komisji Śledczej

torrentow
Członek Sejmowej Komisji Śledczej
Skąd: z GNU
Zarejestrowany: 2009-11-23

Re: Blokowanie określonych poleceń userowi.

Witam,
[b]desavil[/b], to też można zastosować do plików jak i binarek czyli poleceń.
TIP. whereis i jazda
Pozdrawiam,
Towarzysz Torrentow


Każdy sam sobie szkodzi :)
[img]http://img715.imageshack.us/img715/7104/apt.png[/img]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.008 seconds, 11 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00004 SET NAMES latin2
0.00141 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='13.59.73.248' WHERE u.id=1
0.00086 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '13.59.73.248', 1732457630)
0.00039 SELECT * FROM punbb_online WHERE logged<1732457330
0.00087 SELECT topic_id FROM punbb_posts WHERE id=202690
0.00004 SELECT id FROM punbb_posts WHERE topic_id=21333 ORDER BY posted
0.00056 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=21333 AND t.moved_to IS NULL
0.00006 SELECT search_for, replace_with FROM punbb_censoring
0.00136 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=21333 ORDER BY p.id LIMIT 0,25
0.00099 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21333
Total query time: 0.00668 s