おれさまラボ

実際に手を動かして理解を深めるブログ。

PaloaltoでAD情報を取得できているか確認する

運用終了したスクリプトですが、備忘としてメモ。

Paloaltoで、User-IDエージェントと連携させて、Active Directoryのユーザ情報を取得できているか確認するためのスクリプトです。 Paloaltoのバグで、AD情報を一切取得できなくなる不具合がありましたので、その際再発を検知するために書いたスクリプトです。

ちなみに、Paloaltoでの確認コマンドは以下の通りです。

$ show user ip-user-mapping all
#############################################################
#
# Check AD Users Script for PaloAlto
#
# CREATE : 2016/4/14
# UPDATE : None
#
#############################################################

##################
### Variable
##################

today=`date +%Y%m%d_%H%M%S`

# Machine
hostname='Paloalto'
user='admin'
host='192.168.1.1'
user_pass='admin'

# Path
logdir='/tmp'
log="${logdir}/${hostname}_${today}.log"
#log="${logdir}/test.log"

# Command
c_grep='/bin/egrep'
c_pager='set cli pager off'
c_check='show user ip-user-mapping all'
c_mailx='mailx'

##################
### Mail Send
##################
Mail_Send() {

# Create Mail Subject
number=$(cat ${log} | ${c_grep} "Total:" )
if [[ $number == "Total: 0 users" ]] ;then
subject=">>> Critical <<< The Number of User Account is ${number}"
elif [[ $number != "Total: 0 users" ]] ;then
subject="The Number of User Account is ${number}"
fi

#Create Mail Body
msg=""

#Chose Address
fromaddr="test@example.com"
toaddr="test2@example.com test3@example.com"

# Send Mail
echo -e "${msg}" | ${c_mailx} -s "${subject}" -r ${fromaddr} ${toaddr}
}

##################
##### Delete #####
##################

Log_Delete() {
rm -f ${log}
}

##################
#####  Main  #####
##################
# Check users
{
expect -c "
set timeout 60
spawn ssh -l $user $host
expect \"Password:\"; send \"$user_pass\n\"
        sleep 1
expect \"admin@paloalto>\"; send \"$c_pager\n\"
        sleep 1
expect \"admin@paloalto>\"; send \"$c_check\n\"
        sleep 1
expect \"admin@paloalto>\"; send \"exit\n\"
expect eof
"
} >> ${log}

# Send alert mail
Mail_Send

# Delete
Log_Delete

2>&1

たまには、スクリプト書きたい。