SSH 접속시 텔레그램으로 알람 받기 ( ssh login telegram alert )

 서버에 SSH 접속을 하게 되면 Telegram으로 메세지를 받을 수 있게 구성하는 방법이다

1.먼저 작업을 위해서는 telegam에 봇을 만들어 주면 된다

botfather 검색 후  /newbot 이라고 입력하면 bot을 만들거냐고 물어본다 그럼 적당한 이름으로 구성  구성이 다 완료되면 API KEY가 제공됩니다  

봇 이름을 클릭하면 채팅이 시작된다

이제 새로운 채팅이 시작되니 해당 부분에 TEST라고 입력 후 잘 되는지 체크를 한다

사용자 아이디를 체크하기 위해서  웹 주소창에  https://api.telegram.org/botapikey값/geupupdates 를 입력하면 정보가 출력된다 여기서 필요한것은 사용자 ID

 GeoIP 를 설치 해준 다 ( client ip를 확인하기 위해서)

[root@localhost ~]# yum install GeoIP GeoIP-devel GeoIP-data zlib-devel

 그럼 이제 ssh 접속시에 telegram 으로 전송하기 위해서 스크립트를 구성해주면 된다 / ID값과 KEY값을 위에서 받은 정보로 기입해 주면 된다

[root@localhost ~]# vi /etc/profile.d/ssh-telegram.sh 


#!/usr/bin/env bash
# Telegram Bot send
# Dev / jsh
# Update / 2018.08.30
#
#####################################################################
#
ID="xxxxxxxxx"
KEY="6636xxxx6:AAHla0wu59Fqnaqa7BPOxxxxxxxxxFJbw"
URL="https://api.telegram.org/bot${KEY}/sendMessage"
DATE="$( date "+%Y-%m-%d %H:%M")"
#
####################################################################

CLIENT_IP=$(echo $SSH_CLIENT | awk '{print $1}')
SRV_HOSTNAME=$(hostname -f)
SRV_IP=$(hostname -I | awk '{print $1}')

if [ -n "$CLIENT_IP" ]
then
 GEO=`geoiplookup $CLIENT_IP | grep "Country" | awk -F, '{print $2}'`
 TEXT="$SRV_IP SSH Connection / User=${USER} / Client IP *${CLIENT_IP}* $GEO / Date: ${DATE}"
else
 TEXT="$SRV_IP SSH Connection / User=${USER} / Date: ${DATE}"
fi

curl -s -d "chat_id=$ID&text=${TEXT}&disable_web_page_preview=true&parse_mode=markdown" $URL > /dev/null

이제 SSH를 외부에서 접속을 시도하면 텔레그램으로 메세지가 발송된다.

태그

코멘트 쓰기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.

다음의 HTML 태그와 속성을 사용할 수 있습니다:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>



배송정보
배송조회를 하시려면 송장번호를 클릭하세요
배송조회
상품명
주문번호
택배사
송장번호