2009年4月12日日曜日

FreeBSD sshdのポートを複数あけるには

FreeBSD7.*
FreeBSD6.* たぶん
----------------------------------
sshは通常ポート番号が22で1ポートのみ接続できます。
しかし、自宅サーバーが2台あり、外のインターネットから自宅サーバーにアクセスするのにポート番号が同じでは、ルーターに設定できません。

またポート22番をあけたとたんに不正アクセスの嵐がサーバーに負担をかけます。
/var/log/auth.log
を見るとあちらこちらからログイン名を変えて手当たり次第にアタックをかけてきています。
ポート番号をずらすことでそういう不正アクセスがかなり軽減できます。

任意のポートへのポートマッピングで対応できそうですが、やってみるとできません。
たとえば、

WAN:1022→192.168.0.10:22
WAN:2022→192.168.0.20:22

のような設定です。
セキュリティー上、sshdは実際に接続されたポート番号と接続しようとしていたポート番号とが異なると遮断するようです。
つまり、ルーターで外向きに開けるポート番号22だけだと、サーバー1台しか接続できないのです。

そこで、自宅内で接続するようなときは、port 22で接続し、外から接続するときは、

WAN:1022→192.168.0.10:1022
WAN:2022→192.168.0.20:2022

のように接続します。

ということでsshdの設定を行います。

sshd_configを編集します。
同じような名前でssh_config(dが無い)がありますが、こちらはsshクライアント側の設定に使用するものなので間違えないようにします。

192.168.0.10:1022にする場合
[/etc/ssh/sshd_config]


#Port 22
Port 22
Port 1022


次に
sshdをリブートします。

#/etc/rc.d/sshd restart

これで両方のポートからログインできるはずです。

ちなみにポート毎にsshdプロセスが起動するので、どちらかがコケても接続できよりフェールセーフな構成にできます。

TeraTerm等で接続するときは、デフォルトのポート番号が22になっているところを、あけたポート番号、上記の例では1022等にして接続します。

■おまけのメリット
グローバルIPアドレスを取得しポート22を空けたとたん、中国やらアメリカやらロシアやら世界中から不正アクセスを受けます。1秒ごとに1アクセスぐらいでしょうか。
ところが、ポート番号を変えただけで全く不正アクセスを受けなくなりました。

見つけたIPのポート全てのポートスキャンはしないようです。

セキュリティーを気にしてSSHのポート番号を変更しているサーバーは、そのセキュリティーホールを探すのよりも、他のセキュリティーの甘いサーバーを探したほうが楽だということでしょうか。

SSHのポート番号変更はとてもオススメです。



.

0 件のコメント: