Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: plamen_t в Dec 06, 2006, 13:04



Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: plamen_t в Dec 06, 2006, 13:04
Със Slackware11 съм и съм отворил ssh порта. Root паролата освен мен я знаят още няколко човека. Интересува ме има ли начин, ако някой се логне през ssh-то аз да мога веднага да рабера, че се е логнал. Имам предвид нещо като система за известяване.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: n_antonov в Dec 06, 2006, 13:12
w
who


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: growchie в Dec 06, 2006, 13:29
Освен това може да видиш и last лога. Там ще видиш кой, кога, от къде и колко.
Дребен съвет. ЗАБРАНИ ROOT LOGINS през ssh. Направи на хората потребителски сметки и да си бачкат пред su или sudo най-добре.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: VladSun в Dec 06, 2006, 14:04
За такива нужди съм правил и едно скриптче:
Примерен код

root@host:~# cat .bash_profile

ip=`echo $SSH_CLIENT | cut -d" " -f1`

if [ "$ip" != "192.168.1.1" ];
then
    for i in `w | grep root | awk '{print $2}'`; do
        echo "*** ROOT Login from $ip ***" > /dev/$i
        echo > /dev/$i
    done
fi



192.168.1.1 e IP-то от което аз влизам - за да не ме известява :)
Това е само за конзола обаче :)


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: plamen_t в Dec 06, 2006, 21:31
10x VladSun

Точно такова нещо исках и аз. А то може да се направи вместо echo "Root login" да използва kdialog --msgbox "Root login".


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: ZERG в Dec 08, 2006, 08:31
//Само уточнение !

Човека искаше начин да го известява автоматично не всеки път да пише who :).


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: gat3way в Dec 08, 2006, 10:59
Кой къде пише who?

Идеята на VladSun си е много добра според мен. Единственият проблем е че не може да се използва за потребители различни от root защото няма да имат право да пишат в root-ските /dev/ttyX, дори и да имат такъв .bash_profile в home директорията, той няма да сработи. Ако писането в /dev/ttyX се замени с /usr/bin/write, който принципно е suid-нат, тази грижа ще отпадне.

Друго нещо за което трябва да се внимава е че не е много трудно да се заобиколи. След като имаш root достъп, най-лесното нещо е да създадеш един потребител, да му набиеш директно в passwd UID=0 и да си се логваш с него, заобикаляйки .bash_profile за root. За да не изглежда толкова съмнително, можеш да си наблъскаш suid-нат bash в /etc/shells с не много съмнително име (да речем /usr/bin/esh) и да го сложиш като shell за потребителя в /etc/passwd, така ще избегнеш странно изглеждащ потребител с uid 0. И всеки случай щом си се доверил на други хора да имат административен достъп дотам се очаква че те няма да са толкова палави потребители, нали :)


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: gat3way в Dec 08, 2006, 11:27
Хм, ся проверих, малко по-сложно ще стане, при мен абсолютно всички шел-ове си сдават suid привилегиите. Което обаче е тъпо измислено, просто ще exec-нем един от тях с root права:

Цитат

cat /bin/dsh.c
#include <unistd.h>
void main()
{
setuid(0);seteuid(0);execl("/bin/bash", "", 0);
}

cc -o /bin/dsh /bin/dsh.c
...
chmod u+s /bin/dsh
echo "/bin/dsh" >> /etc/shells


Воала...после дай за шел /bin/dsh на който и да е потребител без руут-ски права и си влиза като руут :)


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: plamen_t в Dec 10, 2006, 18:32
Само още малко по темата.
Има ли начин след като съм разбрал, че някой се е логнал през ssh-то, в някакъв файл да се записават всички команди, които е изпълнил. Т.е. да може да се разбере точно какво е правил след като се е логнал.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: n_antonov в Dec 10, 2006, 20:03
Има начин, но имай предвид, че това отнема много ресурси и не става с разни shell скриптчета. Можеш да го реализираш например с нещо като RSBAC или собственоръчно да си напишеш kernel модул, който да го прави.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: George Andonov в Dec 11, 2006, 13:09
Цитат (plamen_t @ Дек. 10 2006,18:32)
... Има ли начин след като съм разбрал, че някой се е логнал през ssh-то, в някакъв файл да се записават всички команди, които е изпълнил. ....

Опитай с history.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: _NetCutter_ в Dec 11, 2006, 15:51
А как мога да забраня достъпа до ssh?
Щото наскоро ми кракнаха паса и се чудя дали не е било през него . ..
Но и все пак ми е интересно, дали може без ънинсталването му.


Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: SRG в Dec 11, 2006, 16:42
Направи така че при стартиране да не се стартира sshd,а ако ще го ползваш и искаш да го подсигуриш има доста теми тук за това как да го направиш.





Титла: Как да рабера, ако някой се е логнал през ssh?
Публикувано от: George Andonov в Dec 11, 2006, 16:47
Цитат (_NetCutter_ @ Дек. 11 2006,15:51)
А как мога да забраня достъпа до ssh?
 . ..
Но и все пак ми е интересно, дали може без ънинсталването му.

SSH сървърът не е инсталиран по подразбиране. За да го инсталираш трябва да добавиш пакет openssh-server.

1. Ако си добавил пакета, но не ти трябва такава функционалност:
 - деинсталирай пакета.

2. Ако искаш временно да спреш услугата (до следващият рестарт на системата):
 - /etc/init.d/ssh stop

3. Спиране на услугата:
 - в System -> Administration -> Services махаш отметката на Remote shell server. Всъщност това те съветвам да направиш!!!