IDやパスワードを変えて何度も接続を試みる総当たり攻撃(辞書攻撃/ブルートフォースアタック)は、ssh以外にメールサーバにも行われます。
sshへの攻撃の対策は、先の 記事 で説明しましたが、同様に SSHGuard を利用して、メールサーバへの攻撃にも対処できます。
以下ではその設定を説明します。なお、対象は CentOS6 + dovecot です。
先に、SSHGuard をインストール・設定しておく必要があります。インストール・設定については、 SSH総当たり攻撃(辞書攻撃/ブルートフォースアタック)の対策とその効果 を参照してください。
設定
以下は root で作業します。
perlを使います。無い場合は、下記でインストールします。
yum install perl
次のファイルを作成します。
/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"; }else{ print "$line"; } }
rc.localは以下のように修正します。
/etc/rc.local
変更前 /usr/local/sbin/sshguard -l /var/log/secure 変更後 /usr/bin/tail -n0 -F /var/log/secure | /usr/bin/perl /usr/local/sbin/log2sshguardsig.pl | /usr/local/sbin/sshguard -l - >/dev/null 2>&1 &
dovecotの認証エラー時のログを、SSHGuard が認識する形式に変換して、SSHGuardに渡します。
これで、sshへの攻撃と同様に、メールサーバへの攻撃に対しても SSHGuard が反応します。
なお、iptablesへの設定変更は必要ありません。
SSH総当たり攻撃(辞書攻撃/ブルートフォースアタック)の対策とその効果に従ったインストール・設定で、メールサーバにも対応できます。
参考
SSH総当たり攻撃(辞書攻撃/ブルートフォースアタック)の対策とその効果 パソコン鳥のブログ
iptablesサンプル パソコン鳥のブログ
コメント