- - PR -
OpenSSHでディレクトリ移動の制限
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-10-29 12:39
最近RedHatを使い始めました。
何分初心者なので、ご指導の程宜しくお願い致します。 OpenSSHのを利用したWinSCPを導入し、FTPの様にホームディレクトリ以外へのアクセス を制限したいのですが、設定方法がわかりません。 ログインするユーザーのbashを変更し、発行できる命令を制限することはできたのですが、 肝心のCDコマンドが制限出来ない為、自由に移動できる状態です。 パーミッションで制限できるのかな?と思い挑戦して見たのですが、移動して欲しくない 共通ディレクトリなどに移動できてしまい、思うように制限できませんでした。 通常にSSHを利用した場合も移動を制限したいのですが、そんな事は可能なのでしょうか? 以下、試行した環境です。 ・Linux 2.2.16 (i586) ・GNU bash, version 1.14.7(1) ・OpenSSH_3.7.1p2, SSH protocols 1.5/2.0, ・OpenSSL 0.9.6c |
|
投稿日時: 2003-10-29 23:43
こういうのでしょうか。
http://chrootssh.sourceforge.net/ |
|
投稿日時: 2003-10-30 12:40
ありがとうございます。大変参考になりました。
早速試してみたのですが、問題が発生しました。 /home/chroot/./home/hoge ... ホームディレクトリ 上記の様に設定したのですが、ログイン直後に切断されてしまいます。 > ... 承認 > debug1: channel 0: new [client-session] > debug1: Entering interactive session. > debug1: channel 0: free: client-session, nchannels 1 > Connection to 192.168.10.51 closed by remote host. > Connection to 192.168.10.51 closed. > ... 切断 WinSCPの方でも調べたのですが、bashが発見されないとエラーが出ていました。 > ! /bin/bash: No such file or directory > . All channels closed. Disconnecting 仕方が無いので、アクセス可能な位置へ再配置をしてみましたが、結果は同じでした。 /home/chroot/./bin, usr, etc, run, var, ... 必要なファイル一式 ホームディレクトリを変更しただけなので、もしかしたら設定に不備があるのかもしれません。 # 英語は苦手なので(T.T; ヒンズー語じゃないだけマシかな... # --追加-- root権限でのchrootは確認しましたが、ログインユーザーでは移動できませんでした。 ># /usr/sbin/chroot /home/chroot > /usr/sbin/chroot: > cannot change root directory to /home/chroot: Operation not permitted これが原因かなとも思うのですが、chrootはroot権限でしか使用できないのでしょうか? [ メッセージ編集済み 編集者: m.k.s. 編集日時 2003-10-30 18:49 ] |
|
投稿日時: 2003-11-01 18:05
すみません、自分で使ったことはないので具体的な設定方法については
答えられないのですが... chroot と ssh をキーワードにして検索エンジンを利用すると、 日本語のページがいくつか見つかりますので、それを参考にされては いかがでしょうか。 |
|
投稿日時: 2003-11-02 21:12
ありがとうございます。
関連するキーワードでの検索はかけて、情報は集めているのですが 成功はしていません。やはりBSD系のサイトが多く引っかかる所を みると、Linux系では一筋縄では動かないのでしょうか。 引き続き情報を集めて見ます。 |
|
投稿日時: 2003-11-05 13:45
はじめまして。
実際に自宅のサーバで運用中のものです。 アクセス制限をかけたいユーザは以下のように設定すると良いようです。 (rootでの作業例) # mkdir /home/user1 # useradd user1 -d /home/user1/./ # passwd user1 # chown user1:user1 /home/user1 # chmod 700 /home/user1 useradd で、./を末尾に追加するとアクセス制限対象となります。 既に登録しているユーザの場合は、設定ファイルのホームのパスに./を追加してあげれば良いみたいです。 この設定を行った後は、ホームがルートディレクトリに相当しますので、 bash等の実行に必要なファイルをホーム以下にコピーしてあげる必要があります。 |
|
投稿日時: 2003-11-05 15:30
はじめまして。ありがとうございます。
こちらの環境では、残念ながら接続できませんでした。 下にデバッグログを表記していますが、サーバー側で アカウントが見つからないような事を言われてしまいます? > login_get_lastlog: Cannot find account for uid 115 けんたおるさんは、どのバージョンの組み合わせを使用されているのでしょうか? もし宜しければ教えて頂けないでしょうか。お願いします。 #-- Server Debug -- ...承認省略... debug1: session_new: init debug1: session_new: session 0 debug1: session_open: channel 0 debug1: session_open: session 0: link with channel 0 debug1: server_input_channel_open: confirm session debug1: server_input_channel_req: channel 0 request pty-req reply 0 debug1: session_by_channel: session 0 channel 0 debug1: session_input_channel_req: session 0 req pty-req login_get_lastlog: Cannot find account for uid 115 debug1: Calling cleanup 0x8063abc(0x0) debug1: channel 0: free: server-session, nchannels 1 debug1: Calling cleanup 0x806b48c(0x0) ##------- #-- Client Debug -- ...承認省略... debug1: channel 0: new [client-session] debug1: Entering interactive session. debug1: channel 0: free: client-session, nchannels 1 Connection to 192.168.1.250 closed by remote host. Connection to 192.168.1.250 closed. debug1: Transferred: stdin 0, stdout 0, stderr 89 bytes in 0.0 seconds debug1: Bytes per second: stdin 0.0, stdout 0.0, stderr 6846.1 debug1: Exit status -1 ##------- |
|
投稿日時: 2003-11-07 10:12
仄聞ですが,WinSCP は SFTP とはまたちょっと違う発想の代物だと聞いたことがあります.
結果的にクライアント側からは違わないが,その違いを知ってないとサーバ側で ChrootedSSH 環境を作る時に思いっきりはまるとか? ※ごめんなさい,詳しくは憶えていませんので... ちなみに scponly という shell があります. http://www.sublimation.org/scponly/ FreeBSD PRESS No.13 で見かけて興味を持ち,導入してみました. 一応手元の Linux ではちゃんと動いてくれています.この scponly を chroot-enable で compile して,setup-chroot.sh という付属 script で任意の directory に chroot tree を作ると,WinSCP や rsync でご希望の環境になるんじゃないかと... ご一考ください. |