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
완료!
ㅋㅋㅋㅋ 제목이 웃기네요