본문 바로가기

학습/시스템

리눅스 서버의 공인 IP 주소가 변경될 때 이메일 알림을 보내는 방법

스크립트를 작성하여 주기적으로 공인 IP 주소를 확인하고, 변경이 감지되면 이메일을 발송하는 방법입니다.

1. ssmtp 설치
sudo apt update
sudo apt install ssmtp

ssmtp 설정
/etc/ssmtp/ssmtp.conf 파일을 편집합니다.


sudo nano /etc/ssmtp/ssmtp.conf

다음과 같이 설정합니다 (예시는 Gmail을 사용한 설정입니다):

/* 구글에서 앱 비밀번호를 만들어야함  참고 :https://support.google.com/accounts/answer/185833?hl=ko 에서 앱 비밀번호를 만들고 관리합니다 클릭 */


root=your_email@gmail.com
mailhub=smtp.gmail.com:587
AuthUser=your_email@gmail.com
AuthPass=your_email_password

UseSTARTTLS=YES

스크립트 작성 (check_ip_ssmtp.sh)

/* 코드 시작 */
#!/bin/bash

# 파일 위치 설정
IP_FILE="/path/to/last_ip.txt"
EMAIL="your_email@gmail.com"

# 현재 공인 IP 주소 확인
CURRENT_IP=$(curl -s http://ipinfo.io/ip)

# 마지막으로 확인한 IP 주소 불러오기
if [ -f "$IP_FILE" ]; then
    LAST_IP=$(cat "$IP_FILE")
else
    LAST_IP=""
fi

# IP 주소가 변경되었는지 확인
if [ "$CURRENT_IP" != "$LAST_IP" ]; then
    # 변경되었으면 새 IP 주소 저장
    echo "$CURRENT_IP" > "$IP_FILE"

    # 이메일 알림 보내기
    echo -e "Subject: IP Address Changed\n\nNew IP Address: $CURRENT_IP" | ssmtp "$EMAIL"
fi

/* 코드 종료 */


테스트 메일을 보내보세요.
echo -e "Subject: IP Address Changed\n\nNew IP Address: test" | ssmtp -v "your_email@example.com"

2. 스크립트에 실행 권한 부여
스크립트를 실행할 수 있도록 실행 권한을 부여합니다.

chmod +x /path/to/check_ip.sh

3. 크론 잡 설정
이 스크립트가 주기적으로 실행되도록 크론 잡(cron job)을 설정합니다. 예를 들어, 5분마다 실행되도록 설정할 수 있습니다.

crontab -e

다음 줄을 추가하여 5분마다 스크립트를 실행합니다:

*/5 * * * * /path/to/check_ip.sh


4. 결과
스크립트가 설정된 대로 작동하는지 확인합니다. IP 주소가 변경되면 설정한 이메일로 알림이 전송됩니다.

이 방법을 통해 서버의 공인 IP 주소가 변경될 때마다 이메일 알림을 받을 수 있습니다. 스크립트의 정확한 경로와 이메일 주소 등을 자신의 환경에 맞게 조정하여 사용하세요.