月別アーカイブ
検索

3週間ほど前に海外からの攻撃を受けていたサーバ。最近は順調に動いています。

それでも「定期的にログは見よう」と思っていたのに、気がつくと3週間経っていました。

久しぶりに見てみると、、、

今度はSSHポート

前回ほどではないのですが、SSHポートに攻撃を受けていました。

今度はサーバに負荷のかからない程度で。

もう、堪忍袋の緒が切れた!

奴らの辞書攻撃で実害を喰らうような使い方はしていないが、チマチマしていて実に目障りだ。

全て海外からの不正アクセスだったので、海外からのSSHアクセスは遮断することにした。

アクセスを許可するPCは、.jpで終わるプロバイダ経由なので、こうしてやる!

/etc/hosts.allow ファイル


ALL : localhost : allow

sshd : .jp : allow
sshd : ALL : deny

in.proftpd : .jp : allow
in.proftpd : ALL : deny

dovecot : .jp : allow
dovecot : ALL : deny

(ついでに、前回ポート自体を塞いでしまった POP3 も、国内からなら接続できるようにしておきました)

そして、それ以外は全て拒否だ!

/etc/hosts.deny ファイル


ALL : ALL

ところで、hosts.deny ですべてを拒否するのは非常に強力なだけに、間違えると一大事です。

hosts.allow を間違えると、外部から SSH 接続ができなくなるので、修正できなくなるからです。

特に今回はレンタルサーバなので、修正するためにローカルからログインすることができません。

で、ビビリんぼうの私は、1時間後に hosts.deny をクリアするように仕込んでおきました。

具体的な方法は、crontab -e で


0 11 * * * /bin/echo > /etc/hosts.deny

を加えておきました。

こうしておけば、間違えて外部からSSH接続できなくなっても、午前11時には拒否が解除されるというわけです。

まあ、結局取り越し苦労で、うまく設定できました。

本当は

本当は、iptables を使って「1分間に8回失敗したら、そのIPアドレスからはしばらく拒否」ということがしたかったのですが、お名前VPS では ipt_recent モジュールが使えないようなので諦めました。

関係ありそうな記事

コメント