YUMSERV
article thumbnail
반응형

Telegram 봇을 통해서 ssh 접속할 때, 로그가 오게 설정해보겠습니다.

셋팅 환경은 CentOS7로 진행하였습니다.


1. telegram 접속 후, botfather 검색하여 채팅을 시작합니다.

밑에 시작 버튼을 통해 채팅 시작이 가능하며, /start 로도 시작이 가능합니다.





2. /newbot 으로 새로운 봇으로 생성합니다.

name 설정과 username 설정을 진행합니다. name은 봇의 이름을 설정하고, username은 아이디를 설정하는 부분입니다.

진행한 뒤에, http api token이 생성됩니다.



3. token으로 id 값을 확인합니다.

확인하는 방법은 아래와 같습니다.

https://api.telegram.org/botAPItoken값/getMe

APItoken 값을 넣으면 아래와 같이 접속이 되며, getupdates를 통해서 id값을 재 확인할 수 있습니다.




4. 서버 내 설치

서버에서 필요한 패키지를 설치합니다.

# yum -y install GeoIP GeoIP-devel GeoIP-data zlib-devel


5. 스크립트 작성


# vi /etc/profile.d/ssh-telegram.sh


#!/usr/bin/env bash

# Telegram Bot send

#

#####################################################################

#

SSH_CLIENT="$(/bin/last -1 | awk '{print $3}' | head -1)"

ID="id값"

KEY="HTTP API키값"

URL="https://api.telegram.org/bot${KEY}/sendMessage"

DATE="$( date "+%Y-%m-%d %H:%M")"

#

####################################################################

CLIENT_IP=$SSH_CLIENT

SRV_HOSTNAME=$(hostname -f)

SRV_IP="IP주소"


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


스크립트 내에 있는 내용 중 token 값과, id 값, IP를 수정한 뒤에, 저장해줍니다.


6. 서버에 ssh를 접속하게 되면

아래와 같이 봇으로 접속한 이력이 뜨게 되며, 어느나라에 접속했는지 확인이 가능합니다.



반응형

'LINUX > 보안' 카테고리의 다른 글

GeoIP 셋팅  (0) 2021.08.29
리눅스 해킹점검  (0) 2019.07.07
ClamAV 무료 백신 사용  (0) 2019.07.07
Google OTP 이용해서 SSH 인증  (0) 2019.06.25
profile

YUMSERV

@lena04301

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!