centos5.2でvsftpdの制限方法

このQ&Aのポイント
  • centos5.2でvsftpdの設定について質問させていただきます。各ユーザのホームディレクトリ内の「public_html」フォルダをapacheの公開フォルダに設定しているのですが、ftp接続した時に他のユーザのファイルや他の設定ファイルを見られたくない為、上位の階層に行けないようにしたいと思っています。
  • 現在、chroot_local_userをYESに設定し、chroot_list_fileに上位階層に行けるユーザ名を追加したところ、階層制限がかかり全く移動できなくなってしまいました。FTPの初期フォルダを変更しても同様でした。
  • また、/etc/ftpchrootを新規作成し、制限をかけるユーザ名を入れると、/home以外には行けなくなりますが、/home内は全て見ることができる状態になってしまいました。ftpaccessを使った方法はフォルダのコピーが必要であり、現在の環境では実行できません。何か他の方法があるのか、皆さんのお知恵をお借りしたいです。
回答を見る
  • ベストアンサー

centos5.2でvsftpdの制限方法

centos5.2でvsftpdの設定について質問させていただきます。 現在、各ユーザのホームディレクトリ内の「public_html」フォルダを apacheの公開フォルダに設定しているのですが、ftp接続した時に 他のユーザのファイルや他の設定ファイルを見られたくない為、 上位の階層に行けないようにしたい(管理者ユーザは全て可能) のですが、うまくいきません。 ネットとこの掲示板のログで調べて試したのは以下の内容です。 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list chroot_listを新規作成して、そこに上位階層へ行けるユーザ名を追加 結果は ⇒階層制限をかけたユーザは「/」階層が初期表示され全く移動できない  FTPの初期フォルダを変更してもダメでした。 次に、この掲示板の過去ログでredhatの設定がありましたので /etc/ftpchrootを新規作成して制限をかけるユーザ名を入れた所、 /home以外には行けませんが、/home内は全て見れる状態に 最後に同じ過去ログに書いてあった、ftpaccessを作成しpasswdに 細工を仕込む方法は、コピーするフォルダが無い為できませんでした。 何か足りないのか、組み合わせが悪いのだと思い色々と組み合わせて みているのですが、うまくいかない為、皆さんのお知恵をお借りできれば と思い質問します。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#89375
noname#89375
回答No.3

No.2の訂正です。 私のほうが勘違いしていました。 vsftpd.confにて chroot_list_file=/etc/vsftpd/chroot_list と設定している、ということでしたね。 失礼いたしました。

mic2008
質問者

お礼

何度も書き込みをいただきありがとうございました。 先に教えていただいたサイトは見ていなかった為、 設定内容を詳しく調べていた所、「passwd_chroot_enable」を 指定して、/etc/passwd内のtestユーザに『/./public_html』を 追加する事で、うまくいけました。 (上位階層に移動すると「/」に移動するが何も見れず・移動できず) 色々教えていただきありがとうございました。

その他の回答 (2)

noname#89375
noname#89375
回答No.2

No.1の補足への確認です。 vsftpd本家の英文説明、linux.or.jpの日本語訳、redhatのマニュアルなどにも 'chroot_list' という記述は見当たらないようですが、 ('chroot_list_file'という説明はあります) centosでは /etc/vsftpd/chroot_list という記述でもユーザー指定は、何らかの機能(アクセス許可または拒否)はしているということなのですか?。 すでに参照済み、だとは思いますがlinux.or.jpの日本語訳サイトは下記です。 http://www.linux.or.jp/JM/html/vsftpd/man5/vsftpd.conf.5.html

noname#89375
noname#89375
回答No.1

内容が判然としない部分がありますが・・・。 > chroot_list_file=/etc/vsftpd/chroot_list vsftpdとchroot_listの間の1文字はスラッシュに見えますが、投稿時だけのタイプミスなのですか? vsftpd.chroot_list(私の記述はピリオド)ファイルは /etc/ の直下に置く必要があります。 > 階層制限をかけたユーザは「/」階層が初期表示され全く移動できない これは仕様のとおりなのでは?

mic2008
質問者

補足

回答ありがとうございます。 『chroot_list_file=/etc/vsftpd/chroot_list』の記述は /etc/vsftpd/vsftpd.conf に最初から記述されていたPATHで コメントアウトになっているのを使いました。 指定した内容によって、chroot_listの中に書いたユーザが アクセスできたりできなかったりしているので、 場所は大丈夫なのかと思います。 イメージとしては、testユーザを作成した場合、 FTPからアクセスした時に『/home/test/public_html』 が 初期表示され、上位階層には『/home/test/』までしか行けない という事をやりたいのですが、仕様の通りとなると、 これはできないという事でしょうか?

関連するQ&A

  • vsFTPD トップ(/)が表示できない

    お世話になります。 ご存知の方がいらっしゃいましたらご教授の程よろしくお願いします。 (1)下記の設定で、vsFTPDを実行したところ、 ユーザでログインすると上の階層まで見えてしまいます。 googleで検索したサイトの記載通り行いましたが、 上の階層が見える現象は変りませんでした。 (2) 停止中に「失敗」する。 svFTPdデーモンをリスタートすると停止中に「失敗」します。 再起動 [root@localhost ~]# /etc/rc.d/init.d/vsftpd restart vsftpd を停止中: [失敗] vsftpd 用の vsftpd を起動中: [ OK ] ================================== /etc/vsftpd/vsftpd.conf anonymous_enable=NO idle_session_timeout=300 data_connection_timeout=30 ascii_upload_enable=YES ascii_download_enable=YES #■chrootの設定 chroot_list_enable=YES chroot_local_user=YES chroot_list_file=/etc/vsftpd.chroot_list ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=NO tcp_wrappers=YES xferlog_std_format=NO use_localtime=YES pasv_promiscuous=YES pasv_min_port=50000 pasv_max_port=50030 #■ vsftpd で local_root = public_html ■ local_root = public_html ================================== ftpログインしたユーザには上位の階層は見せたくないと考えております。 よろしくお願いします。

  • Fedora の vsftpd についてですが、

    一般ユーザがHomeディレクトリでられないように vsftpd.conf に設定しました。 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list chroot_local_user=YES vsftpd.chroot_list は 空ファイルとなっています。 この状態で、ユーザ abc でログインすると、、ローカルからだと /home/abc にログインするようですが、ネット経由からだと / にログインしてしまうようです。 しかしながら、 / にログインしたからといって すべてのフォルダが見えているわけでなくて、 bin dev etc proc usr の 5つが見えているようです。また、/etc などにも入れるようです。/home が見えないので /home/abc にも入れません。 最初の記述がうまく動作していないのでしょうか? また、そのほかに設定ミスがあるのでしょうか?

  • CentOS5.3 FTPサーバー

    vsftpdで、FTPサーバーを構築しているんですけど、FTPで接続の構築をしているんですけどFTPサーバーのvsftpd.confの設定を終えてから接続するとアクセスが拒否されましたとでます。現在使っているクライアントFTPソフトはWinSCPを使っています。最終的にはホームページビルダーの付属ファイル転送ソフトで接続したいと思っています。 vsftpd.confの設定の中身です。 anonymous_enable=no local_enable=YES write_enable=YES local_umask=011 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=3600 data_connection_timeout=3600 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES 追加した部分の設定は pam_service_name=vsftpd userlist_enable=NO tcp_wrappers=YES userlist_deny=NO userlist_enable=NOです。 その他は/etc/vsftpd/chroot_listはユーザーアカウントで作成したのを入力しています。ここだけができなくて困っています。アドバイスをお願いします。Webサーバーは問題なくできました。FTPサーバーのポートは開放しています。よろしくお願いします。

  • vsftpd ffftpでログインができない。

    SentOS4.3でFTPサーバを構築しようとしています。 FFFTPでログインすると「ログインできません。正しいパスワードを入力してください。」ダイアログが表示され、パスワードを入力すると 下記内容が表示されてます。 --------------------------------------------------- ホスト 192.168.2.206 (21) に接続しています. 接続しました. 220 (vsFTPd 2.0.1) >USER hoge 331 Please specify the password. >PASS [xxxxxx] 500 OOPS: cannot change directory:/home/hoge >USER hoge ログインできません. --------------------------------------------------- 確かに/homeにログインしたユーザのディレクトリは存在しません。 ホームにディレクトリが無くてもログインできるようになる設定はどうすればよいでしょうか? [運用条件] 1.匿名ユーザを許可しない。 2.デフォルトディレクトリより上層へのアクセス禁止。 3.アップロード/ダウンロードの許可。 4.デフォルトディレクトリを=/mnt/hdb/ftpとする。 [vsftpd.confの設定] anonymous_enable=NO ascii_upload_enable=YES ascii_download_enable=YES local_enable=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list userlist_enable=YES userlist_deny=YES chroot_local_user=YES local_root=/mnt/hdb/ftp ※上記以外のものはインストールした時点のまま ※/etc/vsftpd.chroot_listには特にユーザは指定していない

  • vsftpdで一般ユーザでログインできない

    こんにちは。 CentOS 5にて、vsftpdの設定をしています。 xinetd経由で起動できるように設定し、rootでのログインができることは確認しました。 ただ、一般ユーザーでログインしようとすると、「530 Login incorrect.」が表示され、ログインできません。 「local_enable=YES」にする以外、特にチェックポイントはありますでしょうか。 ご教授頂けますと嬉しいです。 以下、「vsftpd.conf」の内容です。また、使用しているvsftpdは「vsftpd-2.0.5-21.el5」です。 +++++ anonymous_enable=YES local_enable=YES local_umask=022 write_enable=YES dirmessage_enable=YES ascii_upload_enable=YES ascii_download_enable=YES connect_from_port_20=YES dirmessage_enable=YES ftpd_banner="Welcome to My FTP Server" pam_service_name=vsftpd tcp_wrappers=YES userlist_enable=NO chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list local_root=public_html +++++ force_dot_files=NO use_localtime=YES listen=NO anonymous_enable=NO xferlog_enable=YES xferlog_file=/var/log/vsftpd.log +++ たぶん基本的なことを見落としていると思います。ご教授ください。

  • vsFTPのユーザーログインについて質問です

    何故かローカルユーザーがログイン出来ません。 # ftp localhostでログインしたいのですが、どのuserとpassを入力しても 530 Login incorrect. Login failed. となってしまいます。 /ete/vsftpd/vsftpd.confの関係ありそうな部分の設定 chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list chroot_local_user=YES ls_recurse_enable=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO pasv_promiscuous=YES としていて、 /etc/hosts.allowは vsftpd : 192.168.0. としてあり、 /etc/vsftpd.chroot_list はユーザー名を一行づつ並べており、 /etc/vsftpd.ftpusers はデフォルトのままで置いてあり、 /etc/vsftpd.user_list はデフォルトをコメントアウトして承認したいユーザー名を一行づつ並べました。 どうしたら解決できるのかと悩んでます。是非お力添え下さいませ。

  • ホームディレクトリより上位へのアクセスを禁止するとアップロードできなくなる

    vsftpd.confの設定を変更して、ホームディレクトリより上位へのアクセスを禁止しましたが、FTPでファイルをアップロードできなくなりました。 553 Could not create file.のエラーがでます。 vsftpd.confの chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 以外に設定する項目がありますでしょうか。 アクセス権の設定が必要なのでしょうか?

  • vsftpdでsftp(SSL)を実現したい

    お世話になります。 CentOSでvsFTPdを利用したSFTPサーバを構築したいと考えております。 ■vsFTPdで行いたい事 (1)SFTPを行いたいですが、 下記設定を行うと以下のエラーが出てサーバにログインできません。 ================ エラー ここから ==================== FileZilla Client 530 Non-anonymous sessions must use encryption. ================ エラー ここまで ==================== ================ 設定ファイル ここから ==================== anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES ls_recurse_enable=YES chroot_local_user=YES chroot_list_enable=NO #chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES #FTPS ssl_enable=YES force_local_data_ssl=YES force_local_logins_ssl=YES rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem ================ 設定ファイル ここまで ==================== (2)以下をコメントアウトすると、FTPクライアントソフトでエラーが表示されずログインします。 ================ 設定ファイル ここから ==================== #FTPS #ssl_enable=YES #force_local_data_ssl=YES #force_local_logins_ssl=YES #rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem ================ 設定ファイル ここまで ==================== SSLでログインしたい場合はどうすればよろしいでしょうか?

  • FTPでのパーミッション初期値の設定??

    server:さくらの専用サーバ OS:CentOS4.5 FTPサーバ:vsftpd 上の環境で、初めてvsftpdをインストールしました。 クライアントから問題なく接続アップロードできていますが、 パーミッションの初期値が「644」になってしまいます。 初期値を「775」でアップロードしたいのですが、 これはvsftpdの設定で変更するのでしょうか? ユーザーは、 testuserで/home/testuser/にアクセスしています。 vsftpd.confは、 ------------- #chown_uploads=YES #chown_username=whoever #xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=600 data_connection_timeout=120 #nopriv_user=ftpsecure #async_abor_enable=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd.banned_emails chroot_list_enable=YES chroot_local_user=YES chroot_list_file=/etc/vsftpd/chroot_list userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd/user_list user_config_dir=/etc/vsftpd/vsftpd_user_conf ls_recurse_enable=YES pam_service_name=vsftpd listen=YES tcp_wrappers=YES use_localtime=YES #pasv_enable=YES #pasv_address=***.***.***.*** #pasv_addr_resolve=YES #pasv_min_port=60000 #pasv_max_port=60030 ※pasvモードだとうまく接続できないので設定してません。 どなたかよろしくお願いします!

  • FTPサーバーにアクセスしたいがアクセスできない

    パソコンが2台あり A機は windows7 のマイPC B機は CENTOS6 FTP・HTTPサーバー機 で、B機でFTPサーバーを起動させ A機からFFFTPで接続するとします === まずB機で設定した、やった事を大まかに説明・・・ su・パスワード→cd httpd インストール vsftpd インストール iptables ストップ httpd 起動 vsftpd 起動 chown △△ /var/www/html dhgrp △△ /var/www/html chmod 777 /var/www/html vi /etc/hosts.deny ALL:ALL vi /etc/hosts.allow vsftpd:192.168.24.△ ALL:ALL /etc/vsftpd.user_list 『○○を追加』 vi/etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xterlog_enable=YES connect_from_port_20=YES chown_uploads=YES chown_username=whoever xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES ascii_upload_enable=YES ascii_download_enable=YES ftpd_banner=Welcome to blah FTP service. chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES userlist_deny=NO B機の設定は以上で A機でffftpでの設定は・・・ ホストアドレス 192.168.24.△ ユーザー名 ○○ ホスト初期フォルダ /var/www/html pasvモードを使う === コレが主な設定ですが、繋がりません・・・ 間違ってる部分や 足りない部分があるのでしょうか? ご教授、よろしくお願いします