Ha biztonságban szeretnénk tudni szerverünket, nem árt, ha értesülünk arról, amikor valaki SSH-n keresztül belép arra. Ez fontos lehet olyankor is, amikor több felhasználó is rendelkezik ilyen hozzáféréssel, de akkor is, amikor csak arról szeretnénk megbizonyosodni, hogy senki sem élt vissza a mi fiókunk adataival. A legegyszerűbb módja ennek, ha a háttérben mindig fut egy szkript, amely e-mailt küld nekünk SSH-val történő be- és kijelentkezéskor.

Ehhez először is hozzuk létre a figyelést végző szkriptet:

sudo nano /usr/sbin/user-monitor.pl

Majd ezt követően írjuk bele a következő tartalmat:

#!/usr/bin/perl
# user_monitor.pl v0.4 :: keep track on who's logged in
# Written by Stephan Schmieder - http://www.unix-geek.info, 2003
# Usage: ./user-monitor.pl&

use strict;
use warnings;
use diagnostics;
use Net::SMTP;

#configuration
my $server =`uname -a|cut -d" " -f2`;
my $smtp_server ='localhost';
my $mail_to     ='root@mail.sajatdomain.hu';
my $mail_from   ='root@' . $server;
my $subject     ="$server :: User login monitor";
#configuration

my @old_users=split(/\n/, qx/who/);
while(sleep(60))
{
        my @users=split(/\n/, qx/who/);
        if(@users ne @old_users)
        {
                my $smtp = Net::SMTP->new($smtp_server);
                die "Couldn't connect to server" unless $smtp;
                $smtp->mail( $mail_from );
                $smtp->to( $mail_to );
                $smtp->data();
                $smtp->datasend("Subject: $subject\n\n");
                foreach my $user (@users)
                {
                        $smtp->datasend("$user\n");
                }
                $smtp->dataend();
                $smtp->quit();
        }
        @old_users=@users;
}

A root@mail.sajatdomain.hu helyére azt az e-mail-címet írjuk, ahová az értesítéseket kérjük.

FONTOS!

A szkript a rendszer saját postfix/sendmail szolgáltatását használja a kimenő levelekhez, és elég kevés információt tesz bele a levélbe, ezért könnyen lehet, hogy az olyan nagyobb rendszerek, mint a gmail, levélszemétként észlelik az így küldött üzeneteket. Főleg akkor, ha rendszeresen és sok ilyet kapunk egy nem éppen a szabványok szerint bekonfigurált SMTP-kiszolgálóról. Érdemes engedélyezési listára (whitelist) tenni a feladót, de a fenti szkriptet át is lehet írni igény szerint (akár egy külső SMTP-szolgáltatás, például a Postmark használatára).

Ez a probléma abban az esetben nem fog fennállni, ha a saját rendszerünkön saját magunk biztosítjuk az e-mail-fiókokat, és erre kérjük az értesítést, ebben az esetben azonban arra is fel kell készülnünk, hogy egy esetleges sikeres támadás után könnyen lehet, hogy sem az e-mailjeinket nem érjük már el, sem magát a rendszert, és így plusz információt sem kapunk egy esetleges támadóról. Éppen ezért javasolt inkább egy, a saját szerverünktől független, külső e-mail-címet megadni, amelyen akkor is látjuk a kapott üzeneteket, ha esetleg a saját gépünk már elesett.

Ennek elkerülése érdekében érdemes követni A tökéletes Ubuntu 18.04 LTS szerver telepítésének lépéseit, melynek során egy biztonságos kiszolgálót hozhatunk létre, amelyet igény szerint az ISPConfig webes adminisztrációs szoftverrel kezelhetünk.

Ezután módosítjuk a futtatási engedélyeket:

sudo chmod 755 /usr/sbin/user-monitor.pl

Ahhoz, hogy a szkript minden rendszerindításkor elinduljon a háttérben, felvesszük a crontab bejegyzései közé a következő sor beszúrásával:

sudo nano /etc/crontab
@reboot root    /usr/sbin/./user-monitor.pl&

Most pedig elindítjuk kézzel, hogy a rendszer újraindítása nélkül is elkezdjen futni a háttérben:

sudo /usr/sbin/./user-monitor.pl&

A sikeres indítást követően meg kell jelennie a futó folyamatok listájában:

ps aux | grep monitor.pl
root      1026  0.0  0.2  59548 11380 ?        S    Aug09   0:22 /usr/bin/perl /usr/sbin/./user-monitor.pl

Ha ezzel megvagyunk, akkor mostantól kezdve minden egyes SSH-s be- és kijelentkezéskor egy e-mailt kapunk a megadott e-mail-címen, amelyben szerepel a szerverünk neve és a bejelentkező felhasználó IP-címe is.

Chilly
Chilly

Chilly 1997 óta foglalkozik webhelyek üzemeltetésével és programozással, valamint különböző kütyük kipróbálásával, és azóta folyamatosan nyomon követi a technikai újításokat. Elsődlegesen Linux-rendszerekkel dolgozik, de az évek során rengeteg tapasztalatra tett szert a Windows-gépek üzemeltetése terén is, hobbiszinten pedig az utóbbi időben egyre több időt tölt a Raspberry Pi módosítgatásával, illetve otthoni automatizált és biztonságtechnikai rendszerek kiépítésével.
Mesterfokon beszél angolul, és műszaki szakfordítói vizsgával rendelkezik. Korábban sokáig újságíróként dolgozott nyomtatott és online magazinoknál.

Visit Us On LinkedinCheck Our Feed