OpenSSH
PGP署名をチェック
インストール
tar zxvf openssh-3.8.1p1.tar.gz cd openssh-3.8.1p1 ./configure --prefix=/usr --libexecdir=/usr/libexec/openssh make make install
設定
- 接続はSSH2プロトコルのみ
- ログイン猶予時間は10秒
- rootのログインを禁止
- ログイン試行可能回数は1
- 許可するユーザーはfoo, bar
- 拒否するユーザーはroot, admin, user, test, guest, nobody
- 未認証段階の接続が1を超えると2/3の確立で接続を拒否し、3になるまで確立は増加、3になった時点で以降の接続要求は拒否する。
vi /etc/ssh/sshd_config
Protocol 2 LoginGraceTime 10 PermitRootLogin no PermitEmptyPasswords no MaxAuthTries 1 AllowUsers foo bar DenyUsers root admin user test guest nobody MaxStartups 1:66:3
バージョンを隠蔽
バナー情報を減らす。ちなみに以下では百害あって一利なしと言われている
パッチ
version.h
--- version.h.orig 2004-08-17 21:47:41.000000000 +0900 +++ version.h 2004-12-18 09:57:39.000000000 +0900 @@ -1,3 +1,4 @@ /* $OpenBSD: version.h,v 1.42 2004/08/16 08:17:01 markus Exp $ */ #define SSH_VERSION "OpenSSH_3.9p1" +#define FAKE_VERSION "USO_800"
sshd.c
--- sshd.c.orig 2004-08-12 22:08:15.000000000 +0900 +++ sshd.c 2004-12-18 09:57:50.000000000 +0900 @@ -382,7 +382,7 @@ major = PROTOCOL_MAJOR_1; minor = PROTOCOL_MINOR_1; } - snprintf(buf, sizeof buf, "SSH-%d.%d-%.100s\n", major, minor, SSH_VERSION); + snprintf(buf, sizeof buf, "SSH-%d.%d-%.100s\n", major, minor, FAKE_VERSION); server_version_string = xstrdup(buf); /* Send our protocol version identification. */
テスト
telnet 192.168.0.2 22
レスポンス
Trying 192.168.0.2... Connected to 192.168.0.2. Escape character is '^]'. SSH-2.0-USO_800
OpenSSHのssh, PuTTY, WinSCP では問題なく接続できた。
X11フォワーディング
リモートホストexample.localからローカルホストへXを転送
ssh -X example.local
バージョン
/usr/bin/ssh -V
ポート
TCP/UDP 22