Linux中怎么设置SSH登录和电子邮件提醒

发布时间:2022-01-27 14:22:46 作者:iii
来源:亿速云 阅读:216
# Linux中怎么设置SSH登录和电子邮件提醒

## 前言

在Linux服务器管理中,监控SSH登录活动是安全运维的重要环节。通过配置SSH登录通知和邮件提醒,管理员可以实时掌握服务器的登录情况,及时发现异常访问。本文将详细介绍如何通过`sshd`日志监控、`pam_exec`模块和邮件工具实现这一功能。

---

## 一、配置SSH登录日志监控

### 1. 确保SSH日志记录正常
大多数Linux系统使用`rsyslog`或`syslog-ng`管理日志,SSH登录记录通常保存在:

```bash
/var/log/auth.log    # Debian/Ubuntu
/var/log/secure      # CentOS/RHEL

检查SSH日志是否正常记录:

sudo grep sshd /var/log/auth.log

2. 创建监控脚本

/usr/local/bin/下创建监控脚本ssh-login-alert.sh

#!/bin/bash

# 获取当前登录信息
login_info=$(echo $PAM_USER logged in to $PAM_RHOST at $(date))

# 记录到本地日志
echo "$login_info" >> /var/log/ssh-login.log

# 发送邮件通知
echo "$login_info" | mail -s "SSH Login Alert on $(hostname)" admin@example.com

赋予执行权限:

sudo chmod +x /usr/local/bin/ssh-login-alert.sh

二、通过PAM模块触发通知

1. 修改PAM配置

编辑/etc/pam.d/sshd文件,在文件末尾添加:

session optional pam_exec.so /usr/local/bin/ssh-login-alert.sh

2. 测试配置

重启SSH服务后测试登录:

sudo systemctl restart sshd

验证日志记录:

tail -f /var/log/ssh-login.log

三、配置邮件发送功能

1. 安装邮件工具

对于Debian/Ubuntu:

sudo apt install mailutils postfix

对于CentOS/RHEL:

sudo yum install mailx postfix

2. 配置邮件服务器

编辑/etc/postfix/main.cf

relayhost = [smtp.example.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

创建认证文件/etc/postfix/sasl_passwd

[smtp.example.com]:587 username:password

生成数据库文件并重启服务:

sudo postmap /etc/postfix/sasl_passwd
sudo systemctl restart postfix

四、高级配置方案

1. 使用Swatch实时监控

安装Swatch工具:

sudo apt install swatch  # Debian/Ubuntu
sudo yum install swatch  # CentOS/RHEL

创建监控配置/etc/swatch/ssh-login.swatch

watchfor /sshd.*session opened/
    exec "/usr/local/bin/ssh-login-alert.sh"

启动监控:

swatch -c /etc/swatch/ssh-login.swatch -t /var/log/auth.log &

2. 使用Fail2Ban增强安全

安装Fail2Ban:

sudo apt install fail2ban  # Debian/Ubuntu
sudo yum install fail2ban  # CentOS/RHEL

创建自定义规则/etc/fail2ban/jail.local

[ssh-login]
enabled = true
filter = sshd
action = %(action_mwl)s
logpath = /var/log/auth.log
maxretry = 3

五、验证与测试

  1. 从另一台机器SSH登录测试
  2. 检查日志文件:
    
    cat /var/log/ssh-login.log
    
  3. 查看收件箱是否收到提醒邮件

常见问题解决

  1. 邮件发送失败

    • 检查Postfix日志:/var/log/mail.log
    • 测试邮件发送:echo "Test" | mail -s "Test" your@email.com
  2. PAM模块不生效

    • 确认/etc/pam.d/sshd修改正确
    • 检查脚本权限和路径
  3. 日志文件权限问题

    sudo touch /var/log/ssh-login.log
    sudo chmod 666 /var/log/ssh-login.log
    

结语

通过本文介绍的方法,您可以实现: - 实时监控SSH登录活动 - 自动发送邮件告警 - 可选集成Fail2Ban增强防护

建议定期审查日志文件,并根据实际需求调整监控策略。对于生产环境,建议使用专业的监控系统如Zabbix或Prometheus进行更全面的监控。 “`

注:实际部署时请替换示例中的邮箱地址、SMTP服务器信息等参数。文章字数约1050字,可根据需要增减细节内容。

推荐阅读:
  1. Linux上怎么设置ssh密钥以免密码登录
  2. 详解linux SSH登录流程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux ssh

上一篇:Linux系统常用的9款笔记应用分别是什么

下一篇:jstat命令怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》