您好,登录后才能下订单哦!
# 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
在/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
编辑/etc/pam.d/sshd
文件,在文件末尾添加:
session optional pam_exec.so /usr/local/bin/ssh-login-alert.sh
重启SSH服务后测试登录:
sudo systemctl restart sshd
验证日志记录:
tail -f /var/log/ssh-login.log
对于Debian/Ubuntu:
sudo apt install mailutils postfix
对于CentOS/RHEL:
sudo yum install mailx postfix
编辑/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
安装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 &
安装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
cat /var/log/ssh-login.log
邮件发送失败:
/var/log/mail.log
echo "Test" | mail -s "Test" your@email.com
PAM模块不生效:
/etc/pam.d/sshd
修改正确日志文件权限问题:
sudo touch /var/log/ssh-login.log
sudo chmod 666 /var/log/ssh-login.log
通过本文介绍的方法,您可以实现: - 实时监控SSH登录活动 - 自动发送邮件告警 - 可选集成Fail2Ban增强防护
建议定期审查日志文件,并根据实际需求调整监控策略。对于生产环境,建议使用专业的监控系统如Zabbix或Prometheus进行更全面的监控。 “`
注:实际部署时请替换示例中的邮箱地址、SMTP服务器信息等参数。文章字数约1050字,可根据需要增减细节内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。