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 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.
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.
Legutóbbi hozzászólások