fix and refactoring

This commit is contained in:
Andrey Sazonov 2025-08-26 15:27:30 +03:00
parent 138676d3d8
commit 60121d3a6c

View File

@ -6,23 +6,47 @@ URL="https://api.telegram.org/bot${TOKEN}/sendMessage?parse_mode=markdown"
DATE="$(date +%d-%m-%Y\ %H:%M:%S)"
TMP_INFO="/tmp/ssh_caption_file.txt"
if [ -z "$PAM_RHOST" ]; then
exit 0
send_notification() {
local tmp_file="$1"
local country city org
curl -s -m 5 "http://ip-api.com/json/$PAM_RHOST" -o "$tmp_file" >/dev/null 2>&1
country=$(jq -r '.country // empty' "$tmp_file" 2>/dev/null) || country=""
city=$(jq -r '.city // empty' "$tmp_file" 2>/dev/null) || city=""
org=$(jq -r '.as // empty' "$tmp_file" 2>/dev/null) || org=""
if [ -z "$country" ] || [ -z "$city" ] || [ -z "$org" ]; then
TEXT="📡 Новое SSH подключение\n"
TEXT+="⌚ *Время*: \`$DATE\`\n"
TEXT+="*На хост*\n"
TEXT+="🖥 *Hostname:* \`$HOSTNAME\`\n"
TEXT+="👤 *Username:* \`$PAM_USER\`\n"
TEXT+="*С адреса*\n"
TEXT+="🔎 *Source IP:* \`$PAM_RHOST\`"
else
TEXT="📡 Новое SSH подключение\n"
TEXT+="⌚ *Время*: \`$DATE\`\n"
TEXT+="*На хост*\n"
TEXT+="🖥 *Hostname:* \`$HOSTNAME\`\n"
TEXT+="👤 *Username:* \`$PAM_USER\`\n"
TEXT+="*С адреса*\n"
TEXT+="🔎 *Source IP:* \`$PAM_RHOST\`\n"
TEXT+="🌎 *Country:* \`$country\`\n"
TEXT+="🏙 *City:* \`$city\`\n"
TEXT+="🕋 *Organisation:* \`$org\`"
fi
curl -s -m 10 -X POST "$URL" \
-d chat_id="$CHAT_ID" \
-d text="$TEXT" \
-d parse_mode=Markdown >/dev/null 2>&1
rm -f "$tmp_file"
}
if [ -n "$PAM_RHOST" ]; then
( sleep 0.1; send_notification "$TMP_INFO" ) &
fi
curl http://ip-api.com/json/"$PAM_RHOST" -s -o $TMP_INFO
COUNTRY=$( < $TMP_INFO jq '.country' | sed 's/"//g' )
CITY=$( < $TMP_INFO jq '.city' | sed 's/"//g')
ORG=$( < $TMP_INFO jq '.as' | sed 's/"//g')
if [ "$COUNTRY" = "null" ] || [ "$CITY" = "null" ] || [ "$ORG" = "null" ]; then
TEXT=$(echo -e "📡Новое SSH подключение📡\n⌚*Время*: \`$DATE\`\n*На хост*\n🖥*Hostname:* \`$HOSTNAME\`\n👤*Username:* \`$PAM_USER\`\n*С адреса*\n🔎*Source IP:* \`$PAM_RHOST\`")
else
TEXT=$(echo -e "📡Новое SSH подключение📡\n⌚*Время*: \`$DATE\`\n*На хост*\n🖥*Hostname:* \`$HOSTNAME\`\n👤*Username:* \`$PAM_USER\`\n*С адреса*\n🔎*Source IP:* \`$PAM_RHOST\`\n🌎*Country:* \`$COUNTRY\`\n🏙*City:* \`$CITY\`\n🕋*Organisation: *\`$ORG\`")
fi
curl "$URL" -d chat_id=$CHAT_ID -d text="${TEXT}"
rm /tmp/ssh_caption_file.txt
exit
exit 0