# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。