如何获取root用户和普通用户SSH登录电子邮件通知警报

​每当我们在生产环境中安装、配置和保护Linux服务器时,跟踪服务器上发生的情况以及登录者至关重要,尤其是在服务器安全方面。​

为什么?因为如果有人通过SSH使用暴力手段以root用户身份登录服务器,那么请考虑他们将如何破坏您的服务器。

任何获得 root 访问权限的用户都可以做任何他们想做的事情。因此,允许通过 SSH 会话直接 root 登录并不是一个好的做法,​ 建议创建具有 sudo 访问权限的非 root 帐户。每当需要 root 访问权限时,首先以普通用户身份登录,然后使用“ su ”切换到 root 用户。 ​

要禁用直接SSH root 登录,请按照本文进行操作,​其中介绍了如何在SSH中禁用和限制root登录。​

但是,本文演示了一种在有人以 root 或普通用户身份登录时接收电子邮件警报通知的简单方法。它应该向指定的电子邮件地址发送电子邮件警报通知以及上次登录的 IP 地址。

因此,一旦识别出未知用户上次登录的 IP 地址,就可以使用防火墙规则阻止来自该特定 IP 地址的 SSH 登录,如下所示。

使用iptables

usudo iptables -A INPUT -s <IP_Address> -p tcp --dport ssh -j DROP

使用防火墙

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP_Address>" port protocol="tcp" port="22" reject'
sudofirewall-cmd--reload

使用 UFW(简单防火墙):

sudo ufw deny from <IP_Address> to any port 22
sudo ufw reload

如何在 Linux 服务器中设置 SSH 登录电子邮件警报

​要执行本教程,必须具有服务器上的root级别访问权限,并且对nano或vi 文本编辑器以及服务器上安装的用于发送电子邮件的mailx(邮件客户端)有一定的了解。 ​

根据你的Linux发行版,可以使用以下命令之一安装mailx客户端。

sudo apt install mailutils [在Debian、Ubuntu 和 Mint上] 
sudo yum install mailx [在RHEL/CentOS/FedoraRocky/AlmaLinux上] 
sudo emerge -a sys-apps/mailx [在Gentoo Linux上] 
sudo apk add mailx [在Alpine Linux上] 
sudo pacman -S mailx [在Arch Linux上] 
sudo zypper install mailx [在OpenSUSE上]     
sudo pkg install mailx [在 FreeBSD 上]

设置 SSH Root 登录电子邮件警报

现在以root用户身份登录,并通过键入cd /root命令转到 root 的主目录。

cd /root

接下来,向.bashrc文件添加一个条目,这将为用户设置本地环境变量并执行一些登录任务。例如,这里我们设置电子邮件登录提醒。

使用vinano编辑器打开.bashrc文件。请记住.bashrc是一个隐藏文件;使用ls -l命令将看不到它。您必须使用该-a标志才能查看 Linux 中的隐藏文件。

vi .bashrc
或是
nano .bashrc

在文件底部添加以下行。确保将“ ServerName ”替换为您的服务器的主机名,并将“ your@yourmaildomain.com ”更改为您的电子邮件地址。

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" your@yourdomain.com

保存并关闭文件,注销,然后重新登录。

一旦通过 SSH 登录,.bashrc默认情况下会执行一个文件,并向你发送一封有关 root 登录的电子邮件警报,如下所示。

示例电子邮件警报

ALERT - Root Shell Access (Database Replica) on: Thu Nov 28 16:59:40 IST 2023 tecmint pts/0 2023-11-28 16:59 (172.16.25.125)

设置 SSH 普通用户登录电子邮件警报

以普通用户 (tecmint ) 身份登录,然后输入cd /home/tecmint/命令转到用户的主目录。

cd /home/tecmint

接下来,打开.bashrc文件并在文件末尾添加以下行。确保替换如上所示的值。

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" your@yourmaildomain.com

保存并关闭文件,注销,然后再次登录。再次登录后,将执行.bashrc文件并向您发送用户登录警报的电子邮件地址。

通过这种方式,您可以为任何用户设置电子邮件警报以接收登录警报。只需打开.bashrc应位于用户主目录下的用户文件(即/home/username/.bashrc)并按上述方式设置登录警报。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值