Portál AbcLinuxu, 10. května 2025 10:09

Dotaz: zakázání všech příkazů mimo výjímek

16.6.2008 14:36 quick
zakázání všech příkazů mimo výjímek
Přečteno: 301×
Odpovědět | Admin
Zdravím.
Potřeboval bych omezit pár potenciálně nebezpečných uživatelů svého serveru,
a to tak že bych jim zakázal veškeré příkazy a povolil jen výjímky.
Moc bych ocenil vaší radu, všem předem děkuji.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.6.2008 15:12 marek
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
Odpovědět | | Sbalit | Link | Blokovat | Admin

Dobry den.

Napada me od jednoducheho ke slozitemu: acl,chroot,selinux.

Pokud ale jde o to povolit jim spusteni prave jednoho scriptu, pouzil bych ssh s klicem.

marek

16.6.2008 15:25 quick
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
Dobrý den, Jde mi spíš o příkazy v bashi, rád bych zakázal všechny a povolil jen třeba dva.
Nastavil bych to v oprávnění, ale na to nemám vědomosti.
Hledám nějaké jednoduché řešení typu:
alias irssi='irssi'
alias *='exit'
16.6.2008 16:12 marek
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek

Jestli jde o to povolit jen dva prikazy, potom doporucuji to ssh. Je to jednoduche a prakticky neprustrelne.

Funguje to tak, ze si uzivatele vygeneruji dsa, nebo rsa klic (umi to vpodstate jekykoli klient - openssh, putty .....).

Pro openssh to vypada tak, ze na klientske stanici napiseme: ssh-keygen -t dsa # vylezou z toho .ssh/id_dsa.pub a .ssh/id_dsa

Na serveru: dame obsah .ssh/id_dsa.pub do (/home/uzivatel).ssh/authorized_keys.

Na zacatek radky pridame command="/cesta/irssi"

Je potreba nastavit prava tohoto souboru na cist jenom pro vlasnika (chmod 400 /home/uzivatel/.ssh/authorized_keys; chown -R uzivatel /home/uzivatel/.ssh).

Jeden uzivatel muze mit vic klicu a prihlasovat se pro kazdy prikaz s jinym klicem(u openssh parametr -i).

Reseni zavisle na konkretnim shellu, ktery se uzivateli spusti(alias ...), je tak snadne obejit, ze to snad ani nema cenu zavadet.

marek

16.6.2008 16:28 12345 | skóre: 41 | blog:
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím, jestli to není úplně zcestné řešení, ale nešlo by vytvořit takový nějaký skript a použít ho jako login shell?
#!/bin/bash

while true; do
	echo -n '$ '
	read ARGV

	CMD=${ARGV%% *}

	case $CMD in
		ls) $ARGV ;;
		date) $ARGV ;;
		*) echo 'Invalid command!' ;;
	esac
done
16.6.2008 16:35 VM
Rozbalit Rozbalit vše rbash
Odpovědět | | Sbalit | Link | Blokovat | Admin
man rbash

melo by to resit podobny problem, jen bude treba nastavit PATH na adresar s povolenymi prikazy
16.6.2008 17:22 quick
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prosimvas,
Neslo by to nejak jednoduseji ?
Zatim se mi nejvic libilo to zsh, ale na to se musim kouknout jak to pouzivat.
Nebyl by ale nejakej jednoduchej zpusob ?
Bohate by mi stacilo kdybych vedel jak udelat alias na vsechno
Heron avatar 16.6.2008 17:36 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
To by ti stejně nepomohlo :-) Raději napiš čeho přesně tímto chceš dosáhnout. Uživatel se svými příkazy stejně moc škody udělat nemůže, dají se nastavit limity na pamět, procesy, quoty na disk, přes acl až po selinux (což už je hardcore).
16.6.2008 17:52 quick
Rozbalit Rozbalit vše Re: zakázání všech příkazů mimo výjímek
Jde mi o to, aby uživatel nemohl dělat nic co nechcu.
Aby nemohl poustet programy, aby nemohl do urcitych slozek, aby se nemohl ani pokusit ziskat roota, atd ...
Vim ze by to slo prez opravneni k tem souborum co na ne odkazujou prikazy, ale to je na me moc.
Kdybz uz ale premyslim, mozna by slo pomoci selinux zakazat tem uzivatelum vsechno ve slozce /var/bin a povolit jen vyjimky,
ale to je moc zmeny opravneni, toho se bojim.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.