ラベル プログラム の投稿を表示しています。 すべての投稿を表示
ラベル プログラム の投稿を表示しています。 すべての投稿を表示

2014年10月16日木曜日

Teratermマクロ(SSH &公開鍵認証)

username = 'hoge-user'
hostname = '192.168.0.1'

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

msg = 'Enter password for user '
strconcat msg username
msg = hostname
strconcat msg ':22 /ssh /keyfile=C:\id_rsa /auth=publickey /user='
strconcat msg username
strconcat msg ' /passwd=hoge'

connect msg

wait '[hoge-user@hoge ~]$'
sendln 'su -'

wait 'パスワード:'
sendln 'hogehoge'

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

2010年5月14日金曜日

NotesカレンダーをCSVに書き出す。

人のソースを参考に、自分で書いたものをネットに退避。
これを使ってなんかトラブってもサポートいたしかねる。

・タスクが書き出されてしまう点
・会議しか書き出されない点
という問題があるのはいづれ直す。

Dim db As NotesDatabase
Dim doc As NotesDocument
Dim col As NotesDocumentCollection
Dim outputFile As Integer
Dim startDate As NotesDateTime, endDate As NotesDateTime

Sub Initialize
Dim session As New NotesSession
Set db = session.CurrentDatabase
Dim dateTime As New NotesDateTime(Today)

input@ = Cint(Inputbox$("何日前に作成されたスケジュールを取り込みますか?", , 1))

Msgbox Today-input@ & "以降に作成・変更した予定を書き出します。"
Set dateTime = New NotesDateTime( Today-input@)

Set col = db.Search("@IsAvailable(CalendarDateTime)",dateTime, 0)

counter=0

outputFile = Freefile()
Open "C:\NotesCal.csv" For Output As outputFile
Print #outputFile, |"| & "Subject" & |","| & "Start Date" & |","| & _
"Start Time" & |","| & "End Date" & |","| & "End Time" & |","| & _
"All day event" & |","| & "Description" & |"|
Set doc = col.GetFirstDocument
While Not (doc Is Nothing)
counter=counter+1
Set startDate = New NotesDateTime(doc.StartDateTime(0))
Set endDate = New NotesDateTime(doc.EndDateTime(0))
Print #outputFile, |"| & doc.Subject(0) & |","| & _
startDate.DateOnly & |","| & startDate.TimeOnly & |","| & _
endDate.DateOnly & |","| & endDate.TimeOnly & _
|","| & "false" & |",""|
Set doc = col.GetNextDocument(doc)
Wend

Msgbox counter & "個の予定を書き出しました。"

Close outputFile
End Sub

2010年5月13日木曜日

VBSからDOSコマンド実行

以下で実現可能。

Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd /c 実行したいコマンド",0,false

引数の0はプロンプトを表示するかどうか、falseコマンド終了待ちをするかどうか。