メールサーバのSMTP-Authへの総当たり攻撃(辞書攻撃/ブルートフォースアタック)への対処

スポンサーリンク
スポンサーリンク

SMTP認証へ辞書攻撃されるのでメールサーバをSMTPS-AUTH のみ利用にする で SMTPS-AUTH の設定方法について説明しました。
SSHGuard を使用している場合は、SMTPS-AUTH への辞書攻撃へ対処できるようにする設定を説明します。

SSHGuard については、下記を参照して下さい。

SSH総当たり攻撃(辞書攻撃/ブルートフォースアタック)の対策とその効果
SSHGuard使用時の iptables再起動の注意点と、SSHGuard起動・停止スクリプト

root で以下のファイルを修正して下さい。

/usr/local/sbin/log2sshguardsig.pl

#! /usr/bin/perl
use IO::Handle;
STDOUT->autoflush(1);
while( 1 ){
    $line = <STDIN>;
    if( $line =~ /authentication failure; .+ruser=(.+?) rhost=([0-9\.]+)[\r\n\s]/ ){
        # dovecot2.0
        $user = $1;
        $ip = $2;
        print "Invalid user $user from $ip\n";
    }elsif( $line =~ /Aborted login: user=<(.+?)>, method=PLAIN, rip=(.+?),/ ){
        # dovecot1.0
        $user = $1;
        $ip = $2;
        print "Invalid user $user from $ip\n";
    }elsif( $line =~ /postfix\/smtpd.+\[(.+)\]: SASL .+ authentication failed: authentication failure/ ){
        # smtps+auth
        $user = "unknown";
        $ip = $1;
        print "Invalid user $user from $ip\n";
    }elsif( $line =~ /([0-9\.]+) \- (.+?) .+? "GET.+?HTTP.+?" 401/ ){
        # apache basic/digest認証
        $user = $2;
        $ip = $1;
        print "Invalid user $user from $ip\n";
    }else{
        print "$line";
    }
}

/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 /var/log/maillog | /usr/bin/perl /usr/local/sbin/log2sshguardsig.pl | /usr/local/sbin/sshguard -l - >/dev/null 2>&1
exit 0

修正後、次のコマンドを実行して、SSHGuard を再起動して下さい。

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

これで、SMTPS-AUTH への辞書攻撃でも SSHGuard が反応するようになります。

コメント

  1. CentOSでyum-cronの設定をする
    yum-cronのデフォルトだとkernelのアップデートやsecurity updateでないup

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