パソコン鳥のブログ

アクセスカウンタ

zoom RSS SSHGuard使用時の iptables再起動の注意点と、SSHGuard起動・停止スクリプト

<<   作成日時 : 2014/01/28 22:33   >>

トラックバック 2 / コメント 0

以下で紹介した SSHGuard使用時の iptables再起動の注意点です。
また、SSHGuard起動・停止スクリプトを作りましたので、紹介します。

SSH総当たり攻撃(辞書攻撃/ブルートフォースアタック)の対策とその効果
メールサーバへの総当たり攻撃(辞書攻撃/ブルートフォースアタック)への対処
apacheユーザ認証(HTTP認証)への総当たり攻撃(辞書攻撃/ブルートフォースアタック)への対処



SSHGuard使用時の iptables再起動の注意点ですが、iptables を再起動する場合、SSHGuardも停止・再起動する必要があります。
そうしないと、次の流れで問題が起こるからです。

(1) IPアドレス xx.xx.xx.xx から攻撃を受ける
(2) SSHGuard が xx.xx.xx.xx からの攻撃を検出する
(3) SSHGuard は xx.xx.xx.xx をブロックするルールを iptables に登録する
(4) iptables を再起動する。ここで、(3)で登録したルールは消える。
(5) 再度、IPアドレス xx.xx.xx.xx から攻撃を受ける
(6) SSHGuard は一度(3) で xx.xx.xx.xx をブロックするルールを iptables に登録したので、もう何もしない。
(7) ところが (4)で、そのルールは消えているので攻撃に無防備になっている。

この問題を避けるため、iptables を再起動する場合、SSHGuardも停止・起動する必要があります。

そこで、手軽に SSHGuard を停止・起動するスクリプトを作成しました。

以下、rootで作業します。

まず、次のファイルを作成して下さい。

/usr/local/sbin/exec_sshguard.sh

/usr/bin/tail -n0 -F /var/log/secure /var/log/httpd/access_log /var/log/httpd/ssl_access_log | /usr/bin/perl /usr/local/sbin/log2sshguardsig.pl | /usr/local/sbin/sshguard -l - >/dev/null 2>&1
exit 0



/etc/init.d/sshguard

#!/bin/sh
#
# SSHGuard      Start SSHGuard
#
# chkconfig: 2345 98 02
# description:  Starts and stops SSHGuard
#

start() {
    echo "starting SSHGuard:"
    sh /usr/local/sbin/exec_sshguard.sh &
    return 0
}

stop() {
    SHPID=`ps auxw|grep exec_sshguard | awk '{print $2}'`
    kill `ps ho pid --ppid=${SHPID}` >/dev/null 2>&1
    iptables -F sshguard
    echo "stopped SSHGuard:"
    return 0
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        echo $"Usage: $0 {start|stop}"
        exit 2
esac

exit 0



次のコマンドを実行します。

chmod +x /etc/init.d/sshguard
chkconfig --add /etc/init.d/sshguard



/etc/rc.local の以下行を削除します。

/usr/bin/tail -n0 -F /var/log/secure /var/log/httpd/access_log /var/log/httpd/ssl_access_log | /usr/bin/perl /usr/local/sbin/log2sshguardsig.pl | /usr/local/sbin/sshguard -l - >/dev/null 2>&1 &



以上で設定は完了です。

/etc/init.d/sshguard stop で SSHGuardを停止、/etc/init.d/sshguard start で開始します。
また、システム起動時にも自動的に SSHGuard が起動します。


iptables を再起動する場合、SSHGuardも停止・再起動する必要がありますが、次のようにします。

iptables停止時

/etc/init.d/iptables stop
/etc/init.d/sshguard stop


iptables開始時

/etc/init.d/iptables start
/etc/init.d/sshguard start



テーマ

関連テーマ 一覧


月別リンク

トラックバック(2件)

タイトル (本文) ブログ名/日時
メールサーバのSMTP-Authへの総当たり攻撃(辞書攻撃/ブルートフォースアタック)への対処
SMTP認証へ辞書攻撃されるのでメールサーバをSMTPS-AUTH のみ利用にする で SMTPS-AUTH の設定方法について説明しました。 SSHGuard を使用している場合は、SMTPS-AUTH への辞書攻撃へ対処できるようにする設定を説明します。 ...続きを見る
パソコン鳥のブログ
2014/02/05 22:13
sshへの攻撃を防ぐSSHGuard のインストール・設定用スクリプト
これまで sshへの攻撃を防ぐ SSHGuardについて下記記事で紹介してきましたが、これらの設定を行うスクリプトファイルを用意しました。 なお、スクリプトは CentOS用です。 ...続きを見る
パソコン鳥のブログ
2014/06/22 14:06

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
SSHGuard使用時の iptables再起動の注意点と、SSHGuard起動・停止スクリプト パソコン鳥のブログ/BIGLOBEウェブリブログ
文字サイズ:       閉じる