“telegram bot을 이용한 실시간 프롬프트 명령어 알람 받기”
telegram bot을 이용한 실시간 프롬프트 명령어를 알람을 받을 수 있습니다.
이 포스팅에서는 EoS를 지난서버를 제외한 Rocky Linux 8 (Redhat 8)계열 이상에서 명령프롬프트 설정하는 방법을 설명합니다.
[개 요]종 류 : 엔지니어링 |
[기초이론&용어설명] |
[관련 기술자료] |
“시작하며”
이 포스트는 Telegram bot을 이용한 명령프롬프트 모니터링입니다.
1. 환경 변수 설정 및 rsyslog 설정 2. 스크립트 및 서비스 데몬 화 |
- bash script 를 이용한 서버 관리 글을 참고하여 아래 절차대로 수행하시기 바랍니다.
1) 환경 변수 설정과 기본 설정
서버 IP 와 접속한 IP를 정확하게 로그로 남기기위해 관련 geoip 관련 라이브러리 설치를 진행합니다.
라이브러리 설치
ip 설정과 geoip 관련 부분을 확인하기 위해서 패키지 라이브러리를 설치합니다.
Redhat # dnf install -y epel-release rocky-release # dnf install -y https://rpms.remirepo.net/enterprise/remi-release-$(source /etc/os-release && echo $VERSION_ID).rpm # dnf update -y # dnf install -y GeoIP GeoIP-devel GeoIP-data zlib-devel
Ubuntu # add-apt-repository ppa:maxmind/ppa # apt-get update -y # apt-get upgrade -y # apt install -y libgeoip-dev libgeoip* |
기존 환경 변수 설정
/etc/profile 전역 환경변수에 설정합니다.
해당 설정은 접속한 IP와 서버 IP 그리고 입력한 명령어에 대한 부분입니다.
# vi /etc/profile remoteip=$(curl -s ifconfig.me)
저장 후 # source /etc/profile |
rsyslog.conf 설정
rsyslog.conf 에 설정하기
이 설정은 명령프롬프트에 입력된 부분을 따로 로그로 기록하는것 입니다.
.cmg.log 로 기록하는 이유는 숨김파일로 로그가 저장되는것을 보여주지 않기 위해서 설정합니다.
# vi /etc/rsyslog.conf 맨아랫줄에 추가 local6.* /var/log/.cmd.log -> .cmd.log로 한 이유는 .파일로 숨김파일로 진행 # systemctl restart rsyslog # touch /var/log/.cmd.log # cat /var/log/.cmd.log |
아래는 해당 내용입니다.
2) 스크립트 및 서비스 데몬화
스크립트 생성
# mkdir /root/bin |
여기서 텔레그램 ID와 telegram bot API 키값이 중요합니다.
#!/bin/bash # 여러 사용자의 텔레그램 ID를 쉼표로 구분하여 추가합니다. # Telegram Bot 설정 # inotifywait로 파일 시스템 이벤트를 실시간으로 모니터링합니다. # 로그를 전송합니다. |
서비스 데몬화
# touch /etc/systemd/system/command_history_telegram.service # vi /etc/systemd/system/command_history_telegram.service |
[Unit] [Service] [Install] |
# systemctl enable –now command_history_telegram.service |
telegram bot 실행
텔레그램 bot에서 /start를 입력합니다.
유의사항 해당 부분은 서버내에서 관리자, 담당자가 아닌 해커가 명령프롬프트에서 무슨 명령어를 입력하는지 확인하는 용도 입니다. 이부분으로 단순 모니터링 알람이지 보안조치는 아닙니다. |