質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Red Hat Enterprise

Red Hat Enterpriseは、レッドハット社により開発・サポートが行われている業務向けLinuxディストリビューションです。オープンソースで無償で利用することができ、バイナリ版の入手・サポートは有償です。商用ディストリビューションとして人気が高く、代表的なLinuxの選択肢の一つです。

Q&A

解決済

3回答

2581閲覧

Chroot 動作について

Hon11

総合スコア7

Red Hat Enterprise

Red Hat Enterpriseは、レッドハット社により開発・サポートが行われている業務向けLinuxディストリビューションです。オープンソースで無償で利用することができ、バイナリ版の入手・サポートは有償です。商用ディストリビューションとして人気が高く、代表的なLinuxの選択肢の一つです。

0グッド

0クリップ

投稿2016/03/31 04:54

編集2016/04/01 01:43

以下環境でChroot設定を実施いたしましたが、Login時の動作が想定と違い困っております。

環境:
RHEL5.4
Openssh 5.6p1

sshd_configへSubsystem sftp internal-sftpを設定後、Match UserでChrootDirectoryを設定し、クライアントからSftpで接続するとタイムアウトしてしまいます。

messagesなどにはエラーはなく、Match Userに該当しないUserでSftp接続すると正常につながります。
debug logを出力してlogを比較したのですが、違いがない状態でした。
Chroot先Directoryのパーミッションはrootが所有者で755としております。検証の為ディレクトリ設定を765などにすると、logにパーミッションエラーが記録されました。

サーバー上でlocalhost宛sftp接続すると、loginできるのですが、ディレクトリ情報を取得しようとlsコマンドを発行するとプロンプトが応答なくなる状況です。

ご意見、アドバイス頂けると大変助かります。

追記-----------------
Openssh5.6p1 は以下サイトを参考にrpmパッケージを作成しInstallいたしました。
参考先Blog

sshd_conf は以下通りです。

sshd_conf

1Protocol 2 2PermitRootLogin yes 3PasswordAuthentication yes 4ChallengeResponseAuthentication no 5UsePAM yes 6 7X11Forwarding no 8Subsystem sftp internal-sftp 9 10Match User 対象User名 11 ChrootDirectory /home/%u 12 X11Forwarding no 13 AllowTcpForwarding no 14 AllowAgentForwarding no 15 ForceCommand internal-sftp 16

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2016/03/31 09:29

RHEL 5 に含まれる openssh のバージョンは 4.3p2 ですが、5.6p1 はどのようにインストールしましたか? また、sshd_config の設定内容を教えてくださいませんでしょうか。
Hon11

2016/04/01 02:45

追記として記載させていただきました。
guest

回答3

0

ベストアンサー

追加の情報、ありがとうございます。

手元の環境で手順どおりに設定しましたが、問題ないです。
internal-sftp なので、特にライブラリやデバイスファイルを用意する必要はないはず。

デバッグログですが、RHEL 5 の標準の syslog.conf だと、AUTH ではなく AUTHPRIV にしないと /var/log/secure に出力されません。

SyslogFacility AUTHPRIV LogLevel DEBUG3

正常な検証環境のログと比較すると何かわかるかもしれません。

投稿2016/04/01 02:57

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hon11

2016/04/01 05:16 編集

アドバイスありがとうございます。 Syslog設定を実施してログ比較したところ、Chrootディレクトリの割り当てまでは一切の違いはなかったのですが、失敗する方のLogにChrootディレクトリ割り当てに続いて以下のlogが出ておりました。 出ているlogを頼りに調査したいと思います。 Apr 1 13:35:36 cld01s sshd[16401]: debug3: monitor_read: checking request 58 Apr 1 13:35:36 cld01s sshd[16401]: debug3: mm_answer_term: tearing down sessions Apr 1 13:35:36 cld01s sshd[16401]: debug1: PAM: cleanup Apr 1 13:35:36 cld01s sshd[16401]: debug1: PAM: closing session Apr 1 13:35:36 cld01s sshd[16401]: Deprecated pam_stack module called from service "sshd" Apr 1 13:35:36 cld01s sshd[16401]: pam_unix(sshd:session): session closed for user ユーザー名 Apr 1 13:35:36 cld01s sshd[16401]: debug1: PAM: deleting credentials Apr 1 13:35:36 cld01s sshd[16401]: Deprecated pam_stack module called from service "sshd"
TaichiYanagiya

2016/04/01 07:01

「debug3: mm_answer_term: tearing down sessions」が原因なのか結果なのかわかりませんが、このキーワードが怪しいですね。 再現できないので、確度の低い推測になってしまいますが、 ・rssh や pam_chroot などと併用して二重に chroot になっている。 ・ユーザーの .ssh/authorized_keys で「command=」を使用している(ForceCommand を上書きできるのかわかりませんが)。 ・SELinux? (/var/log/audit/audit.log にエラーがあれば) あとは、「strace -f -o (ログファイル) -p (sshdのPID)」などでトレースするしかないかも。
Hon11

2016/04/04 08:47

アドレスありがとうございます。 暫く検証環境を触れない為検証は少し遅れますが、確認してみます。 SElinuxはdisableを確認しております。
Hon11

2016/04/21 06:54

検証まで時間が空いてしまいそうなので、一度質問を閉めさせていただきます。 アドバイスありがとうございました。
guest

0

投稿2016/03/31 22:47

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hon11

2016/04/01 01:15

アドバイスありがとうございます。 Chroot後のディレクトリ配下にコマンドの配置は行っていなかったので、試してみたいと思います。 検証環境で同じConfigと同じ構成で、Chroot後のディレクトリは空の状態でSftpのLoginが完了し、ディレクトリ構造が取れていたので不要と考えておりました。
guest

0

>messagesなどにはエラーはなく

/var/log/secure にエラーログが記録されていませんか?
エラーログにエラー内容が記録されているのでそれを見れば解決の糸口になると思います

投稿2016/03/31 08:13

HiroshiWatanabe

総合スコア2160

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hon11

2016/03/31 08:42

アドバイスありがとうございます。 Secure配下にもエラーはなく、 su:pam_unix(su-l:session): session opened for user root by 接続を試したUser (uid)といった形に、Sftpは出来ているように感じられるのですが、Loginできたのちにコマンドを発行するとTimeOutするまで応答がない状況となります。
HiroshiWatanabe

2016/03/31 08:56

ChrootDirectory で指定したパスですが ・そこに到達するすべてのディレクトリはrootの所有 ・他のいかなるユーザやグループも書き込めない ようになっているか再確認してください。 で、もしかしてその場所に必要なファイルが用意されていないのではないでしょうか? そこで指定した場所がその接続ユーザにとってのルート(/)になるので、本来ルートにあるべき色々なファイルがなければなりません。 /bin/sh とか? /dev とか?最低限必要な物達をそこに用意されていますか? 多分それらのファイルがなくて接続したあとにログイン処理を続行できないというかシェル(コマンドプロンプトの画面)を提供できないみたいな状況なのではないでしょうか。
Hon11

2016/04/01 01:14

アドバイスありがとうございます。 ChrootDirectoryで指定したディレクトリは、/home/対象User名 を指定しております。 アドバイス頂いたディレクトリの経路もすべてRoot所有、r-xとなっている事を確認いたしました。 Chroot後のディレクトリ配下に各ライブラリ配置は行っていなかったので、試してみたいと思います。 検証環境で同じConfigと同じ構成で、Chroot後のディレクトリは空の状態でSftpのLoginが完了し、ディレクトリ構造が取れていたので不要と考えておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問