Hatena::ブログ(Diary)

kazuhoのメモ置き場

2008-05-02

Dynamic DNS を使って SSH アクセスを制限する方法

いつでもどこからでもサーバログインしたくなるときってありますよね。かといって、サーバの sshd への接続を全世界から可能にしておくというのは、たとえパスワード認証を無効化していても避けたいところ。

今までは自宅が事実上固定アドレスだったので、クライアントIP アドレスによるフィルタリングで問題なかったんだけど、引越後IP アドレスがコロコロ変わるようになるので、そのままだと対応できない。なのでちょっと頭をひねってみた。こんな感じ。

具体的には、以下のような感じで設定した。

% crontab -l
*/3 * * * * /usr/bin/host ???.dyndns.org | awk '/has address/ {print $4}' > /etc/hosts.allow.d/???.dyndns.org
% cat /etc/hosts.allow
sshd : /etc/hosts.allow.d/???.dyndns.org

これで、「???.dyndns.org」(??? は任意のホスト名) に設定された IP アドレスからだけ接続を受け付けるようになる。IP アドレスが変わると、1〜2分程度のタイムラグは発生するけど、気にしない。普段 EMOBILE つなぎっぱだし。

ただ、FONEMOBILE みたいな NAT 経由でネットにつないでると、同じ NAT 下の人も sshd の認証まではたどり着けるようになる、というのは覚えておいたほうがいいかも。あくまでも、sshd のセキュリティホールとか負荷対策とか、そういう感じ。

PS. 設定ミス等からの復帰手順は各自で考えてくださいねw

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証