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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

1回答

5263閲覧

vsftpsを使用した上位ディレクトリへのアクセス制限について

Anon_

総合スコア334

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

3クリップ

投稿2018/11/30 00:16

編集2018/12/12 02:33

下記の通り作業を進めましたが、対象のユーザーでFTPログインすると、上位ディレクトリにアクセスできてしまいます。
他のサイトをみても大体下記のサイトのようにかかれておりますが、決定的な原因を見つけることができません。

当方の環境はCentOS7です。

https://ex1.m-yabe.com/archives/2650

何か上記サイトで足りない設定などにお気づきの方はご回答いただけると助かります。

何卒よろしくおねがいいたします。

【追記】
環境
CentOS 7.3.1611
vsftpd 3.0.2

▼/etc/vsftpd/vsftpd.conf

# 匿名拒否 #anonymous_enable=YES anonymous_enabl=NO # 上層のディレクトリへのアクセスを禁止(chroot) chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list # 特定のユーザーのみ接続可能 userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/ftpuser_list # ルートディレクトリを変更 user_config_dir=/etc/vsftpd/vsftpd_user_conf allow_writeable_chroot=YES

.

▼/etc/vsftpd/ftpuser_list

test

.
▼/etc/vsftpd/vsftpd_user_conf/test

local_root=/var/www/html/test.com/test

【補足】
chroot_listは設置してますが内容は空です。

設定後下記で起動しましたが、testユーザーでFTP接続した際、/var/www/html/test.com/testより上位の階層にアクセスできてしまいます。

【CentOS 7.x】

# systemctl start vsftpd # systemctl enable vsftpd.service

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

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

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

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

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

coco_bauer

2018/11/30 00:26

「対象のユーザー」とは、どんなユーザなのですか?? 質問の文章から設定ファイルの内容を推定することができませんから、具体的な設定ファイルの内容を質問に追加してください。
Anon_

2018/12/11 01:28

ここにすべてを記載すると非常に長くなりますのでリンクを貼っております。私が行った内容はリンク先の通りで対象のユーザーとはリンク先のサイトで言うftpuser01 ftpuser02のことです。
showkit

2018/12/11 03:25

vsftpd で chroot するような設定について書いてあるサイトは他にもたくさん、あります。読み比べされましたでしょうか? 可能性としては、質問者さんの設定ファイルにどこか記載ミスがある疑いがあります。すべてを記載する必要はありません。おそらく coco_bauer さんもすべて記載するようにはおっしゃっていないと思います。デフォルトの /etc/vsftpd/vsftpd.conf で変更した部分と、chroot されないユーザの /etc/vsftpd/ftpuser_list への記載内容等を 掲載しないと どなたも答えようがないかと思われます。
Anon_

2018/12/12 01:49

当然他のサイトとの見比べた上で試行を行っておりますが、正解が分からない状態で見比べても意味をなさないと思いましたので、一番わかりやすく説明されているサイトにおいて、他のみなさんのご意見を伺った次第です。サイトをご確認いただいた上でサイトの設定方法で問題がなさそうであれば私の設定がおかしいという事になりますので、その際に必要なファイルの記載を提示させていただければと思いました。 CHERRYさんが検証してくださったので恐らくサイトの方は問題ないようなのでもう一度確認したうえでvsftpd.conf等の記載内容を掲載させていただきたいと思います。
guest

回答1

0

回答がついてないようなので、試してみました。

ローカルテスト環境の CentOS 7.1 + vsFTPd 2.2.2 です。(インストール済みの既存環境の分を利用)

質問に記載されている サイトの設定内容で設定して、ftp を試してみたところ、下記のような結果になりました。

相違点;例では、ftpuser1 でしたが、testuser1 で試しています。

$ ftp localhost Trying 127.0.0.1... Connected to localhost (127.0.0.1). 220 (vsFTPd 2.2.2) Name (localhost:testuser1): testuser1 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/" ftp> cd ../ 250 Directory successfully changed. ftp> pwd 257 "/" ftp> cd / 250 Directory successfully changed. ftp> pwd 257 "/" ftp> ls 227 Entering Passive Mode (127,0,0,1,50,35). 150 Here comes the directory listing. 226 Directory send OK.

ということで、問題なくディレクトリは、制限されていると思います。

できないということであれば、何か設定を間違えていると思いますので、設定ファイルを見直してください。

どうしても分からなければ、vsftpd のバージョンと実際の設定ファイル(ドメイン、ユーザー名等は置き換えたもの)を質問に追記してください。

投稿2018/12/11 04:03

編集2018/12/11 04:08
CHERRY

総合スコア25171

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

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

CHERRY

2018/12/11 04:13

上位ディレクトリが見えるのとは関係ないと思いますが、ドキュメントを見てみると ver.2.3.5 から `allow_writeable_chroot` の設定が増えていますね。
Anon_

2018/12/12 01:42

ご検証いただき誠にありがとうございます。 ということは自身の設定の何かが間違っているという事ですね。。 何度も見直してはいるのですが再度設定を見直してみたいと思います。
CHERRY

2018/12/12 01:55

こちらも 新規環境を用意するのが手間だったので、既存環境で試しただけですので、バージョン等で差異がある可能性もあります。 お使いの環境の正確なバージョンを記載していただいた方が良いと思います。
Anon_

2018/12/12 02:34

環境情報および設定内容をすべて記載いたしました。 ドメイン、ユーザー名等は書き換えております。 何か分かることがございましたらご教示いただけますと助かります。 何卒よろしくお願いいたします。
CHERRY

2018/12/12 02:42 編集

再起動時に ` anonymous_enabl=NO ` の行でエラーが、出ていませんか? ` anonymous_enable=NO ` が正しいです。 = のまえに e が抜けています。 あ、参考サイトも typo していますね。 設定ファイルにあった項目名をそのまま使って、 YES を NO に書き換えたので、気がつかなかった...
Anon_

2018/12/12 02:51

たしかにtypoしてましたが、エラーはでておりませんでした。 修正後も状況は変わりません。。 気になるのがvsftpdの起動コマンドを入力してもすぐに次のコマンドが入力できるようになるのですが、通常は画面上に何かコマンドが走るのでしょうか。
CHERRY

2018/12/12 03:02 編集

設定ファイルが間違っていると... エラーがでるはずなんですが... 試しに vsftpd.conf の ` anonymous_enable=NO ` を ` anonymous_enabl=NO ` にして、vsftpd を起動すると ``` # systemctl start vsftpd.service Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details. ``` このようにエラーが出ます。エラーで指示されている "systemctl status vsftpd.service" を実行してみると ``` # systemctl status vsftpd.service ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 水 2018-12-12 11:58:32 JST; 8s ago Process: 1165 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2) Main PID: 32331 (code=killed, signal=TERM) 12月 12 11:58:32 host.example.jp systemd[1]: Starting Vsftpd ftp daemon... 12月 12 11:58:32 host.example.jp vsftpd[1165]: 500 OOPS: unrecognised variable in config file: anonymo...nabl 12月 12 11:58:32 host.example.jp systemd[1]: vsftpd.service: control process exited, code=exited status=2 12月 12 11:58:32 host.example.jp systemd[1]: Failed to start Vsftpd ftp daemon. 12月 12 11:58:32 host.example.jp systemd[1]: Unit vsftpd.service entered failed state. 12月 12 11:58:32 host.example.jp systemd[1]: vsftpd.service failed. Hint: Some lines were ellipsized, use -l to show in full. ``` のように ` 500 OOPS: unrecognised variable in config file: anonymo...nabl ` のエラーが出ています。 設定ファイルが間違っているのに エラーが出ないということは、vsftpd が参照している設定ファイルが、「編集しているファイル」ではないということになります。
Anon_

2018/12/12 04:22

やはり何もでないですね。。 編集しているファイルは下記で間違いないのですが、vsftpdを再ストールしてみた方がいいのでしょうか。 /etc/vsftpd/vsftpd.conf
CHERRY

2018/12/12 04:41

うーん....  どの設定を参照しているんだろう... find / -name vsftpd.conf -print で、複数のファイルが見つかったりはしないですよねぇ。
Anon_

2018/12/12 04:44

何やら色々でてきました。 /etc/vsftpd/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
CHERRY

2018/12/12 04:53 編集

/usr/share/doc/vsftpd-3.0.2/EXAMPLE ディレクトリの中は、設定ファイルの例なので、一つだけですね...
CHERRY

2018/12/12 05:06

` systemctl status vsftpd.service ` で表示される状態は、` active (running) ` になっていて、表示されている設定ファイルのパスも 正しい /etc/vsftpd/vsftpd.conf が、表示されていますよね。 > vsftpd.service - Vsftpd ftp daemon > Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled) > Active: active (running) since 水 2018-12-12 14:00:43 JST; 21s ago > Process: 12173 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) > Main PID: 12174 (vsftpd) > Tasks: 1 > Memory: 576.0K > CGroup: /system.slice/vsftpd.service > └─12174 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf ---- ここまで、原因がわからないと なんか設定ファイルを編集しているホストと確認しているホストが異なるのではないかという気がしてくる... ` hostname ` を実行しても正しいホスト名ですよね...
Anon_

2018/12/12 05:09

activeにはなっております。全文記載いたします。 ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2018-12-12 14:03:59 JST; 3min 59s ago Main PID: 794 (vsftpd) CGroup: /system.slice/vsftpd.service └─794 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf Dec 12 14:03:59 ins1.novalocal systemd[1]: Starting Vsftpd ftp daemon... Dec 12 14:03:59 ins1.novalocal systemd[1]: Started Vsftpd ftp daemon.
Anon_

2018/12/13 01:41

vsftpdを再インストールしたところ、起動時にtypoによるラーがでるようになりました。 しかしtypoを直した後はエラーが表示されなくなりましたが、FTPでtestユーザーでアクセスすると上位階層が見れてしまいます。
matsuand

2018/12/19 11:02

cd .. により Directory successfully changed. と表示されるために、上位ディレクトリに移動出来てしまっていると勘違いしている、といったことはありませんか? 本当に上位ディレクトリから見たディレクトリやファイルにアクセスできるのですか?
Anon_

2019/01/22 23:18

FTPソフトで見れてしまっているので勘違いという事はないかと思います。
CHERRY

2019/01/22 23:49

ftp ソフトと書かれているということは、コマンドラインから ftp コマンドで確認したわけではなく、GUI の ftp クライアントを使われているわけですね。 お使いの ftp クライアントは何ですか? 例えば、クライアントの設定で ftp ではなく、sftp でつないでいるということはないですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問