2014/09/30(火) [n年前の日記]
#1 [vine][linux][hns] OSアップグレード作業中その3
まだまだ作業中。もっとも、この日記ページが見えてるということは、多少問題はありつつも一応そこそこサーバは動いてる、ということでしょうけど…。
◎ swatch。 :
リアルタイムにログを監視して、特定のログ内容が出てきたら何か処理をすることができるツール。
_Simple Log Watcher | SourceForge.net
_【Vine Linuxで自宅サーバー】Swatchで不正アクセス遮断(Swatch+iptables)
_swatchインストール : マロンくん.NET
どうも動いてないような気がするので、一応再インストールすることにした。
必要なモジュールをインストール。他にも必要なものがあるかもしれないけど、よく分かってない。
インストール作業。
/etc/init.d/swatch を作成。サービスとして利用できるようにする。
/etc/swatchrc にルール?を記述。
ftpサーバに、妙なアカウント名でアクセスしてくる相手が多くて…。
_Simple Log Watcher | SourceForge.net
_【Vine Linuxで自宅サーバー】Swatchで不正アクセス遮断(Swatch+iptables)
_swatchインストール : マロンくん.NET
どうも動いてないような気がするので、一応再インストールすることにした。
必要なモジュールをインストール。他にも必要なものがあるかもしれないけど、よく分かってない。
apt-get install perl-Time-modules perl-TimeDate perl-Date-Calc perl-DateTime perl-File-Tail jwhois
cpan install Bit::Vector install Date::Calc install File::Tail install Time::HiRes install Date::Parse
インストール作業。
wget http://downloads.sourceforge.net/swatch/swatch-3.2.3.tar.gz tar zxvf swatch-3.2.3.tar.gz cd swatch-3.2.3 perl Makefile.PL make make test make install/usr/bin/swatch にインストールされた模様。
/etc/init.d/swatch を作成。サービスとして利用できるようにする。
#!/bin/sh
#
# chkconfig: 2345 42 42
# description: monitaring logs tool.
[ -f /usr/bin/swatch ] || exit 0
[ -f /etc/swatchrc ] || exit 0
. /etc/rc.d/init.d/functions
RETVAL=0
SWATCH_SCRIPT="/var/run/swatch"
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting swatch: "
/usr/bin/swatch -c /etc/swatchrc -t /var/log/messages --script-dir=$SWATCH_SCRIPT >/dev/null 2>&1 &
RETVAL=$?
echo
;;
stop)
# Stop daemons.
echo -n "Shutting down swatch: "
killproc tail
RETVAL=$?
echo
;;
restart)
$0 stop
$0 start
RETVAL=$?
;;
status)
status swatch
;;
*)
echo "Usage: swatch {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
/usr/bin/swatch -c /etc/swatchrc -t /var/log/messages の部分で、
- /usr/bin/swatch を起動せよ。
- 監視ルールは /etc/swatchrc に書かれてる。
- /var/log/messages を監視せよ。
/etc/swatchrc にルール?を記述。
watchfor /\[(\d+\.\d+\.\d+\.\d+)\]\) - Maximum login attempts/
mail=root,subject=swatch(Maximum login attempts)
exec /bin/echo in.proftpd: $1 >> /etc/hosts.deny
watchfor /\[(\d+\.\d+\.\d+\.\d+)\]\) - USER admin/
mail=root,subject=swatch(USER admin login failure)
exec /bin/echo in.proftpd: $1 >> /etc/hosts.deny
上記の記述で、 /var/log/messages に、
[192.168.1.21]) - Maximum login attemptsとか
[192.168.1.21]]) - USER adminてな感じの記録がされたら、該当IPを hosts.deny に追加することでアクセス拒否する。ついでに、root宛てに処理をした旨のメールを送る。
ftpサーバに、妙なアカウント名でアクセスしてくる相手が多くて…。
[ ツッコむ ]
以上です。