리눅스보안
서버 접속시 메일로 알림받기
https443
2025. 9. 9. 18:30
CentOS7, Apache 기준
✅ 1. Postfix 설치
#서버에서 메일을 보낼 수 있도록 Postfix 같은 MTA를 설치
yum install postfix -y
systemctl enable postfix
systemctl start postfix
systemctl status postfix
※ 보통 CentOS7 기준 Postfix는 기본적으로 설치되어 있음

✅ 2. PAM 설정
vim /etc/pam.d/sshd
# 맨 마지막에 추가
session optional pam_exec.so seteuid /usr/local/bin/login-notify.sh
✅ 3. 스크립트 생성 및 권한 부여
# 서버 접속 시 설정된 메일로 알림 메일 발송 스크립트 생성
vim /usr/local/bin/login-notify.sh
#!/bin/bash
USER_NAME=$PAM_USER
REMOTE_IP=${PAM_RHOST:-unknown}
NOW=$(date "+%a %b %d %H:%M:%S %z %Y")
MAIL_TO="메일주소"
HOSTNAME=$(hostname)
TTY=$PAM_TTY
SUBJECT="[Alram] Login : (서버이름 혹은 IP) Web Server - ($REMOTE_IP)"
BODY="$USER_NAME $TTY ($REMOTE_IP) $NOW"
echo "$BODY" | mail -s "$SUBJECT" "$MAIL_TO"
| 항목 | 출력 예시 | 의미 |
| %a | Tue | 요일(축약형, Tue = 화요일) |
| %b | Sep | 월(축약형, Sep = 9월) |
| %d | 09 | 일(두 자리) |
| %H | 16 | 시간(24시간제) |
| %M | 17 | 분 |
| %S | 35 | 초 |
| %z | +0900 | UTC 대비 시차(+09:00, 한국 표준시) |
| %Y | 2025 | 연도 |
#권한 부여
chmod +x /usr/local/bin/login-notify.sh
✅ 4. 메일 발송 테스트
echo "test mail body" | mail -s "test mail" (메일주소)
#해당 명령어를 사용하여 메일이 정상적으로 수신 될 경우 위 스크립트가 작동 할 확률이 높음
✅ 5. SSH 접속 테스트
서버 접속시 아래와 같이 메일이 발송 됨.
접속한 계정에 따라 다르게 발송 가능.
