公開日: 2012年8月10日 12:21:48
最終更新: 2012年9月22日 13:31:36

OpenSSHのバナーを隠す

OpenSSH ソースインストール

えーと。
telnet でポートを指定して接続すると、そのポートで稼働中のサーバがバージョン 情報などの「バナー」を返してきます。

セキュリティ対策でもなく、chroot でもなく。ただただセキュリティ部から「OpenSSH のバージョンが最新ではない」などといちゃもん付けられるのが嫌で、OpenSSH をソースからコンパイルしなおし、バナーを隠すことにしました。

OpenSSH のソースインストール

まず OpenBSD のミラーサイトから OpenSSH のソースをダウンロードして適当なところへ解凍します。 (ここでは /usr/src に解凍しています。)

バナーの変更

OpenSSH のバナー表示を変更するため、/usr/src/openssh-6.0p1/version.h ファイルを書き換えます。
バージョンがわからなくならないように、 SSH_RELEASE にバージョンを記述しておきます。

/* $OpenBSD: version.h,v 1.64 2012/02/09 20:00:18 markus Exp $ */

#define SSH_VERSION     "unknown"

#define SSH_PORTABLE    "unknown"
#define SSH_RELEASE     "OpenSSH_6.0p1"

openssh のコンパイル

configure のオプションに TCP Wrapper 及び PAM の有効化を指定します。インストールするディレクトリは「–prefix」で指定できます。


※ zlib、openssl、pam ライブラリがインストールされている必要があります。
configure でエラーが出る場合は yum でインストールします。

インストール後の設定

シンボリックリンクの作成

インストールが完了したら、実行ファイルへのシンボリックリンクを /usr/bin/ に作成します。

起動スクリプトの設定

起動スクリプトのサンプルを /etc/rc.d/init.d/ へコピーします。 サンプルはソースディレクトリの contrib/redhat/sshd.init です。

以下のコマンドで起動スクリプト内のコマンドパスを、ソースインストール版のものに修正します。

PAM 認証用ファイルの設定

こちらはサンプルファイルは使わず、デフォルトのままとしました。

PAM 認証の有効化

/usr/local/openssh/etc/sshd_config を編集し、PAM 認証を有効化します。

# UsePAM no
↓
UsePAM yes

OpenSSH の起動

OpenSSH を起動スクリプトで起動します。

問題なく起動したら、chkconfig コマンドで OS 起動時に OpenSSH サーバを起動するよう設定します。