Top/Linux/OpenSSH

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

関連

参考

Amazon

差分 一覧