Ubuntuサーバーのポート23の設定を見つけようとしています。前任者はやや厳しい方法で設定し、機能を新しいシステムに移行する必要があります。おおまかにどのように動作するかを知っていますが、詳細はわからないので、今知っておくべきことです。おおよその機能は次のとおりです。
- ユーザーはポート23を介して通常のLinuxユーザーとしてサーバーにログインします(常に同じユーザー)。詳しくは下記から
- ログインすると、いくつかの情報を入力するように求められます。
- メッセージに従って情報を入力してログアウトします。
デフォルトのシェルはbashです(個人情報を保護するためにユーザー名と番号が変更されました)。
# grep theuser /etc/passwd
theuser:x:1111:1111::/home/theuser:/bin/bash
.bash_profile
スクリプトがログイン時にユーザーをプロンプトにリダイレクトするのを見ることができます。
$ cat /home/theuser/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/scripts
export PATH
unset USERNAME
/home/theuser/scripts/prompts
exit
したがって、それについて不思議なことはありません。しかし、私の質問は、ポート23が通常のLinuxユーザーのログインプロンプトにどのように正確に関連付けられているのですか?次のようにログインできるので、これが本当だと確信しています。
$ telnet localhost 23
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
machinename login: theuser
Password:
Last login: Fri Mar 24 14:25:48 CST 2017 from localhost on pts/5
prompt 1:
ポート23で実行されているプロセスを確認すると、次の結果が表示されます。
$ netstat -tulpn | grep 23
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN 2222/inetd
したがって、接続はによって処理されますinetd
。しかし、inetd
私が何をしているのかわからないので、それは私には役立ちません。表示すると、/etc/inetd.conf
次の行が表示されます。
telnet stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.telnetd
しかし、それはあまり役に立ちません。私はtelnet
それがこのコンピュータで実行されていることをすでに知っています。telnet
ユーザーをログインプロンプトにリダイレクトするように設定する方法を知っておく必要があります。
答え1
TELNET サーバーに TCP ポート 23 をリッスンさせることは「トリッキー」ではありません。これはノーマル(今世紀にTELNETを使用することの異常を考慮しない限り)。それはよく知られているポート番号TELNETサービスに使用されます。
in.telnetd
ユーザーをログインプロンプトに「リダイレクトする」ように「設定」されていません。接続クライアントにログイン画面を表示する何ができるか。マニュアルページ(qv)は非常に明確です。
Telnetdは疑似端末装置をクライアントに割り当て、次に[…] ] 疑似端末を stdin、stdout、stderr に依存させるログインプロセスを生成する方法で動作します。 Telnetd は擬似端末のマスター側を操作し、Telnet プロトコルを実装し、リモートクライアントとログインプロセス間で文字を渡します。
これログインプロセスプログラムが実行login
中で、ログインプロンプトが表示されます。