내 서버로 접근한 놈들 ip를 추적해 이메일 알림 보내기

박해인·2024년 11월 17일
0

1. fail2ban 설치 및 설정

: fail2ban은 기본적으로 시스템 로그를 모니터링하여 실패한 로그인 시도나 의심스러운 활동을 차단하고 알림을 보낼 수 있는 도구 입니다.

sudo apt-get update # 패키지 관리자 업데이트 
sudo apt-get install fail2ban #fail2ban 설치
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

여기서

[sshd]
enabled = true
filter = sshd
action = %(action_mwl)s
logpath = /var/log/auth.log
maxretry = 3
bantime = 600
findtime = 600
destemail = your-email@example.com
sender = fail2ban@example.com

내용을 추가해준다.

2. mailutils 설치 및 설정

: mailutils 패키지를 사용하여 로컬 메일 전송을 할 수 있습니다.

sudo apt-get install mailutils
sudo apt-get install msmtp msmtp-mta

sudo nano ~/.msmtprc

defaults
auth on
tls on
tls_starttls on
logfile ~/.msmtp.log

account gmail
host smtp.gmail.com
port 587
from your-email@gmail.com
user your-email@gmail.com
password your-gmail-password

account default : gmail

이때 비밀번호는 보안을 위해
https://blog.naver.com/realmani/223529540835?fromRss=true&trackingCode=rss
참고해서 앱 비밀번호 생성해서 넣자

sudo chmod 600 ~/.msmtprc #다른 사용자가 읽지 못하도록 권한 설정

echo "Subject: Test Email" | msmtp recipient@example.com

그럼 이메일이 올거다

us:~$ echo "Subject: Test Email" | msmtp recipient-email@example.com
msmtp: /home/parkhaein/.msmtprc: contains secrets and therefore must have no more than user read/write permissions

-> 이런 오류뜬거면 위의 ㅣ권한 변경이 안되는거임

sudo systemctl restart fail2ban

3. 이메일 전송을 위한 스크립트 작성

:

sudo nano /usr/local/bin/send_email_on_ssh.sh
#!/bin/bash

# 이메일 제목과 내용 설정
SUBJECT="SSH 접속 알림"
BODY="사용자 $(whoami) 가 $(hostname) 서버에 접속했습니다. IP 주소: $(who -m | awk '{print $5}' | sed 's/[()]//g')"

# 이메일 전송
echo -e "Subject: $SUBJECT\n$BODY" | msmtp recipient-email@example.com

스크립트 실행 권한 부여하기

sudo chmod +x /usr/local/bin/send_email_on_ssh.sh

4. bashrc에 스크립트 추가하기

sudo nano ~/.bashrc

파일 맨 아랫줄에 아래 내용 추가하기

# SSH 접속 시 이메일 보내기
/usr/local/bin/send_email_on_ssh.sh

변경사항 적용하기

source ~/.bashrc

완료!

profile
갓생살고싶어라

2개의 댓글

comment-user-thumbnail
2024년 12월 10일

ㅋㅋㅋㅋ 제목이 웃기네요

답글 달기
comment-user-thumbnail
2025년 1월 27일

제목이 센스 만점이시네요~^^

답글 달기