登陆Linux服务器时触发邮件提醒
目前,客户只能在发现数据或者虚拟机被恶意侵入或者用户的误操作导致了数据的丢失之后,采取善后的手段,但是并没法做到提前的预警。那么通过 PAM 模块,就可以实现用户登录及获取root 权限时,通过邮件的方式进行通知。以实现预先知道、预先警惕的目标,同时降低受影响的范围。以下是通过 PAM 模块实现的邮件通知用户登录的功能
1.创建脚本(/tmp/ssh/login_notify.sh),备注:该脚本可存放在服务器的任意位置,但是需要将后续的路径指定好
[root@hlmcen75n1-gen-um waagent]# cat /tmp/ssh/login_notify.sh
#!/bin/bash [ "$PAM_TYPE" = "open_session" ] || exit
{
echo "User: $PAM_USER"
echo "Ruser: $PAM_RUSER"
echo "Rhost: $PAM_RHOST"
echo "Service: $PAM_SERVICE"
echo "TTY: $PAM_TTY"
echo "Date: `date`"
echo "Server: `uname -a`"
} | mail -s "`hostname -s` $PAM_SERVICE login: $PAM_USER" user@yourdomain.com
2.给脚本(/tmp/ssh/login_notify.sh)添加可执行权限
[root@hlmcen75n1-gen-um ~]# chmod +x /tmp/ssh/login_notify.sh
3.编辑文件(/etc/pam.d/sshd),在文件最后追加一行(session optional pam_exec.so debug /bin/bash /tmp/ssh/login_notify.sh)
[root@hlmcen75n1-gen-um waagent]# cat /etc/pam.d/sshd
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
# Used with polkit to reauthorize users in remote sessions
-auth optional pam_reauthorize.so prepare
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session required pam_namespace.so
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
# Used with polkit to reauthorize users in remote sessions
-session optional pam_reauthorize.so prepare
session optional pam_exec.so debug /bin/bash /tmp/ssh/login_notify.sh
4.至此,每一个用户登录都会发邮件通知给收件人,内容包括用户名以及登录的 IP 地址信息。如果遇到陌生 IP,那么就要注意。以此来判断该虚拟机是否正在遭受攻击,邮件示例如下:
5.同理,你可以在把上述脚本应用到 /etc/pam.d/ 其他模块中,比如 sudo,login 等,来进行监控
参考链接:https://docs.azure.cn/zh-cn/articles/azure-operations-guide/virtual-machines/linux/aog-virtual-machines-linux-security-reinforce
登陆Linux服务器时触发邮件提醒的更多相关文章
- SecureCRT上使用公钥登陆Linux服务器
SecureCRT部分配置 1.首先生成公钥. 打开SecureCRT(我的版本为7.0,估计其他版本基本相同)程序,点击菜单栏的“工具”->“创建公钥”.按照步骤执行.其中一步比较重要就是选择 ...
- 给Linux设置SSH登录邮件提醒
给Linux设置SSH登录邮件提醒 心血来潮,用 last 命令查看了登录记录,不看不知道,一看就有问题.竟然有两个陌生的IP ,一个是美国欧莱雅的,一个是北京联通的.真是郁闷,密码简单了真不行 后来 ...
- 在linux终端远程登陆linux服务器
在linux终端远程登陆linux服务器 原来在Linux终端远程登陆linux服务器是那么的容易,如果的服务器用户名是abc(也可以是root),只需要在终端输入: 然后电脑会提示输入密码就登录 ...
- 通过SSH服务登陆linux服务器(版本RHEL7)
通过SSH服务登陆linux服务器(版本RHEL7) SSH服务概述:是一种能够以安全的方式提供远程登陆的协议,也是目前远程管理linux系统的首选方式.在此之前,我们一般使用FTP或者telnet来 ...
- 连接到 Linux 服务器时首先要运行的 5 个命令
作为一个系统管理员/SRE 工作 5 年后,我知道当我连接到一台 Linux 服务器时我首先应该做什么.这里有一系列关于服务器你必须了解的信息,以便你可以(在大部分时间里)更好的调试该服务器. 连上 ...
- 批处理程序:自动上传FTP,再登陆linux服务器执行更新
----转载请注明出处:博客园-邦邦酱好 最近在学批处理程序,一直没找到能够结合工作来使用它的地方,前几天测试服务端的时候突然想到可以这样做: 写一个批处理程序,自动通过FTP上传软件包到指定的地方, ...
- ssh登陆linux服务器 实际场景讲解 让你管理服务器更安全
很多时候我们管理linux系统,都谁使用ssh登陆,因为都知道ssh是加密传输的协议的,可以有效保证我们与 服务器之间的数据通信安全.但是我们忽略了一点,但是登陆的时候我们是输入的账号和密码,这一点其 ...
- 使用ssh公钥密钥自动登陆linux服务器
转自:http://7056824.blog.51cto.com/69854/403669 作为一名 linux 管理员,在多台 Linux 服务器上登陆进行远程操作是每天工作的一部分.但随着服务器的 ...
- [zz] 使用ssh公钥密钥自动登陆linux服务器
目录 .生成密匙对 .拷贝公匙到远程机 .启动登陆代理 这种方法处理后每次需要运行命令:ssh-add ~/.ssh/id_dsa 作为一名 linux 管理员,在多台 Linux 服务器上登陆进行远 ...
随机推荐
- C++类中静态数据成员MAP如何初始化
conv_xxx.hpp class convolution { ... ... typedef std::map<int, std::string> ConvDtMap; static ...
- CodeForces 787 题解
A题,因为数据范围很小,所以只要暴力即可,如果能相遇一定范围不大,如果范围很大还没相遇一定是不会相遇的了.正解应当是用扩展欧几里得计算这个方程的整数解,再想办法看看有没有正整数解才是. B题,只要看懂 ...
- [WEB安全]给BurpSuite设置非本地的网络代理
目录 0x01 一般情况 0x02 移动端流量抓取 0x03 多重代理的情形 0x04 参考链接 在Web渗透测试过程中,BurpSuite是不可或缺的神器之一. BurpSuite的核心是代理Pro ...
- Dockerfile HEALTHCHECK详解
Dockerfile中使用HEALTHCHECK的形式有两种: 1.HEALTHCHECK [options] CMD command(本次详细解释) 2.HEALTHCHECK NODE 意思是禁止 ...
- ICEM-带死角弯管
原视频下载地址:https://yunpan.cn/cqRiHaQiLi8I7 访问密码 b5c6
- start、就绪、运行状态的demo演示
1.start状态: package com.roocon.thread.t1; public class NewThread implements Runnable { @Override publ ...
- linux 关机/重启命令总结
linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...
- RK3399 删除开机锁屏界面
CPU:RK3399 系统:Android 7.1 删除开机锁屏界面 diff --git a/frameworks/base/packages/SettingsProvider/res/values ...
- raid卷性能测试
#RAID卷 独立磁盘冗余阵列RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术.组成磁盘阵列的不同方式成为R ...
- Tosca database help link
https://support.tricentis.com/community/manuals_detail.do?lang=en&version=12.0.0&url=tosca_b ...