Skrypt informujący o zalogowaniu się do powłoki protokołem SSH
Linux & SSH & e-mail

Rzadko zdarza się by jedna linijka skryptu umieszczona w katalogu /etc/profile.d, w wykonywalnym pliku o dowolnej nazwie potrafiła wpłynąć tak uspokajająco  na administratora. Oto ona:

echo $(who i am) | mail -s 'Na serwerze XXX nastąpiło uruchomienie sesji terminalowej SSH!' mymail@mydomain.pl

Powyższe rada ma zastosowanie do wszystkich wywołań przez kogokolwiek sesji terminalowej, także przez skrypty umieszczone przez nas w cronie. Może nam na tym nie zależeć więc wystarczy powyższy ciąg komend dodać do pliku .bashrc katalogu domowego interesującego nas konta.

     Jest też możliwość uzyskania informacji o logowaniu do systemu poprzez zastosowanie usługi pod nazwą DenyHost. Jest to program napisany w Pytonie przez Phila Shwartza, który analizuje logi w poszukiwaniu błędnych prób dostępu opartych o ataki słownikowe lub siłowe by zablokować wyłuskany numer IP  umieszczając go automatycznie w /etc/hosts.deny. Instalacja aplikacji sprowadza się do:

yum --enablerepo=epel install denyhosts

Natomiast konfiguracja sprowadza się do:

  • umieszczenia w pliku /etc/hosts.allow numerów IP, które nigdy nie mogą być zbanowane w postaci SSHD: xxx.xxx.xxx.xxx yyy.yyyy.yyyy.yyyy zzz.zzz.zzz.zzz lub w pliku samej aplikacji var/lib/denyhosts/allowed-hosts w takiej postaci by każdy numeru IP był sam w wierszu. Proszę nie zapomnieć o ENTERZE na końcu ostatniego wiersza!

  • modyfikacji pliku konfiguracyjnego /etc/denyhosts.conf ,np. ADMIN_EMAIL nadajemy wartość naszego adresu e-mail (kilka adresów oddzielamy przecinkami od siebie)

Dodajemy usługę do listy demonów automatycznie uruchamianych przy starcie oraz uruchamiamy ją z ręki od razu nie czekając na ponowne uruchomienie serwera:

chkconfig denyhosts on
service denyhosts start

Gdybyśmy potrzebowali usunąć z jakiś względów zbanowane numery IP to:

  • zatrzymujemy działanie usługi

service denyhosts stop
  • modyfikujemy następujące pliki usuwając zablokowane IP:

vi /etc/hosts.deny
vi /var/lib/denyhosts/hosts
vi /var/lib/denyhosts/hosts-restricted
vi /var/lib/denyhosts/hosts-root
vi /var/lib/denyhosts/hosts-valid
vi /var/lib/denyhosts/users-hosts
  • uruchamiamy usługę

service denyhosts start

Opracowanie własne na podstawie artykułu czasopisma LINUX Magazine oraz https://stackoverflow.com/questions/12788199/perform-action-when-user-logs-in-via-ssh-from-a-particular-host


Zaawansowane środowisko wykrywania intruzów
AIDE & CENTOS