Telnetを使用してセキュアSSHログインを作成する方法

Telnetを使用してセキュアSSHログインを作成する方法

MUDを作成しようとしているが、欠点の1つは、安全ではない「telnet」を使用することです。 「匿名」ユーザーが特定のアカウントにアクセスできる機能を維持したいと思います。そのアカウントができる唯一のことは、ローカルポートにリモートでログインすることだけです。

つまり、私が望むのは誰にでも実行できると言えることです。

ssh [email protected]私の泥に安全に「接続」されています。

「匿名」アカウントは、「telnet localhost:34843」または同様のコマンドを実行します。理想的には、匿名アカウントには他のアクセス権はありません。ポート転送なし、ファイルなし(Telnetの実行に必要なファイルを除く)など...

それが重要な場合は、クラウドホスティングサービスでいくつかのバージョンのUbuntuを使用します。

答え1

特定のアカウントが1つのコマンドのみを実行できるようにOpenSSHを設定できます(クライアントから送信されたコマンドは無視されます)。で/etc/ssh/sshd_config次の行を追加します。

Match User anonymous
  ForceCommand /usr/bin/telnet localhost 34843
  PasswordAuthentication yes
  PermitEmptyPasswords yes
  AllowAgentForwarding no
  AllowTcpForwarding no
  PermitTTY yes
  PermitTunnel no
  X11Forwarding no

ホームディレクトリはルートが所有するように設定する必要があり、ルートとその中にあるファイルanonymousのみを変更できます。~anonymous/.ssh

少なくとも1つのことは、シェルエスケープを無効にすることです。少なくとも一部のTelnet実装では、ユーザーはCtrl+を押してシェルにエスケープできます] !。 Linuxネットキットの実装では、telnet -e ''コマンドモードが無効になり、Telnetがシェルにアクセスできなくなると思います。環境をSHELL次に設定することも/bin/false便利な予防策です。

答え2

これらのソリューションを使用してTelnetセキュリティを強化する

A) SSH トンネリング、言葉にならないことですが(Ssh を使用できるのになぜトンネルを使用するのですか?) 動作します。

ssh -L 23:localhost:23 -N -f your host

もちろん、ファイアウォールを使用してポート23を閉じ、22またはSSHプライベートポートを開いたままにして、直接Telnetアクセスを禁止します。

B)使用しているサーバーでTLSまたはSSL(私はTLSを好む)トンネルを使用するのは簡単です。

; Sample stunnel configuration file for Unix by Michal Trojnara 2002-2012
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options
; **************************************************************************
; * Global options                                                         *
; **************************************************************************
; A copy of some devices and system files is needed within the chroot jail
; Chroot conflicts with configuration file reload and many other features
chroot = /var/lib/stunnel/
; Chroot jail can be escaped if setuid option is not used
setuid = nobody
setgid = nogroup
; PID is created inside the chroot jail
pid = /stunnel.pid
; Debugging stuff (may useful for troubleshooting)
;debug = 7
;output = stunnel.log
; **************************************************************************
; * Service defaults may also be specified in individual service sections  *
; **************************************************************************
; Certificate/key is needed in server mode and optional in client mode
cert = //etc/ssl/certs/yourserver.crt
key = //etc/ssl/private/yourserver.key
; Authentication stuff needs to be configured to prevent MITM attacks
; It is not enabled by default!
verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /
; It's often easier to use CAfile
CAfile = /yourserver.ca
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively CRLfile can be used
;CRLfile = /usr/etc/stunnel/crls.pem
; Disable support for insecure SSLv2 protocol
options = NO_SSLv2
; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS
; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE
; **************************************************************************
; * Service definitions (remove all services for inetd mode)               *
; **************************************************************************
; Example SSL server mode services
[telnet]
accept  = 0.0.0.0:5939
connect = 23

クライアントから

; Sample stunnel configuration file for Unix by Michal Trojnara 2002-2012
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options
client=yes

; **************************************************************************
; * Global options                                                         *
; **************************************************************************

; A copy of some devices and system files is needed within the chroot jail
; Chroot conflicts with configuration file reload and many other features
;chroot = /var/lib/stunnel/
; Chroot jail can be escaped if setuid option is not used
;setuid = nobody
;setgid = nogroup

; PID is created inside the chroot jail
;pid = /stunnel.pid

; Debugging stuff (may useful for troubleshooting)
;debug = 7
;output = stunnel.log

; **************************************************************************
; * Service defaults may also be specified in individual service sections  *
; **************************************************************************

; Certificate/key is needed in server mode and optional in client mode
cert = /yourclient.crt
key  = /yourclient.key

; Authentication stuff needs to be configured to prevent MITM attacks
; It is not enabled by default!
;verify = 2
; Don't forget to c_rehash CApath
; CApath is located inside chroot jail
;CApath = /certs
; It's often easier to use CAfile
CAfile = /yourca.crt
; Don't forget to c_rehash CRLpath
; CRLpath is located inside chroot jail
;CRLpath = /crls
; Alternatively CRLfile can be used
;CRLfile = /usr/etc/stunnel/crls.pem

; Disable support for insecure SSLv2 protocol
options = NO_SSLv2
; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE

; **************************************************************************
; * Service definitions (remove all services for inetd mode)               *
; **************************************************************************

; Example SSL server mode services

[telnet]
accept=localhost:23
connect=yourstunnelserver:5939

もちろん、これらのファイルを例として使用し、リモートサーバーにアクセスする構成に応じて変更します。

telnet localhost 23 

セキュアTLSトンネルの使用

3番目の方法はTelnetとKeberosを使用することですが、パスワードを要求せずにSSOを許可するので良いですが、パスワードが弱く、100%安全ではありません。

inetd.confで編集、追加、変更

telnet  stream  tcp     nowait  root    /usr/kerberos/sbin/telnetd 

クライアント側で実行

telnet -x server

パスワードを要求せずに接続が成功した場合、パスワードの入力を求めるメッセージやエラーメッセージが表示されると、Telnetは消去されます。

関連情報