SSHでのホスト制限

SSHで外から接続出来ると何かと便利です。
しかし、セキュリティ的にはあまり良くありません。
秘密鍵の利用や、SSHポート番号の変更は当然ですが
それでもアタックしてくる奴はいるものです。

私はアタックが多い国のIPをiptablesで規制しています。
(当然ながらその国のIPからは全く繋がりません)
この対応でアタック自体はかなり減らすことが出来ました。
※詳しくはblog内に書いてます。

それでも稀にアタックはあるかもしれません。
より安全にするためにSSHに接続出来るIPを規制します。
(会社などで固定IPがある場合で無いと有効には出来ませんが)

編集するファイルは以下となります。
/etc/hosts.allow

当然ながらローカルの接続は許可となります。
sshd : 192.168. : ALLOW

複数のIPを登録する場合は、スペースで区切って登録します。
(最後の: ALLOWは無くても構いません)
sshd : 192.168.  xxx.xxx.xxx.xxx: ALLOW

それ以外は拒否しなければならないので
/etc/hosts.denyにsshd: ALLと書き加える必要があります。

個人的には面倒臭がりなので
/etc/hosts.allowに拒否の行まで書き加えます(笑)
sshd: ALL : deny

許可・非許可のルールはファイル内では上から一致するまで
ファイルの優先順位は/etc/hosts.allowから/etc/hosts.denyへと解釈されます。
どちらにも一致しなかった場合は許可となりますので/etc/hosts.denyの最後に
次の一行を追加しておくことをお勧めします。
ALL : ALL : deny

またsshdにアクセスがあった場合にメールを送ることも可能です。
※メールを送信出来る環境の場合です。
下にサンプルを書いておきます。

# for sshd local access
sshd : 192.168. : ALLOW
# for sshd etc access with mail
sshd : xxx.xxx.xxx.xxx : spawn ( /usr/bin/mail -s “sshd connected from %h” yourname@yourmail.com) &

上の行が192.168から始まるアドレスを許可(メールは送られません)
下の行がxxx.xxx.xxx.xxxからアクセスがあった場合に許可しますが、同時にメールを送信します。
※ポートへの接続自体の許可であって、SSHの認証は当然必要です。
“sshd connected from %h”の部分がメールの件名として送られてきます。
%hは接続してきたホスト名(又はIP)に置き換えられて送信されます。
yourname@yourmail.comは送信先のメールアドレスとなります。
※標準の25番ポートを開けて使うのは、かなりの確率でアタックを受けるのでお勧めしません。

コメントを残す

メールアドレスが公開されることはありません。