2011年11月24日木曜日

ESXiをコマンドラインから操作

家で色々なOSの検証をしたくってESXi Hypervisorを導入したものの
家のメインマシンがOSXなのでvSphere clientを使えない。

OSXにVirtualbox入れて、仮想マシンのXPからvSphere clientで
ESXiを操作してたんだけど。その為だけにVirtualBoxってとも思い
色々模索してみたが、結局電源off/on程度ならSSHでESXiに繋いで
操作出来る事がわかったのでこちらを利用している。


■仮想マシンの一覧を表示
~ # vim-cmd vmsvc/getallvms
Vmid Name File Guest OS Version Annotation
64 mirage [datastore1] mirage/mirage.vmx centosGuest vmx-07
96 eagel [datastore1] eagel/eagel.vmx winXPProGuest vmx-07
~ #

■仮想マシンの電源オン
~ # vim-cmd vmsvc/power.on 48
Powering on VM:


現在vSphere clientをESXi上の仮想マシン(XP)にインストールしている。
それをOSXからvSphere clientの画面だけRDPで貰ってきて使う方法もあるけど
それが結構イケてない。
※ちゃんと終了しないと再接続するためにXPにログインしてアプリ落とさないといけなかった。
 ような記憶がある。昔過ぎて忘れた。

OSX用のvSphere client作ってくれないかな。vmwareの中の人。

2011年11月11日金曜日

ログから特定IPをiptablesで拒否るスクリプト

毎日毎日、某国から大量にSFTPサーバに色んな名前でアクセスしてくる。
公開鍵認証を使っているから、大丈夫なんだろうけどちょっとログ見ていると
腹立たしいので、ログから指定回数のアクセス失敗したIPはiptablesで
拒否する設定をするようにシェルスクリプト書いてみた。

うまくいくかは今日から運用で見てみようかと。

一応、1時間おきに登録したIPを開放してみるスクリプトも書いてみたので
それはまた後日。

------------------

#!/bin/sh
LOG_PATH="/var/log/messages"
Limit="10"

#Checking Rhost which used unknown user.
LIST=`grep "Invalid user" $LOG_PATH|awk -F "from " '{print $2}'|sort|uniq|grep -v '^$' `

for rhost in $LIST
do
COUNT=`grep "Invalid user" $LOG_PATH|grep -w "$rhost"|wc -l`

if test `grep -w "$rhost" chkAttackHost.log`
then
echo "Already Registered : "$rhost
else
if [ $COUNT -ge $Limit ]
then
echo "Attack Detected : "$COUNT " times ["$rhost"]"
echo $rhost >> chkAttackHost.log
`/sbin/iptables -I INPUT -s $rhost -j DROP`
fi
fi
done