【CentOS】SSHでログイン後にログイン理由を聞くようにする【ログイン理由書かないと強制ログアウト】

コンピュータ
あざらし
あざらし

29歳でフリーターからITエンジニアに転職を成功させ

31歳でフリーランスエンジニアになった

あざらしです

こんにちは

サーバーを運用しているとこんなことにぶつかることがあります。

「ログイン管理ってしてるの?」「ログインした履歴って残しているの?」「ログインしたらメールが飛ぶようにならないの?」

結論:全部できますよ!

上の人は監査ログ的な物を欲しがるんですよねー
セキュリティ観点からしても確かに欲しいけど、お金をかけてツールを入れたくないってごねるw

なので、基本的な機能だけで実現させます。

ちなみにこのスクリプトは私が初心者だった頃に作ったスクリプトですので、コードの汚さはご勘弁を。
今更綺麗にはしたくないってのもありますがw

コード

#####login chek###########################

MAIL=Toアドレス

FROM=Fromアドレス

DATA=`date ‘+%Y%m%d%H%M%S’`

Y=`date ‘+%Y’`

m=`date ‘+%m’`

d=`date ‘+%d’`

H=`date ‘+%H’`

M=`date ‘+%M’`

S=`date ‘+%S’`

SECURE=`grep “$H:$M:” /var/log/secure`

IP=`who am i | cut -d ‘(‘ -f 2 | sed -e ‘s/)//g’`

trap ‘echo “ログアウトします” ; exit 1’ 2

# User specific aliases and functions

if [ “$SSH_TTY” != “” ]; then

echo -n “ログイン理由を記載してください。

※未記入は強制ログアウトします。

(終了:Enter削除:Delete)

 : “

read ANS

        if [ -z $ANS ] ; then

                 echo “ログアウトします”

        exit 0

        else

                echo -e “[$HOSTNAME] $USER $Y/$m/$d $H:$M:$S From:$IP ログイン目的: $ANS” \

                | mail -s “\”$HOSTNAME\” root login” -r “$FROM” “$MAIL”

                echo “mailを送信しました。”

        fi

else

ANS=`zenity –entry –text=ログイン理由を記載してください`

        if [ -z $ANS ] ; then

        exit 0

        else

                echo -e “[$HOSTNAME] $USER $Y/$m/$d $H:$M:$S From:$IP ログイン目的: $ANS” \

                | mail -s “\”$HOSTNAME\” root login” -r “$FROM” “$MAIL”

        fi

fi

コード説明

# User specific aliases and functions

if [ “$SSH_TTY” != “” ]; then

echo -n “ログイン理由を記載してください。

※未記入は強制ログアウトします。

(終了:Enter削除:Delete)

 : “

SSHで接続している場合にのみ実行するようにしている。
これをやっておかないと、GUIでログインした時もスクリプトが動いてしまいます。

ANS=`zenity –entry –text=ログイン理由を記載してください`

        if [ -z $ANS ] ; then

        exit 0

        else

                echo -e “[$HOSTNAME] $USER $Y/$m/$d $H:$M:$S From:$IP ログイン目的: $ANS” \

                | mail -s “\”$HOSTNAME\” root login” -r “$FROM” “$MAIL”

        fi

fi

ログイン理由を記載しないと強制的にログアウトして、ログインしてきたユーザー名を拾ってメールで管理者に送信するようにしている

まとめ

あざらし
あざらし

最近は大規模なサーバー管理システムが整っているところがほとんどだからあまりこういったお手製のツールなんかは作らないけど、小規模な企業ならあり得る

私は開発人間ではないので、大した物は作れないですがある程のどスクリプトは書くことができます。

まあ、素人に毛が生えた程度ですがね。

でも、作っているととても楽しくなるのはやっぱり開発をやりたかったのかなーって今では思いますw

コメント

タイトルとURLをコピーしました