운영중입니다

서버 접속시 메일로 알림받기 본문

리눅스보안

서버 접속시 메일로 알림받기

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 접속 테스트

서버 접속시 아래와 같이 메일이 발송 됨.
접속한 계정에 따라 다르게 발송 가능.